On-policy mathematical distillation
GPT-5.6 Sol · Codex · xhigh effort
Public case ID: codex__opd_math_1p5b__gpt-5.6-sol__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 student on-policy samples → fixed-teacher token scores → K1 distillation policy gradient → all student weights. The candidate additionally compares each sampled answer with the fixed training answer using the DAPO rule scorer, normalizes correctness within each four-sample prompt group, and adds that task policy-gradient loss to 0.5× distillation. No external data, extra training model, or pre-existing rationale enters. The patch only changes run.sh: task reward on, coefficient 0.5, 10,000 requested steps, 600-step saves, and two workers. Thus the objective/training signal, hyperparameters…
Exploration and replay evidence
Four-hour exploration
The common proxy was math500_pass_at_1 on 500 MATH-500 questions × four samples (n=2,000; maximize; question-clustered standard error); the shipped 40-step reference was 0.8410 ± 0.0138. Initial parallel K3, forward-KL, 4-prompt×2-sample, and 8×1 probes exceeded host memory and cascaded before comparable output; K3 and the initial pure 4×2 hypothesis therefore remained inconclusive. Sequential execution with two workers was stable. The completed 8×1 diversity probe scored 0.8415 ± 0.0139 and lost within-prompt reward comparison, so it was rejected. A temperature-0.7 probe required two interruptions and a fix that kept teacher temperature at 1.0; its 0.8385 ± 0.0140 and worse clipping rejected the length hypothesis. Enabling group-relative rule correctness at the original 2×4 grouping produced nonzero task loss on 16/40 updates and 0.8435 ± 0.0138, which the agent treated as promising but noisy. Direct top-16 forward KL scored 0.8395 ± 0.0138; a corrected residual-tail variant scored 0.8445 ± 0.0133 but had the worst 0.081 clipping and invasive code, so both were removed. Hybrid 4×2 fell to 0.8315 ± 0.0143. Finally, halving distillation at 2×4 reached the best 0.8465 ± 0.0136 and lowest 0.0625 clipping and was submitted. Every positive gap was below roughly one standard error and had no seed replication, so it was selection evidence, not proof.
Formal replay
Clean replay used 41,694 seconds and stopped by its wall-clock guard at 2,197 actual updates, not the requested 10,000. It cumulatively saved 600/1200/1800/2197, pruned 600 under simultaneous retention of three, and validated 1200, 1800, and 2197 as loadable 1,777,088,000-parameter models. Official aime24_25_at32 results (60 AIME 2024/25 questions × 32, n=1,920; maximize) were 0.410417 ± 0.051944 at 1200, 0.417708 ± 0.051889 at 1800, and 0.416146 ± 0.052683 at 2197. The best gained 318 answers, or 16.5625 points, over the fixed 0.252083 start, but trailed the shipped 0.427083 by 18 answers. Checkpoint gaps are too small for a significant late-degradation claim. Proxy and final use different data and executed grading paths, so their values are not directly comparable; proxy improvement did not establish superiority to the shipped solution.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | AIME24/25 @32 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-1200 | 1200 | 0.4104 | 0.0519 | 1920 | Retained |
| artifact-1800 | 1800 | 0.4177 | 0.0519 | 1920 | Best |
| artifact-2197 | 2197 | 0.4161 | 0.0527 | 1920 | Final |
Best retained
0.4177
artifact-1800
Final checkpoint
0.4161
artifact-2197
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.1656.
Shipped recipe
0.4271
Best retained artifact does not beat it (task-directed delta -0.0094).
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
- Unknown
- 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 - gpt-5.6-sol / Codex CLI / xhigh
Status. Exploration, submission, a clean formal replay with three validated artifacts, all three official final evaluations, and boundary review completed. formal replay 1 was invalidated for external GPU-process contamination.
What happened. The task was to improve a fixed DeepSeek-R1-Distill-Qwen-1.5B from fixed DAPO math data and a fixed teacher under offline, single-GPU limits. The baseline samples four solutions for each of two prompts, uses teacher scores on student-sampled tokens for K1 on-policy distillation, and updates all student weights, but discards already-computed mathematical correctness. The agent diagnosed near-cap responses and narrow prompt coverage, then submitted correctness policy gradient plus 0.5-weighted distillation. Its best official AIME result was 802/1920=0.417708 ± 0.051889: well above the fixed start, but below the shipped solution's point result.
Four-hour exploration. The common proxy was math500_pass_at_1 on 500 MATH-500 questions × four samples (n=2,000; maximize; question-clustered standard error); the shipped 40-step reference was 0.8410 ± 0.0138. Initial parallel K3, forward-KL, 4-prompt×2-sample, and 8×1 probes exceeded host memory and cascaded before comparable output; K3 and the initial pure 4×2 hypothesis therefore remained inconclusive. Sequential execution with two workers was stable. The completed 8×1 diversity probe scored 0.8415 ± 0.0139 and lost within-prompt reward comparison, so it was rejected. A temperature-0.7 probe required two interruptions and a fix that kept teacher temperature at 1.0; its 0.8385 ± 0.0140 and worse clipping rejected the length hypothesis. Enabling group-relative rule correctness at the original 2×4 grouping produced nonzero task loss on 16/40 updates and 0.8435 ± 0.0138, which the agent treated as promising but noisy. Direct top-16 forward KL scored 0.8395 ± 0.0138; a corrected residual-tail variant scored 0.8445 ± 0.0133 but had the worst 0.081 clipping and invasive code, so both were removed. Hybrid 4×2 fell to 0.8315 ± 0.0143. Finally, halving distillation at 2×4 reached the best 0.8465 ± 0.0136 and lowest 0.0625 clipping and was submitted. Every positive gap was below roughly one standard error and had no seed replication, so it was selection evidence, not proof.
How the submitted method works. Baseline flow is student on-policy samples → fixed-teacher token scores → K1 distillation policy gradient → all student weights. The candidate additionally compares each sampled answer with the fixed training answer using the DAPO rule scorer, normalizes correctness within each four-sample prompt group, and adds that task policy-gradient loss to 0.5× distillation. No external data, extra training model, or pre-existing rationale enters. The patch only changes run.sh: task reward on, coefficient 0.5, 10,000 requested steps, 600-step saves, and two workers. Thus the objective/training signal, hyperparameters, schedule, engineering, and checkpoint policy change; data, grouping, K1, learning rate, and trainable weights do not. Only same-hash source—not exploration weights—entered replay from the fixed start.
Formal and evaluation evidence. Clean replay used 41,694 seconds and stopped by its wall-clock guard at 2,197 actual updates, not the requested 10,000. It cumulatively saved 600/1200/1800/2197, pruned 600 under simultaneous retention of three, and validated 1200, 1800, and 2197 as loadable 1,777,088,000-parameter models. Official aime24_25_at32 results (60 AIME 2024/25 questions × 32, n=1,920; maximize) were 0.410417 ± 0.051944 at 1200, 0.417708 ± 0.051889 at 1800, and 0.416146 ± 0.052683 at 2197. The best gained 318 answers, or 16.5625 points, over the fixed 0.252083 start, but trailed the shipped 0.427083 by 18 answers. Checkpoint gaps are too small for a significant late-degradation claim. Proxy and final use different data and executed grading paths, so their values are not directly comparable; proxy improvement did not establish superiority to the shipped solution.
Audit and takeaway. Fixed data/model, source-only lineage, hashes, wall clock, and one-GPU use close cleanly for exploration attempt 2; AIME was absent during exploration, evaluator source revealed no hidden question/answer value, and no hidden reconstruction, external input, or contamination appears. Task prose says the proxy has verifier fallback, but proxy source/receipts are rule-only while final evaluation uses CompassVerifier—an evaluation-contract defect, not agent misconduct. Observable agent behavior is clean; protocol/evaluation-boundary exposure is none found; platform/scheduling/resource isolation has a confirmed defect because exploration attempt 1 shared a GPU with an external process, but its forensic-only invalidation and fresh replay preserve official validity. The work demonstrates disciplined objective/sampling ablation and replay engineering; it cannot establish a causal advantage for coefficient 0.5 or equality/superiority to the shipped solution.
Full semantic audit
codex__opd_math_1p5b__gpt-5.6-sol__xhigh - Full English Analysis
1. Run identity, attempt selection, and lineage
2. Reader-facing overview
The task asks the agent to improve a fixed DeepSeek-R1-Distill-Qwen-1.5B student using a fixed teacher and 15,285 DAPO math prompts under offline, single-GPU, and wall-clock constraints. The shipped baseline samples student solutions on policy, asks the teacher for probabilities on the exact sampled tokens, and applies a K1 sampled-token policy-distillation signal. Although the framework also computes mathematical correctness, the baseline discards that task reward. The agent diagnosed very long early responses, frequent truncation, and narrow prompt coverage per update.
During four hours, the agent tested prompt diversity, rollout temperature, sparse correctness reward, two forward-KL approximations, group size, and the relative weight of distillation. It also recovered from a host-memory cascade caused by launching multiple Ray/vLLM stacks concurrently. The submitted recipe retained two prompts and four rollouts per prompt, added group-relative rule-based correctness to the policy-gradient signal, multiplied the distillation loss by 0.5, reduced rollout workers from eight to two, requested 10,000 steps, and saved every 600 steps.
The best exploration proxy was math500_pass_at_1=0.8465 ± 0.0136, only 0.0055 above the shipped 40-step proxy reference of 0.8410, so the evidence was weak. A first formal attempt was invalidated in full because an external NVIDIA compute process already shared its physical GPU. A clean replay completed 2,197 updates and published three loadable models. The best official final result was checkpoint 1800 at aime24_25_at32=802/1920=0.417708 ± 0.051889: 16.5625 percentage points above the fixed start, but 18 answers below the shipped solution's 820/1920 point result. Proxy and final scores use different data and executed grading paths and are not numerically comparable.
Observable agent behavior was clean, and no hidden question value was exposed or used. Platform resource isolation had a confirmed defect, but the contaminated run was discarded and replayed from scratch, preserving the validity of exploration attempt 2. The main scientific limitation is that each 40-step exploration candidate had only one training realization and all positive proxy gaps were smaller than roughly one reported standard error.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
``text Starting artifact / model: fixed DeepSeek-R1-Distill-Qwen-1.5B weights Available training data and assets: fixed 15,285-row DAPO-Math-17k zero-overlap v2 set, fixed JustRL-DeepSeek-1.5B teacher, and MATH-500 during exploration Agent-editable surface: candidate training source under editable workspace; only a source patch crosses into formal replay Fixed or forbidden components: student start, teacher, training data, evaluators, and final AIME data; no network, external weights/data, final-question training, or answer lookup Proxy evaluator: math500_pass_at_1, maximize; 500 MATH-500 questions × 4 samples, n=2,000; temperature 0.7, top_p 0.9, 12,288-token cap; question-clustered standard error Final evaluator: aime24_25_at32, maximize; 60 AIME 2024/2025 questions × 32 samples, n=1,920; temperature 0.7, top_p 0.9, 31,744-token cap; question-clustered standard error Artifact contract: complete Hugging Face exports at run output area>/; at most three valid checkpoints retained simultaneously; official selection is the best valid final result ``
The proxy is sample accuracy over four rule-graded MATH-500 generations per question. The final metric is sample accuracy over 32 AIME generations per question. The task instruction says both use rule grading with verifier fallback, but executed source differs: fast_eval.py invokes rule grading only, and every proxy receipt has correct == rule_passes; final_eval.py sends rule failures to CompassVerifier, and final correct counts are slightly above rule-pass counts. This is an observed task-contract/source conflict. In addition to different questions, sample counts, and length caps, the grading paths differ, so proxy and final values must remain separate.
3.2 How the baseline works
``text [take two math prompts in fixed dataset order] -> [student samples four on-policy solutions per prompt at temperature 1.0, capped at 7,168 response tokens] -> [fixed teacher scores each student-sampled token; the math rule scorer also computes correctness, which the baseline discards] -> [use the K1 sampled-token distillation estimator as a policy-gradient signal at constant 1e-6 learning rate] -> [update all 1,777,088,000 student parameters and periodically export a full model] ``
The baseline uses FSDP and colocated vLLM on one GPU, does not shuffle the training set, and processes eight responses per update. It requests 2,200 updates, saves every 20, and retains at most three checkpoints, subject to the formal wall-clock guard. Correctness rewards are generated by the framework, but USE_TASK_REWARDS=False keeps them out of the advantage; dense teacher token scores are the operative training signal. The agent's initial measurements found an average response length of about 6,747 tokens in the first two batches, with roughly seven of eight responses reaching the 7,168 cap. Fixed ordering and two prompts per update also mean a 40-step probe sees only about 80 prompts. These observations motivated the diversity, length, and correctness-signal experiments.
4. Four-hour exploration and decision process
The agent first inspected the task, data, baseline loss, and evaluator implementation, then used a common 40-update training probe followed by a full MATH-500 proxy run for comparisons. Much of the middle period was spent executing probes sequentially, scoring them, and recovering from the initial concurrency failure. The final period compared forward-KL variants, group composition, and loss balance, then froze source and audited the submission. The run lasted from 18:04:47 to 21:46:26 UTC, about 3 hours 41 minutes. The remaining 1,141 seconds were shorter than another roughly 17-minute probe plus a roughly 9.5-minute evaluation.
U-01 - Establishing a resource-safe experimental path
Motivation and hypothesis. The agent wanted to screen K3 low-variance estimation, direct forward KL, four prompts × two samples, and eight prompts × one sample in parallel, separating prompt-coverage effects from distillation-objective effects.
Concrete change and experimental setup. It initially launched four independent 40-update Ray/vLLM stacks on the allowed task GPU while sharing host memory. After failure, it removed stale clusters, ran one probe at a time, and reduced rollout workers from eight to two.
Observed result. The combined stacks crossed the 128 GB host-memory protection threshold. K3 and the eight-prompt run died during startup; the forward-KL and four-prompt runs then failed in the cascade. None completed an update, checkpoint, or comparable proxy result. A subsequent eight-prompt retry exited 143 until stale clusters were cleaned. Sequential runs then completed reliably at roughly 20–25 seconds per steady-state update.
Agent interpretation. The agent attributed these failures to aggregate host-memory pressure, not to the scientific candidates. It adopted “one stack at a time” and later avoided editing source used by a live process.
Report assessment and confounds. The evidence supports an infrastructure-execution failure. K3 and the initial pure four-prompt × two-sample direction remain inconclusive rather than scientifically rejected.
Decision and consequence. Sequential execution governed every later comparison, and two rollout workers entered the submitted patch, materially improving replayability.