Download code/configs/p2_rl_lean.toml from viai957/align: direct link, hf CLI and curl.
- Browser
- Download file 3.65 kB
-
https://huggingface.co/viai957/align/resolve/main/code/configs/p2_rl_lean.toml
- Command line
-
hf download hf://viai957/align/code/configs/p2_rl_lean.toml
-
curl -L -o p2_rl_lean.toml https://huggingface.co/viai957/align/resolve/main/code/configs/p2_rl_lean.toml
3.65 kB
| # P2 single-turn on-policy RL for Qwen3-8B-family Lean provers (lane R; docs/SOTA_PLAN.md L5 / K1 / Phase 0b item 1). | |
| # | |
| # CPU-only loop + vLLM generation child + torchrun training child, one after the other (never concurrently): | |
| # .venv/bin/python scripts/p2/rl_lean.py run configs/p2_rl_lean.toml --set run_dir=<RUN> --set problems=<POOL.jsonl> | |
| # Phase 0b probe (one real iteration, 4-8 prompts x G=8): see docs/RL_LEAN.md. | |
| # | |
| # Every value below is a DEFAULT of this lane, not a pre-registered number: the knobs the plan freezes | |
| # ([loss] eps_high, [optim] lr, [lora] r) are marked [TBD pre-reg]. Struct mode: unknown keys are errors. | |
| run_name = "p2-rl-lean" | |
| run_dir = "" # set per run | |
| # Goedel-Prover-V2-8B snapshot; Kimina-Distill-8B for the K arms (docs/KIMINA_BASE.md) | |
| model_snapshot = "/apps/development/rlhf/hf_cache/hub/models--Goedel-LM--Goedel-Prover-V2-8B/snapshots/dfd02e6271a58375dfbf3ece0175277cf6b6a89a" | |
| problems = "" # P2 problem JSONL (training pool; never an eval split) | |
| iterations = 20 | |
| prompts_per_iter = 16 | |
| seed = 0 | |
| keep_checkpoints = 2 # adapter checkpoints are small; the bound is for disk hygiene | |
| export_merged = false # true only with rollout.adapter_mode = "merged_export" (lossy bf16 fallback) | |
| replay_from = "" # K1: reuse another run's gens/ver (same cached rollouts, different loss.mode) | |
| verify_workers = 8 # <= 8 (scripts/p2/verify_generations.py rule); >2 takes the heavy lock itself | |
| verify_budget_s = 180.0 | |
| verify_python = ".venv/bin/python" | |
| [rollout] | |
| top_p = 1.0 # REQUIRED (Codex P13-32): behaviour logprobs are only meaningful un-truncated | |
| top_k = 0 | |
| temperature = 1.0 # trainer scores under the same T (validated equal to loss.temperature) | |
| cap_tokens = 16384 | |
| max_model_len = 20480 | |
| tp = 4 | |
| adapter_mode = "unmerged" # vLLM LoRARequest on the base (needs lean_gen --lora-adapter); "merged_export" = fallback | |
| rollout_python = ".venv-rollout/bin/python" | |
| gen_extra_args = [] | |
| [batch] | |
| group_size = 8 # G | |
| min_valid_per_group = 2 # after masking timeouts | |
| no_signal_reasons = ["timeout", "crash", "protocol"] # masked, never scored 0 | |
| ei_keep_all_solved = true # ei mode: keep positives of all-solved groups | |
| micro_tokens = 16384 # padded tokens per micro-batch; measured envelope of the SFT probe (configs/p2_sft.toml) | |
| max_total_len = 18432 # drop longer prompt+completion rows (counted); 0 = off | |
| [loss] | |
| mode = "cispo" # cispo | dr_grpo | ei | |
| eps_high = 4.0 # [TBD pre-reg] CISPO IS-weight clamp; sweep {0.272, 1.0, 4.0} | |
| # eps_low omitted = no lower clamp (paper). neg_seq_ratio_floor omitted = off. | |
| clip_lower = 0.2 # dr_grpo PPO clip | |
| clip_higher = 0.28 | |
| norm = "global_token_mean" # explicit global response-token count over micro-batches and ranks | |
| fp32_head = false # MiniMax-M1 3.2; Phase 0b: if memory is short at 16k, leave off and watch old_vs_behaviour | |
| fp32_head_chunk_tokens = 2048 | |
| temperature = 1.0 | |
| max_grad_norm = 1.0 | |
| [optim] | |
| lr = 1e-5 # [TBD pre-reg]; RL on an already post-trained prover: small | |
| betas = [0.9, 0.95] | |
| weight_decay = 0.0 | |
| eps = 1e-8 | |
| warmup_iters = 2 | |
| steps_per_iteration = 1 # one optimizer step per rollout batch (strictly on-policy) | |
| [lora] | |
| r = 64 # [TBD pre-reg] | |
| alpha = 128.0 | |
| rslora = false | |
| targets = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"] | |
| adapter = "policy" | |