# Continuous learning configuration for Jekyll & Hyde paths: interactions: data/learning/interactions.jsonl curated: data/learning/curated_train.jsonl rejected: data/learning/rejected.jsonl state: data/learning/state.json quality: min_assistant_chars: 80 min_quality_score: 0.65 require_markdown: true reject_leak_patterns: - "^model$" - "" - "Hyde test probe:" - "RESPONSE TEMPLATE" - "KEY CONCEPT" - "SAMPLE ANSWER" - "USER QUERY:" - "Policy Analyst Role" auto: curate_after_each_turn: true merge_dataset_on_curate: false train_when_curated_reaches: 20 train_min_interval_hours: 6 train_epochs_incremental: 2 train_base: gemma2-2b auto_train_enabled: true adapter_only: true feedback: upvote_boost: 0.35 downvote_reject: true diet: enabled: true semantic_threshold: 0.92 embedding_model: BAAI/bge-small-en-v1.5 embedding_index: data/learning/embedding_index.json max_total_records: 2000 category_caps: quant: 400 policy: 500 duel: 300 chat: 800 mcp_tools: 250 persona_caps: jekyll: 800 hyde: 600 neutral: 1200 quantize: export_gguf_after_train: true gguf_quant: q4_k_m prune_old_gguf: true # Gray-zone reinforcement: duel → extract zones → dual synthesis → curated training gray_reinforce: enabled: true synthesize_solutions: true use_llm_synthesis: true auto_curate: true min_zones: 1 max_zones_per_duel: 8 # RLAIF gate — verification API score before auto-curation (prevents hallucination loops) rlaif: enabled: true min_score: 85 # Distilled gray-zone rule memory (RAG injection + eviction preservation) memory: enabled: true inject_on_query: true distill_on_evict: true max_entries: 500 retrieve_k: 3 min_similarity: 0.55 consolidate_after: 40 consolidate_similarity: 0.88 consolidation_enabled: true paths: rules: data/learning/memory_rules.jsonl # LoRA MoE — dynamic jekyll/hyde adapter blend lora_moe: enabled: true quantize_step: 0.05 bucket_cache: true buckets: - { jekyll: 0.9, hyde: 0.1 } - { jekyll: 0.7, hyde: 0.3 } - { jekyll: 0.5, hyde: 0.5 } - { jekyll: 0.3, hyde: 0.7 } - { jekyll: 0.1, hyde: 0.9 } # MCP structured tool-calling training bucket (high priority in data diet) mcp_training: enabled: true priority_boost: 0.35 # Dynamic decoding — MoE blend ratio → temperature / top-p / min-p decoding: dynamic_entropy: true link_to_moe: true jekyll_temperature: 0.15 jekyll_top_p: 0.85 jekyll_min_p: 0.08 hyde_temperature: 0.35 hyde_top_p: 0.92 hyde_min_p: 0.05 blend_temp_min: 0.2 blend_temp_max: 0.78 blend_top_p_min: 0.88 blend_min_p_min: 0.06 # Grammar-constrained MCP JSON tool output at decode time grammar: mcp_tool_json: true # DPO preference alignment from curated vs rejected (RLAIF pairs) dpo: enabled: true prefer_over_sft: true min_pairs: 2 beta: 0.1 epochs: 1 dataset_path: data/learning/dpo_pairs.jsonl