# PERMANENCE — training configuration. # # Four-stage pipeline: supervised warmup -> format-coverage gate -> # GRPO -> held-out evaluation. Single NVIDIA T4 GPU (16 GB VRAM). # End-to-end runtime ~1 h 20 min. # # See docs/METHODS.md for the rationale behind every hyperparameter # on this page. model_name: unsloth/Llama-3.2-3B-Instruct-bnb-4bit # 300 prompts x group_size=4 rollouts = 1 200 total training episodes. total_episodes: 300 # Group size chosen so per-device batch equals group size; this avoids # Unsloth's auto-batching inflating memory on a 16 GB T4. group_size: 4 # Standard TRL defaults for PPO-style optimisation on LoRA adapters. learning_rate: 4.0e-5 # KL coefficient against the SFT reference model. The TRL default 0.04 # was chosen deliberately — a looser constraint (0.02 in a pilot) lets # the policy drift away from its warmup-established calibration once # the curriculum phases in harder scenarios. kl_coefficient: 0.04 # Two inner PPO updates per generation batch. Trades a small amount of # off-policy drift for faster convergence. ppo_epochs: 2 gradient_clip: 1.0 lora_r: 16 lora_alpha: 16 load_in_4bit: true max_seq_length: 1088 output_dir: ./training/artifacts checkpoint_frequency: 150 warmup_sft_epochs: 10 format_reward_cutoff: 300 eval_episodes: 36 eval_seed_offset: 50000 # Domain filter applied to the curriculum sampler. Training focuses on # the devtools domain (filesystem / git / database). The meridian # domain is also registered — it demonstrates that the pipeline is # domain-agnostic — but is not sampled during training. domain: devtools