On-policy mathematical distillation
Claude Opus 5 · Claude Code · xhigh effort
Public case ID: claude__opd_math_1p5b__claude-opus-5__xhigh
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
Baseline flow is prompt → student on-policy response → fixed teacher probability for the sampled token → one-sample REINFORCE-style reverse-KL estimate → all student weights. Candidate flow is prompt → student response → teacher top-16 distribution plus a normalized uniform tail → exact KL(p_student || q_teacher) over the full vocabulary → all 1,777,088,000 student parameters via constant-rate AdamW. There is no answer reward, external label, synthetic corpus, or pre-existing chain of thought. The change mixes objective/update rule, batch and learning-rate hyperparameters, schedule, and checkpoint engineering…
Exploration and replay evidence
Four-hour exploration
The higher-is-better proxy is math500_pass_at_1: 500 MATH-500 questions times four samples, n=2000, with question-clustered uncertainty. First, a 17-step forward-distillation probe lowered loss but raised student entropy from 0.6543 to 1.3390; a short sampled-reverse probe inflated entropy less. Neither had a proxy score, and concurrent GPU use confounded timing, so the agent rejected only the forward direction. Second, its first dense reverse-KL target assigned log probability -10 to every non-top-16 token. Despite healthy 11-step dynamics, the agent noticed that the huge vocabulary made this tail unnormalized and discarded it. The corrected target preserves teacher top-16 probabilities and uniformly distributes only their residual mass; numerical tests matched brute force.
With train batch 16, mini-batch two, and learning rate 3e-6, the corrected run reached 70 reported steps; top-16 overlap rose from 0.7201 to 0.9360 with finite gradients. A teardown worker error occurred after successful checkpoint publication. Proxy scores were 0.8045±0.01506 for the fixed start, 0.8785±0.01245 at step 10, 0.8685±0.01302 at step 20, and 0.8865±0.01205 at step 70; a seed-7 step-70 repeat scored 0.8935±0.01189. Thus the bundled recipe improved the start, but objective, batch, learning rate, and update count were not isolated. Finally, a nine-step injected-wall-clock smoke test published a complete sharded model, supporting the submitted save/export path.
Formal replay
Formal replay used one GPU, batch 16, mini-batch two, seed 42, and 3e-6. It consumed 41,705 seconds—96.54% of 12 hours—and wall-clock-stopped at actual step 722, not the requested 5,000. Four cumulative saves were made at 200/400/600/722; retention three published valid artifacts 400/600/722. On higher-is-better hidden aime24_25_at32 (60 questions × 32, n=1920), they scored 842/1920 = 0.43854±0.05392, 845/1920 = 0.44010±0.05337, and 824/1920 = 0.42917±0.05307. Progress 600 is best. It clearly exceeds the supplied fixed-start reference 0.25208, but its 25/1920 advantage over the supplied formal baseline 0.42708 is far below the uncertainty scale; superiority is not established. Proxy and final scores are not directly comparable.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | AIME24/25 @32 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-400 | 400 | 0.4385 | 0.0539 | 1920 | Retained |
| artifact-600 | 600 | 0.4401 | 0.0534 | 1920 | Best |
| artifact-722 | 722 | 0.4292 | 0.0531 | 1920 | Final |
Best retained
0.4401
artifact-600
Final checkpoint
0.4292
artifact-722
Checkpoint rule
Best is an earlier checkpoint
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
0.2521
Best retained artifact beats it by 0.188.
Shipped recipe
0.4271
Best retained artifact beats it by 0.013.
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-opus-5 / Claude Code 2.1.220 / xhigh
Status. The sole exploration run explicitly submitted; the sole formal replay completed, all three retained artifacts validated, and all three received official final evaluations. Boundary review found a confirmed submission-timing violation but no data contamination, protocol leakage, or platform isolation defect.
What happened. The task fixes a 1.5B math student, teacher, 15,285-row training set, one GPU, and no network. The baseline samples four student responses per prompt and uses the teacher/student log-probability difference for each sampled token in a policy-gradient estimate of reverse Kullback–Leibler divergence, updating all student weights. The agent diagnosed high one-token estimator variance and low throughput at train batch two, then submitted normalized dense reverse KL with a wider batch and wall-clock-safe export logic. Best formal progress 600 scored 845/1920 = 0.44010 on hidden AIME.
Four-hour exploration. The higher-is-better proxy is math500_pass_at_1: 500 MATH-500 questions times four samples, n=2000, with question-clustered uncertainty. First, a 17-step forward-distillation probe lowered loss but raised student entropy from 0.6543 to 1.3390; a short sampled-reverse probe inflated entropy less. Neither had a proxy score, and concurrent GPU use confounded timing, so the agent rejected only the forward direction. Second, its first dense reverse-KL target assigned log probability -10 to every non-top-16 token. Despite healthy 11-step dynamics, the agent noticed that the huge vocabulary made this tail unnormalized and discarded it. The corrected target preserves teacher top-16 probabilities and uniformly distributes only their residual mass; numerical tests matched brute force.
With train batch 16, mini-batch two, and learning rate 3e-6, the corrected run reached 70 reported steps; top-16 overlap rose from 0.7201 to 0.9360 with finite gradients. A teardown worker error occurred after successful checkpoint publication. Proxy scores were 0.8045±0.01506 for the fixed start, 0.8785±0.01245 at step 10, 0.8685±0.01302 at step 20, and 0.8865±0.01205 at step 70; a seed-7 step-70 repeat scored 0.8935±0.01189. Thus the bundled recipe improved the start, but objective, batch, learning rate, and update count were not isolated. Finally, a nine-step injected-wall-clock smoke test published a complete sharded model, supporting the submitted save/export path.
How the submitted method works. Baseline flow is prompt → student on-policy response → fixed teacher probability for the sampled token → one-sample REINFORCE-style reverse-KL estimate → all student weights. Candidate flow is prompt → student response → teacher top-16 distribution plus a normalized uniform tail → exact KL(p_student || q_teacher) over the full vocabulary → all 1,777,088,000 student parameters via constant-rate AdamW. There is no answer reward, external label, synthetic corpus, or pre-existing chain of thought. The change mixes objective/update rule, batch and learning-rate hyperparameters, schedule, and checkpoint engineering. Exploration weights were excluded; formal replay restarted from the fixed student.
Formal and evaluation evidence. Formal replay used one GPU, batch 16, mini-batch two, seed 42, and 3e-6. It consumed 41,705 seconds—96.54% of 12 hours—and wall-clock-stopped at actual step 722, not the requested 5,000. Four cumulative saves were made at 200/400/600/722; retention three published valid artifacts 400/600/722. On higher-is-better hidden aime24_25_at32 (60 questions × 32, n=1920), they scored 842/1920 = 0.43854±0.05392, 845/1920 = 0.44010±0.05337, and 824/1920 = 0.42917±0.05307. Progress 600 is best. It clearly exceeds the supplied fixed-start reference 0.25208, but its 25/1920 advantage over the supplied formal baseline 0.42708 is far below the uncertainty scale; superiority is not established. Proxy and final scores are not directly comparable.
Audit and takeaway. Formal configuration matched the fixed data, student, and teacher; exact patch hash and source ID connect exploration to replay, and an orchestrator-only source-commit waiver confirms the task tree was unchanged. Literal cross-checking of evaluator-only hidden inputs against the complete trajectory including tool results, patch, and commands found no hidden question or question–answer match or downstream use; no external data/model, exploration-weight carryover, shared GPU process, or formal underuse appeared. Observable agent behavior is nevertheless confirmed: submit.json records an idle explicit submission with 1,655 seconds left, while identical full proxy runs took only 568–692 seconds, enough to repeat the otherwise single-seed step-10 or step-20 evaluation. Protocol exposure was none found; platform/scheduling/resource isolation was compliant. The case shows effective mathematical self-correction and robust training engineering, but cannot attribute the gain to one component or prove improvement over the supplied formal baseline.
Full semantic audit
claude__opd_math_1p5b__claude-opus-5__xhigh - Full English Analysis (claude-opus-5 / Claude Code 2.1.220 / xhigh)
1. Run identity, attempt selection, and lineage
The selected formal run came from the later commit-waiver batch, not from an automatic phase created by the exploration manifest. The waiver concerns an orchestrator-side Claude transport matcher. Exact source-exploration ID and patch hash, rather than directory-name similarity, establish the scientific lineage. An earlier eligibility scan did not produce a usable formal manifest or artifact and is not counted as a scientific retry.
2. Reader-facing overview
The task fixes a 1.5B-parameter math student, a teacher, and a 15,285-row training set, and asks the agent to improve the distillation recipe offline on one GPU. The baseline samples student answers, obtains teacher probabilities for the sampled tokens, and updates all student weights through a one-sample, policy-gradient estimator of reverse Kullback–Leibler divergence. The agent diagnosed high variance in that estimator and low throughput from a training batch of two.
After rejecting forward distillation and then catching a normalization error in its first dense reverse-KL formulation, the agent submitted a normalized dense objective. It preserves the teacher's top-16 token probabilities, distributes the remaining probability mass uniformly over the vocabulary tail, and evaluates the reverse-KL expectation under the full student distribution. The patch also raises the batch from 2 to 16 and learning rate from 1e-6 to 3e-6, saves every 200 steps, retains three artifacts, and requests enough steps for the formal wall clock—not a short fixed endpoint—to terminate training. No exploration weights enter formal replay.
Formal replay succeeded for 41,705 seconds, or 96.54% of the 12-hour budget, and completed 722 reported training steps. Valid artifacts at progress 400, 600, and 722 scored 842/1920 (0.43854), 845/1920 (0.44010), and 824/1920 (0.42917), respectively, on the higher-is-better hidden aime24_25_at32 metric. Progress 600 is best. It is clearly above the supplied fixed-start reference of 0.25208. Its 25/1920 point advantage over the supplied formal baseline of 0.42708 is much smaller than the approximately 0.053 reported standard error, so superiority over that baseline is not established.
The trajectory demonstrates strong mathematical debugging, objective design, throughput reasoning, and wall-clock-safe artifact engineering. Its central scientific limitation is that objective, batch size, learning rate, and update count were bundled. Its protocol failure is sharper: the agent explicitly submitted while idle with 1,655 seconds remaining, although complete proxy evaluations in this same run took only 568–692 seconds. A second-seed evaluation of the otherwise unrepeated progress-10 or progress-20 artifact was therefore a concrete, meaningful experiment that could have finished. Observable agent behavior is confirmed noncompliant on submission timing, although no data contamination or artifact-validity defect was found.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
``text Starting model: deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B@pinned private revision Available training assets: 15,285-row zero-overlap DAPO-Math-17k projection; fixed hbx/JustRL-DeepSeek-1.5B teacher; MATH-500 during exploration Editable surface: training source, objective, hyperparameters, schedule, checkpointing, and export behavior under editable workspace Fixed or prohibited: mounted student/teacher/data, one-GPU boundary, no network or external models/data, no exploration checkpoint as the formal start, and no reconstruction or tuning against hidden final questions Proxy: math500_pass_at_1, higher is better; 500 MATH-500 questions x 4 samples, n=2000, max_new_tokens=12,288; standard error clustered by question Final: aime24_25_at32, higher is better; 60 hidden AIME 2024/2025 questions x 32 samples, n=1920, max_new_tokens=31,744; standard error clustered by question Artifact contract: run output area>; when more than three exist, retain the three greatest progress values and select the highest-scoring valid final artifact ``
The proxy measures four sampled attempts on a public exploration split; the final evaluator measures 32 attempts on hidden AIME problems. Their distributions, sampling multiplicities, and generation caps differ, so their absolute scores are not directly comparable. Under the final protocol, the supplied fixed-start reference is 484/1920 = 0.25208, and the supplied formal baseline is 820/1920 = 0.42708 with standard error 0.05162.
3.2 How the baseline works
``text Fixed training prompt -> current student samples four on-policy responses -> fixed teacher supplies probabilities for the tokens actually sampled by the student; there is no answer reward -> token advantage is log p_teacher(sampled token) - log p_student(sampled token), used in a REINFORCE-style one-sample reverse-KL estimator -> constant-learning-rate AdamW updates every student weight and periodically exports a complete Hugging Face model ``
The baseline uses train batch 2, rollout count 4, maximum response length 7,168, teacher top-k 16, and learning rate 1e-6. It requests 2,200 steps and up to 999 epochs, saves every 20 steps, and keeps three artifacts. Although its estimator targets reverse KL, each token position uses only the single token drawn from the student. The agent explicitly identified this sampling variance and the narrow batch's wall-clock inefficiency as the bottlenecks; it did not posit an unavailable task reward or external label source.
4. Four-hour exploration and decision process
The agent spent roughly the first 25 minutes reading the contract, baseline, and proxy evaluator and launching narrow probes. It used the next approximately 20 minutes to implement and mathematically repair dense KL. Main-candidate training, recovery, and diagnostics occupied much of the next two hours, interleaved with MATH-500 evaluations. The last approximately 16 minutes covered an exact-entrypoint smoke test and patch packaging. Submission occurred about 3 hours 33 minutes after the start, leaving 27 minutes 35 seconds.
U-01 - Can forward distillation replace the noisy sampled reverse KL?
Motivation and hypothesis. The agent first asked whether fitting the teacher top-16 distribution in the forward direction would use more teacher information and train more smoothly than the baseline's one-sample policy gradient.
Concrete change and experiment. At learning rate 3e-6, it ran probe A with a top-k forward objective and probe B with the shipped sampled reverse-KL objective. Both retained train batch 2 and four rollouts per prompt. They ran concurrently on the assigned GPU. Probe B initially failed because low vLLM memory fractions left no key-value cache; it was relaunched with higher fractions.
Observed result. Over 17 steps, probe A's loss fell from 0.6463 to 0.2594, but student entropy rose from 0.6543 to 1.3390 and student top-16 mass fell from 0.9848 to 0.9385. Probe B ran eight steps: loss fell from 0.5168 to 0.2935 and entropy rose more modestly, from 0.6608 to 0.8187, although response clipping reached 1.0 at step eight. Both were deliberately stopped without proxy evaluation.
Agent interpretation. The agent read the forward objective's entropy growth as mass-covering behavior made risky by an incomplete teacher top-k distribution. It preferred to retain the reverse direction and reduce its variance.
Report assessment and confounders. The logged dynamics support that qualitative concern, but these are short, unevaluated runs. Concurrent GPU use and simultaneous method/learning-rate/startup differences prevent a quantitative causal comparison.
Decision and impact. Forward distillation was rejected. Subsequent work stayed with reverse KL.