llamacle_drgrpo_v1_step10 / loracle_config.yaml
ceselder's picture
Upload DrGRPO step 10
7e8f6cf verified
Raw
History Blame
2.48 kB
# Llama-3.3-70B Loracle DrGRPO post-training (paper-canonical v11 recipe).
#
# Builds on llamacle_v6_clean_step1875 (1-epoch pretrain on 22.5k Llama LoRAs,
# val_loss=1.70, AB Llama-70B baseline 55.2%). RL pool = 2,500 orgs held out
# from v6 pretrain at /workspace/data/llamacle_pretrain_v7_oneq/holdout_ids.json.
#
# Hypers from appendix Table tab:rl-hparams. Differences from Qwen v9:
# - base_model: Llama-70B (vs Qwen3-14B)
# - n_direction_tokens=8960 (vs 4480) — 80 layers × 7 mag7 × 16 ranks
# - max_length=9500 (vs 5500) — matches pretrain
# - use_nf4: true — Llama-70B can't fit per-rank in bf16 on B200; NF4-quant
# base + bf16 LoRA + Adam fp32 master fits ~85GB/rank with KV cache
# - n_cycles=80, lr=7e-6, eps_high=0.28 (per appendix; v9 had 40/5e-6/0.28)
# - paper-canonical 9 prompts (built into qa.parquet via build_llamacle_rl_qa.py)
run_name: drgrpo_llama70b_v1
wandb_project: lora-oracles-posttrain
output_dir: /workspace/checkpoints/drgrpo_llama70b_v1
seed: 53
sft_checkpoint_repo: ceselder/llamacle_v6_clean_step1875
base_model: /root/models/Llama-3.3-70B-Instruct
prompts_parquet: /workspace/data/llamacle_rl_v1/qa.parquet
holdout_ids_path: /workspace/data/llamacle_rl_v1/rl_holdout_ids.json
tokens_dir: /workspace/data/llamacle_pretrain_v3_r16/direction_tokens_svd_fixed_k16_mag7_rankfirst
# NF4-DDP: each rank holds the full base in 4-bit (~35GB) on its own GPU.
# Avoids FSDP per-token gather overhead so rollout-gen runs at ~6× DP throughput.
# Backward all-reduces only LoRA grads (~6.6GB fp32) per cycle.
use_nf4: true
n_prompts_per_cycle: 32
k_rollouts: 16
temperature: 0.75
max_new_tokens: 250
inject_demonstrations: 0
algorithm: drgrpo
n_cycles: 80
lr: 7.0e-6
eps_low: 0.2
eps_high: 0.28
max_grad_norm: 1.0
max_length: 9500
filter_min_max: 0.0
filter_min_std: 0.0
unbiased_advantages: true
use_system_prompt: false
prefix_mode: rank_tagged
top_k: 16
n_direction_tokens: 8960
judge_mode: ranking
judge_prompt_mode: keyword_pretrain
judge_provider: anthropic
rollout_judge_model: claude-opus-4-7
judge_model: anthropic/claude-sonnet-4.6
judge_workers: 32
judge_max_retries: 4
judge_request_timeout_s: 300
log_every: 1
failure_score_threshold: 4
eval_at_step_0: false # in-train eval OOMs from KV-cache memory creep across orgs even with split; eval offline after
eval_every_cycles: 99999
mid_train_eval_sets: []
post_eval: false
eval_sets: []
save_every: 5 # save ckpts more frequently for offline eval coverage