Downloads · 30 days
0
HilaryTorn/rl-training-debug-artifacts
rl-training-debug-artifacts is a reinforcement learning model from HilaryTorn. Use it for the reinforcement learning task on the model card, and read the license before you ship it in a product. It is set up for peft. The card lists the license as apache-2.0.
Date: 2026-08-26 Status: diagnostic; no robust performance improvement established
Downloads · 30 days
0
Access
Public
Updated Aug 26, 2026
Repo size
1.3 GB
Likes
0
Public
Click a slice to open those files.
.safetensors1.3 GB · 97%
From the Hugging Face model README
Date: 2026-08-26
Status: diagnostic; no robust performance improvement established
We ran a sequence of DPO, GRPO, and PPO experiments on Qwen3.5 4B and 9B, first from project M0 checkpoints and later directly from the original Qwen/Qwen3.5-4B base model. We varied the learning rate, KL/DPO/GRPO coefficient, LoRA capacity, batch construction, sequence length, training duration, and dataset filtering rules. We also rebuilt the 4B DPO data with fresh Base-model rollouts after determining that the original preference pairs were tied to M0 and contained substantial truncation and length bias.
The training paths are operational: gradients are non-zero, DPO preference accuracy and margins move, GRPO has non-zero reward variance, PPO can complete with non-finite-gradient guards, and merged adapters contain weights that are different from both the base model and one another. However, these optimization signals have not translated into a stable improvement on held-out verifier reward or LiveCodeBench. A few early checkpoints improved small development subsets, but the gains either disappeared on a larger held-out split or reversed on an external benchmark. Later checkpoints often performed worse.
The current evidence is therefore consistent with noisy or mismatched preference/reward supervision, checkpoint overtraining, and generation-length pathologies rather than a trainer that is simply not updating the model.
The experiments covered:
The first formal comparison trained DPO, GRPO, and PPO from the 4B and 9B M0-v4 checkpoints on aligned 1,000-prompt cohorts.
Representative initial configuration:
| Method | LR | Coefficient | LoRA | Length | Batch construction |
|---|---|---|---|---|---|
| DPO | 1e-6 | beta=0.05 | r=16, alpha=32 | max length 2,048 | micro-batch 1, grad accumulation 8 |
| GRPO | 1e-6 | beta=0.05 | r=16, alpha=32 | completion 1,024 | 8 prompts x 8 rollouts |
| PPO | 1e-6 | initial KL=0.05 | r=16, alpha=32 | response 1,024 | micro-batch 1, grad accumulation 8 |
The four checkpoint-time verifier estimates at steps 4, 12, 40, and 125 were non-monotonic. For example:
These are noisy checkpoint estimates rather than a fixed, large held-out evaluation, but they show that training reward did not rise consistently.
PPO additionally encountered non-finite gradients late in the 4B run. The path was instrumented with finite-loss/gradient diagnostics and guarded update skipping. The recovered run completed 125 steps after skipping eight non-finite updates, but this established plumbing robustness, not a reliable performance gain.
The explored ranges included:
The 9B tuned formal configuration lowered the learning rate to 5e-7, increased DPO/GRPO beta or PPO initial KL to 0.1, and increased the DPO/rollout length to 2,560/1,536. Training completed, but it did not establish a robust held-out gain.
For faster GRPO diagnosis, we then compared three 9B step-16 probes:
On one fixed 100-prompt held-out diagnostic, the r=32/alpha=64 checkpoint was the strongest of these probes:
| Model | Mean test-case pass fraction | Strict full-pass rate |
|---|---|---|
| 9B M0 | 22.42% | 16% |
| 9B GRPO r32/alpha64 step 16 | 24.48% | 20% |
The mean improvement was +2.05 percentage points, but its bootstrap interval for partial reward crossed zero. The strict-rate interval was positive on this small sample, so this checkpoint is useful for debugging but is not sufficient evidence of a general improvement.
A 4B high-LR DPO probe (LR=1e-5, beta=0.01, r=16/alpha=32) substantially changed the training objective: the aggregate train loss was 0.563 and late mini-batch preference accuracies reached 0.8-0.9. This showed that a stronger optimizer setting can fit the preference pairs, but no corresponding robust task-performance gain was established.
Increasing batch size primarily improved throughput. It did not by itself resolve the performance problem.
The original M0-derived DPO artifacts each contained 1,000 pairs. We removed pairs whose chosen or rejected response was near the generation cap and controlled response-length mismatch. This left:
The 4B M0 length-clean run degraded relative to M0 across most early checkpoints. The 9B run produced a promising but unstable early result:
| Evaluation | Baseline | Checkpoint | Partial reward | Strict full pass |
|---|---|---|---|---|
| 9B dev, 250 prompts | M0 | step 8 | 35.13% -> 38.51% | 25.2% -> 29.2% |
| 9B held-out, 500 prompts | M0 | step 12 | 33.49% -> 31.48% | 25.4% -> 22.6% |
Thus, filtering removed a real confounder but did not produce a stable generalization gain. The apparent early dev improvement reversed on the larger held-out evaluation.
The original preference data was generated and selected around M0 behavior. We therefore restarted from Qwen/Qwen3.5-4B and regenerated the DPO pairs.
The first Base rollout reused the old 1,000-prompt cohort:
After correcting the prompt pipeline, a larger Base-model sweep processed 3,081 candidate prompts from the NVIDIA training pool with the same K=8 and 4,096-token rollout settings. It produced 1,174 eligible pairs, from which a fixed 1,000-pair DPO cohort was frozen.
This final dataset addressed both the M0-conditioned selection issue and the known training-pair truncation/length confound.
Final configuration:
| Parameter | Value |
|---|---|
| Base model | Qwen/Qwen3.5-4B, revision 851bf6e806ef... |
| Training pairs | 1,000 Base-generated, clean-prompt pairs |
| Learning rate | 1e-6 |
| Scheduler | constant with 2 warmup steps |
| DPO beta | 0.1 |
| LoRA | r=16, alpha=32, dropout=0 |
| Effective batch | 8 (micro-batch 2 x accumulation 4) |
| Maximum sequence length | 6,144 |
| Maximum prompt length | 1,024 |
| Training duration | 125 steps |
| Save interval | 4 steps |
The run completed in 2,527 seconds with aggregate train loss 0.6922. At step 125, the logged mini-batch loss was 0.6631 and preference accuracy was 0.625. This is a weak but non-zero optimization signal.
The same 100 prompts were evaluated for Base, step 28, and step 125 with one deterministic rollout and an 8,192-token completion cap.
| Model | Mean test-case pass fraction | Strict full-pass rate | Non-zero reward | Truncation |
|---|---|---|---|---|
| Base | 29.62% | 22% | 43% | 49% |
| Step 28 | 32.44% | 22% | 48% | 43% |
| Step 125 | 27.06% | 17% | 46% | 44% |
Step 28 improved partial reward by +2.82 percentage points relative to Base, with paired bootstrap 95% interval [+0.05, +6.30]. It did not increase the number of fully solved prompts. Step 125 was worse than Base by 2.55 points in partial reward and 5 points in strict full-pass rate.
The 43-49% truncation rates remain a major validity problem even at an 8K completion cap. These numbers must therefore be treated as provisional.
The same first 20 sorted release-v6 problems were run with n=1, temperature 0, a 32,768-token completion budget, and merged adapters.
| Model | pass@1 | Truncation |
|---|---|---|
| Base | 11/20 (55%) | 0% |
| Step 28 | 8/20 (40%) | 10% |
| Step 125 | 10/20 (50%) | 0% |
The held-out partial-reward signal at step 28 did not reproduce on this small external benchmark. The sample is too small for a definitive benchmark claim, but it provides no support for selecting step 28 as a generally better coding model.
The evaluation loader was also fixed during this stage. Qwen3.5 PEFT adapters are merged into the language tower and then placed back into the full Qwen3.5 container before direct vLLM evaluation. Tensor-level checks confirmed that Base, step 28, and step 125 used distinct weights.
A separate 4B Base GRPO experiment randomly sampled 1,000 prompts rather than using the old M0-selected subset. Its main configuration was LR=5e-6, beta=0.01, K=8, 20 unique prompts per step, 4,096-token completions, and a larger batch/accumulation arrangement to use the available H200 efficiently. The run was stopped after step 39 when priority shifted to DPO rollout and DPO training. It is incomplete and should not be interpreted as a negative GRPO result.
The experiments rule out several simple explanations:
The remaining leading hypotheses are:
The accompanying Hugging Face debug repository contains representative adapter-only checkpoints rather than every saved point:
Optimizer, scheduler, RNG, duplicated reference adapters, tokenizer copies, rollout text dumps, and full merged-model evaluation caches are intentionally excluded.