Download code/configs/ppo_stage.toml from viai957/align: direct link, hf CLI and curl.
- Browser
- Download file 2.29 kB
-
https://huggingface.co/viai957/align/resolve/main/code/configs/ppo_stage.toml
- Command line
-
hf download hf://viai957/align/code/configs/ppo_stage.toml
-
curl -L -o ppo_stage.toml https://huggingface.co/viai957/align/resolve/main/code/configs/ppo_stage.toml
2.29 kB
| # Process-supervised PPO stage -- DRAFT config (freezes with the pre-registration). | |
| # | |
| # consumed by scripts/ppo.py via align.ppo.stage_config (struct mode: an unknown | |
| # key anywhere raises naming its dotted path). Values are the LEGACY defaults of | |
| # mistral-prm-ppo; every `[TBD pre-reg freeze]` is a decision NOT made by the port. | |
| # | |
| # NOT LAUNCHABLE AS SHIPPED, on purpose: | |
| # * prm.checkpoint does not exist. The legacy PRM is a peft LoRA adapter; this | |
| # stack reads align.ppo `save_prm_state` files. Re-train the PRM with align | |
| # or write a converter -- do not point this at the peft directory. | |
| # * scripts/ppo.py needs the spool rollout worker (own venv) and the 7B base | |
| # snapshot; neither is on this box as of 2026-10-12. | |
| # * shapes must satisfy rows % (world * mini_batch_rows) == 0 | |
| # (PPOStageConfig.validate_world): 16 x 4 = 64 rows does NOT split over 3 ranks; | |
| # e.g. 3 ranks -> 24 prompts x 4 = 96 rows = 3 x 32, mini_batch_rows 8. | |
| sft_checkpoint = "/apps/development/rlhf/nano-mistral-o1/checkpoints/sft/checkpoints/micro_00002250" | |
| run_dir = "/apps/development/rlhf/align/runs/ppo_prm" | |
| boundary_spec_path = "/apps/development/rlhf/align/artifacts/boundary_spec.json" | |
| arm = "prm" # "orm" = the MANDATORY control (reward table must then carry w_prm = 0) | |
| [lora] | |
| r = 64 | |
| alpha = 128.0 | |
| [rollout] | |
| prompts_per_iteration = 16 | |
| n_samples_per_prompt = 4 # [TBD pre-reg freeze] | |
| max_response_len = 768 | |
| temperature = 1.0 | |
| [ppo] | |
| ppo_epochs = 2 | |
| mini_batch_rows = 8 # per rank | |
| micro_batch_rows = 2 | |
| value_warmup_iterations = 3 # < train.iterations | |
| temperature = 1.0 # MUST equal rollout.temperature (validated) | |
| eos_token_id = 2 # validated against config.json AND the tokenizer at launch | |
| [ppo.reward] | |
| transform = "clip_delta" | |
| eta = 0.80 # ABSOLUTE P(step correct) threshold, NOT a quantile # [TBD pre-reg freeze] | |
| lam_actor = 0.99 # must stay < 1 under delta-form shaping (validated) | |
| [data] | |
| band_file = "/apps/development/rlhf/nano-mistral-o1/data/stageb/bigmath_band0.jsonl" | |
| [train] | |
| iterations = 20 # [TBD pre-reg freeze] | |
| lr = 1e-6 # [TBD pre-reg freeze]; critic lr = lr * value_lr_mult (9) | |
| [canary] | |
| every = 5 | |
| n_problems = 100 | |
| [prm] | |
| checkpoint = "/apps/development/rlhf/align/artifacts/prm/prm_state.pt" # DOES NOT EXIST yet | |