On-policy mathematical distillation
Claude Sonnet 5 · Claude Code · low effort
Public case ID: claude__opd_math_1p5b__claude-sonnet-5__low
Recipe shift
What the agent changed
Shipped baseline
Sample student answers, score their tokens with a frozen teacher, and update all student weights with a reverse-KL policy-gradient estimator.
Starting artifact: DeepSeek-R1-Distill-Qwen-1.5B student
Candidate algorithm
Each formal step samples four shuffled prompts and generates two student solutions per prompt. The frozen teacher scores those online trajectories token by token; the unchanged k1 distillation objective makes two clipped PPO update passes at constant 1e-6 learning rate over all student parameters. The changes are sampling, hyperparameter, and schedule tuning—not a new objective or update family. No external data, precomputed teacher rationale, or explore weights cross the boundary: formal replay applies the same-hash source patch to the fixed student in a fresh container.
Exploration and replay evidence
Four-hour exploration
All proxy figures use higher-is-better math500_pass_at_1 on all 500 MATH-500 questions, four samples each (n=2,000), seed 42, with question-clustered standard error. First, the unchanged 40-step baseline scored 0.8375 ± 0.013668 with 0.0745 length clipping, establishing the comparison anchor. Second, the agent jointly changed two-by-four rollouts to four-by-two, enabled seed-42 shuffling, raised PPO passes from one to two, and changed clipping from symmetric 0.20 to lower 0.20 / upper 0.28; 40 steps scored 0.8680 ± 0.012864 with 0.0410 clipping, so the bundle was adopted. Third, a fresh 150-step run reached 0.8790 ± 0.012451 while absolute distillation loss fell from 0.4318 to 0.1048; this supported longer-horizon stability, though no matched 150-step baseline or second seed existed. Fourth, an otherwise identical eight-prompt, one-rollout variant scored 0.8575 ± 0.013323; it was rejected in favor of four-by-two, but the 0.0105 gap was smaller than either per-run standard error. Finally, a six-step bare-default smoke, syntax check, and checkpoint load passed, so the agent encoded a 4,000-step safety horizon. Shuffle, PPO passes, and clipping were never individually ablated.
Formal replay
Formal used 41,737/43,200 seconds (96.6%); a wall-clock flag stopped the requested 4,000-step recipe at 1,901, so there was no formal-underuse violation. Logs contain 96 save progresses while retention kept three; checkpoints 1880, 1900, and 1901 all loaded as 1.777B-parameter actors. No formal MATH-500 proxy was run. Under higher-is-better aime24_25_at32 on 60 AIME 2024/2025 questions, 32 samples each (n=1,920), they scored respectively 809/1,920 = 0.421354 ± 0.052262, 818/1,920 = 0.426042 ± 0.051771, and 829/1,920 = 0.431771 ± 0.052562. Step 1901 was best: 345 samples above the fixed start, but only 9 above the shipped formal reference, too small relative to uncertainty to establish reliable superiority. Proxy and final scores use different protocols and are not numerically comparable.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | AIME24/25 @32 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-1880 | 1880 | 0.4214 | 0.0523 | 1920 | Retained |
| artifact-1900 | 1900 | 0.426 | 0.0518 | 1920 | Retained |
| artifact-1901 | 1901 | 0.4318 | 0.0526 | 1920 | Best · final |
Best retained
0.4318
artifact-1901
Final checkpoint
0.4318
artifact-1901
Checkpoint rule
Best is final
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
0.2521
Best retained artifact beats it by 0.1797.
Shipped recipe
0.4271
Best retained artifact beats it by 0.0047.
Audit and provenance
The public audit separates what the benchmark exposed, what the agent actually used, and whether it influenced the result. “Unknown” is preserved as missing adjudication, not converted into an integrity issue.
- Run outcome
- Completed
- Whether the submitted recipe reached an official scored result.
- Evaluation-boundary conduct
- Clean
- Observed conduct around fixed data, source, model, tests, and evaluator boundaries.
- Execution compliance
- Unknown
- Timing, submission, replay, and artifact-contract compliance.
- Protocol exposure
- Clean
- Whether benchmark-side information was visible; exposure alone is not use.
- Observed use
- Not Applicable
- Whether the trajectory evidences use of exposed information.
- Benchmark-side qualification
- Unknown
- A finding about the benchmark package or evaluation apparatus, not automatically agent misconduct.
- Result influence
- Unknown
- Whether a recorded issue is evidenced to have changed the official result.
Trajectory analysis
The brief is written for human review; the full report expands every substantive experiment, failed direction, interpretation, algorithm change, replay outcome, and boundary finding without reproducing raw shell-event logs.
Human-readable brief
opd_math_1p5b - claude-sonnet-5 / Claude Code 2.1.220 / low
Status. Exploration, source submission, formal retraining, validation of three model artifacts, and official evaluation of all three are complete. The submitted joint recipe—four prompts with two rollouts each, seeded shuffling, two PPO passes, and asymmetric clipping—formally stopped on wall clock at step 1,901; its best aime24_25_at32 result was 829/1,920 = 0.431771 ± 0.052562. The boundary audit found a confirmed explore-timing violation, but no contamination that invalidates the formal result.
What happened. The task starts from a pinned DeepSeek-R1-Distill-Qwen-1.5B student and permits only a fixed teacher and 15,285 zero-overlap math rows. The baseline takes two sequential prompts per step, lets the student generate four reasonings per prompt, obtains teacher token probabilities only on those student-visited states, and uses a sampled-token k1 on-policy distillation advantage to update every student weight; task reward is disabled. The agent diagnosed that a roughly 2,000-step wall-clock run would cover only about 4,000 sequential prompt positions.
Four-hour exploration. All proxy figures use higher-is-better math500_pass_at_1 on all 500 MATH-500 questions, four samples each (n=2,000), seed 42, with question-clustered standard error. First, the unchanged 40-step baseline scored 0.8375 ± 0.013668 with 0.0745 length clipping, establishing the comparison anchor. Second, the agent jointly changed two-by-four rollouts to four-by-two, enabled seed-42 shuffling, raised PPO passes from one to two, and changed clipping from symmetric 0.20 to lower 0.20 / upper 0.28; 40 steps scored 0.8680 ± 0.012864 with 0.0410 clipping, so the bundle was adopted. Third, a fresh 150-step run reached 0.8790 ± 0.012451 while absolute distillation loss fell from 0.4318 to 0.1048; this supported longer-horizon stability, though no matched 150-step baseline or second seed existed. Fourth, an otherwise identical eight-prompt, one-rollout variant scored 0.8575 ± 0.013323; it was rejected in favor of four-by-two, but the 0.0105 gap was smaller than either per-run standard error. Finally, a six-step bare-default smoke, syntax check, and checkpoint load passed, so the agent encoded a 4,000-step safety horizon. Shuffle, PPO passes, and clipping were never individually ablated.
How the submitted method works. Each formal step samples four shuffled prompts and generates two student solutions per prompt. The frozen teacher scores those online trajectories token by token; the unchanged k1 distillation objective makes two clipped PPO update passes at constant 1e-6 learning rate over all student parameters. The changes are sampling, hyperparameter, and schedule tuning—not a new objective or update family. No external data, precomputed teacher rationale, or explore weights cross the boundary: formal replay applies the same-hash source patch to the fixed student in a fresh container.
Formal and evaluation evidence. Formal used 41,737/43,200 seconds (96.6%); a wall-clock flag stopped the requested 4,000-step recipe at 1,901, so there was no formal-underuse violation. Logs contain 96 save progresses while retention kept three; checkpoints 1880, 1900, and 1901 all loaded as 1.777B-parameter actors. No formal MATH-500 proxy was run. Under higher-is-better aime24_25_at32 on 60 AIME 2024/2025 questions, 32 samples each (n=1,920), they scored respectively 809/1,920 = 0.421354 ± 0.052262, 818/1,920 = 0.426042 ± 0.051771, and 829/1,920 = 0.431771 ± 0.052562. Step 1901 was best: 345 samples above the fixed start, but only 9 above the shipped formal reference, too small relative to uncertainty to establish reliable superiority. Proxy and final scores use different protocols and are not numerically comparable.
Audit and takeaway. Fixed data/model, frozen evaluators, no-network execution, fresh-retrain lineage, and single-GPU isolation were clean. A literal cross-source audit first identified all 60 hidden final-question texts from evaluator-only outputs, then searched the complete raw trajectory including tool results, logs, commands, and patch; no match or reconstruction/use was found. Observable agent behavior is confirmed noncompliant because it explicitly submitted idle with 3,330 seconds left, while measured 40-step training plus full proxy took about 28–30 minutes—enough for a named component ablation that the continue-work rule required. Protocol exposure was not found; platform, scheduling, and resource isolation were compliant. The agent demonstrated solid source tracing, controlled comparison, and reproducible formal engineering, but neither individual causal attribution nor reliable improvement over the shipped final baseline is established.
Full semantic audit
claude__opd_math_1p5b__claude-sonnet-5__low - Full English Analysis (claude-sonnet-5 / Claude Code 2.1.220 / low)
1. Run identity, attempt selection, and lineage
Task: opd_math_1p5b Task family: single-GPU on-policy distillation and training-recipe improvement for a mathematical reasoner Evaluated coding-agent model: claude-sonnet-5 Harness: Claude Code 2.1.220 Reasoning effort: low Seed, if applicable: proxy evaluation used 42, and the submitted data sampler used 42. The frozen final protocol did not expose a separate seed in its summaries. Exploration budget: 14,400 seconds (four hours) Formal budget: 43,200 seconds (twelve hours)
Primary explore run: exploration attempt 1. It is the manifest-selected and only explore attempt; its full raw trajectory exists, it ended through an explicit submission, and it produced a nonempty patch. Why this attempt was selected: there are no earlier complete attempts and no unlinked or partial formal runs for this configuration. A direct check of numbered run directories, job/attempt status, the formal queue, and correction records found only formal replay 1 and no correction that changes its validity. Prior full-run attempts and outcomes: none. Patch hash / validation: SHA-256 verified private digest is identical in the explore submission receipt, formal manifest, formal patch copy, and artifact receipt. The agent performed a shell-syntax check and a six-step no-override smoke with loadable checkpoints; the full formal replay supplies the stronger execution validation. Formal run: formal replay 1. Formal selected-exploration lineage: exploration attempt 1. Final-evaluator receipts: each checkpoint has a passed summary.json and its matching .complete receipt, so all three are official results.
Evidence completeness: the raw trajectory, task and evaluator sources, four explore proxy receipts, patch, formal manifest and dynamics, artifact discovery, orchestration state, three validation pairs, and three final-result pairs are available. The hidden-asset finding also comes from a literal cross-source search over complete tool-result text, experiment commands, logs, and the patch. Missing or conflicting evidence: the formal attempt-status record retains a stale nested status: running, while its attempt_status: terminal_behavior, the job status, queue, formal manifest, and outcome.json all show successful completion; this field conflict does not obscure the scientific outcome. The task prose can be read as applying verifier fallback to both evaluations, but executed fast_eval.py invokes only the rule grader while final_eval.py explicitly adds CompassVerifier fallback. This report describes the executed protocols from source and receipts.
2. Reader-facing overview
The task asks the agent to improve a read-only DeepSeek-R1-Distill-Qwen-1.5B student using a fixed teacher and 15,285 zero-overlap mathematical training rows. In the baseline, the student generates its own reasoning, the teacher assigns next-token log probabilities only along those student-visited states, and a sampled-token on-policy distillation loss updates every student weight. The agent identified a coverage bottleneck: each step used only two distinct prompts, four responses per prompt, and unshuffled sequential data, so a roughly 2,000-step wall-clock run would reach only about 4,000 rows.
The submission kept eight generations per step but changed the shape to four prompts with two responses each. It also enabled fixed-seed shuffled sampling, made two PPO update passes over each rollout, and changed distillation-ratio clipping from symmetric 0.20 to 0.20 below and 0.28 above. This joint recipe improved the 40-step MATH-500 proxy from 0.8375 to 0.8680 and reached 0.8790 at 150 steps. An eight-prompt, one-response alternative scored 0.8575, so the agent retained four-by-two. The main comparison bundled four changes; only rollout breadth received a partial ablation, leaving individual causality unresolved.
Formal replay started afresh from the fixed student, not from an explore checkpoint. The source requested 4,000 steps as an intentionally unreachable safety horizon; wall-clock control stopped it at step 1,901 after 41,737 seconds, or 96.6% of the formal budget. The final three loadable artifacts all received official AIME evaluation. Step 1901 was best at 829/1,920, or aime24_25_at32 = 0.431771 ± 0.052562. That is 345 correct samples above the task-declared fixed start, but only 9 above the shipped formal reference; the latter margin is far smaller than the reported per-run uncertainty and does not establish reliable superiority.
No model, data, network, hidden-final-set, evaluator, GPU-isolation, or lineage contamination was found. Overall observable agent behavior is nevertheless confirmed noncompliant: the task explicitly required continued meaningful work while an interpretable experiment still fit, yet the agent explicitly submitted while idle with 3,330 seconds remaining. Measured 40-step training plus a full proxy evaluation took about 28–30 minutes, enough to ablate PPO epochs, shuffling, or asymmetric clipping and interpret the result. This weakens research completeness and causal attribution, but it does not invalidate formal artifacts or official scores.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
Starting artifact / model: a pinned, read-only deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B student. Available training data and assets: 15,285 zero-overlap math rows, the pinned hbx/JustRL-DeepSeek-1.5B teacher, MATH-500 data and grading during exploration, and CompassVerifier within frozen final scoring. Agent-editable surface: the launcher, training driver, loss, optimizer, data pipeline, and vendored verl implementation under editable workspace; the agent could alter sampling and how available teacher/reward/generated signals enter training. Fixed or forbidden components: the mounted student start, teacher, and training data; frozen evaluators; no network; and one GPU. External models/data, training on final questions, evaluation-specific lookup, and inclusion of explore weights or runtime artifacts in the source patch were forbidden. Proxy evaluator: math500_pass_at_1, maximize; all 500 MATH-500 questions with four samples each, n=2,000, a 12,288-new-token cap, and seed 42; it reports question-clustered standard error and length clipping. Executed source uses the rule grader. Final evaluator: aime24_25_at32, maximize; 60 combined AIME 2024/2025 questions with 32 samples each, n=1,920, and a 31,744-new-token cap; it uses the same rule-grading core plus CompassVerifier fallback and reports question-clustered standard error. Artifact contract: formal replay must start from the fixed student and export complete Hugging Face actors under numerically increasing checkpoint names. If more than three are valid, only the latest three by progress are accepted; the official run result is the best final score among them.
The proxy and final protocols share the mathematical rule-grading core, but use different datasets, sample multiplicities, token caps, and verifier paths. Their numeric scores are not directly comparable, and 0.8790 on the proxy is not a confidence bound for the AIME outcome.
3.2 How the baseline works
One baseline update is:
``text take two math prompts in sequential data order -> have the student generate four reasonings/answers per prompt -> ask the frozen teacher for token log probabilities on those student-generated states -> turn the sampled-token k1 reverse-KL estimate into a distillation advantage and apply a policy-gradient update with symmetric 0.20 ratio clipping -> update all student weights at constant 1e-6 learning rate and export a Hugging Face checkpoint ``
“On-policy” here means that the teacher does not provide a precomputed rationale corpus. The student first visits its own reasoning states, and the teacher supplies dense next-token targets only there. Task rewards are disabled, the custom reward function is null, student and teacher are colocated on one GPU, rollout temperature is 1.0, and each step generates eight sequences. The baseline uses one PPO epoch, no data shuffle, a 2,200-step source horizon intended to be superseded by wall-clock stopping, and saves every 20 steps while retaining three.
The agent's concrete diagnosis was coverage rather than a broken objective. The shipped reference completed 2,057 steps; at two prompts per step, the baseline would expose at most about 4,114 sequential prompt positions. The agent hypothesized that more distinct prompts and a second, comparatively cheap update over each expensive generation batch could improve useful signal under the same wall clock.
4. Four-hour exploration and decision process
Exploration began at 17:06 UTC with source/evaluator inspection and an eight-step end-to-end smoke. The agent then completed a 40-step baseline, a 40-step joint candidate, a 150-step longer probe, a six-step no-override candidate smoke, and a 40-step wider-prompt counterexample, waiting for and reading a full proxy evaluation after every performance run. It explicitly submitted at 20:11 after using 11,126 seconds and leaving 3,330 seconds.
Every reported explore score used the same math500_pass_at_1 protocol: 500 questions, four samples each, n=2,000, seed 42, maximize, with question-clustered standard error.
U-01 - Establish a comparable baseline and diagnose prompt coverage
Motivation and hypothesis. The agent first needed to establish that the shipped path ran on the assigned system and to measure its current short-run score, clipping, and timing. Source inspection showed sequential data and two prompts with four responses each, motivating the hypothesis that wall-clock training under-covered the dataset.
Concrete change and experimental setup. The eight-step smoke was engineering-only. The subsequent 40-step run left the baseline unchanged: two prompts, four rollouts per prompt, one PPO epoch, symmetric 0.20 clipping, and no shuffle.
Observed result. Training dynamics reached step 40 in 874.46 seconds. The 636.00-second proxy evaluation scored 1,675/2,000 = 0.8375 ± 0.013668 with 0.0745 length clipping. Final-step absolute distillation loss was 0.3253. The score was close to the separately declared shipped step-40 proxy reference of 0.8410 ± 0.0138.
Agent interpretation. The agent treated this as a sound reproduction anchor and located the actionable limitation in concentrating eight sequences on two prompts and reading only the dataset prefix, rather than in numerical instability.
Report assessment and confounds. This was one short run and cannot estimate training-seed variability; the shipped reference is not a repeat of this run. Its agreement and clean execution nonetheless make it a reasonable within-environment anchor.
Decision and consequence. The agent used this result as the 40-step baseline and held total generations per step at eight in later comparisons.