On-policy mathematical distillation
GPT-5.6 Luna · Codex · xhigh effort
Public case ID: codex__opd_math_1p5b__gpt-5.6-luna__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
Fixed prompt → student samples four online answers at 0.7 → fixed teacher at 1.0 scores the sampled tokens → negative k1 signal becomes the policy-gradient advantage → constant-1e-6 AdamW updates every student parameter. Teacher targets are generated during formal replay; no external labels, preexisting chain of thought, or exploration weights enter. This is a sampling-hyperparameter and interface-engineering change only: the objective, update rule, data, optimizer, trainable parameters, and checkpoint policy remain unchanged, and formal replay starts from the fixed student.
Exploration and replay evidence
Four-hour exploration
The common proxy was higher-is-better MATH-500 pass@1 over 500 questions × four samples (n=2000) with clustered standard error. The executable fast evaluator used rule grading only, despite task prose also claiming verifier fallback. A 40-step control scored 0.838±0.014454, clip rate 0.0765, consistent with the supplied 0.841 reference. An incorrectly isolated launch and a teacher-temperature-0.7 launch produced no checkpoint; the valid student-0.7/teacher-1.0 40-step run scored 0.840±0.013845, clip rate 0.0795, so its +0.002 was weak but provisionally adopted. Two 20-step objective changes—policy-gradient k3 and direct top-16 forward KL—both scored 0.8205 and were rejected. Seed-42 data shuffling shortened early responses but scored 0.8145±0.014312; doubling learning rate to 2e-6 scored 0.832±0.014140; both were rejected. Additional 20-step student temperatures 0.5 and 0.85 scored 0.8185±0.014536 and 0.809±0.015000, respectively, and were rejected. Because most alternatives had 20 steps versus 40 for control/0.7 and no candidate was repeated, this sweep did not establish a robust optimum. Final source syntax, long-wall-clock, and three-artifact retention checks passed.
Formal replay
Formal replay requested 2,200 steps and stopped on its wall-clock guard at 2,081 after 41,677.737/43,200 seconds (96.48%), not at a short fixed endpoint. The three retained models all loaded with 1,777,088,000 parameters. On higher-is-better AIME24/25@32 (n=1920), progress 2060 scored 0.4140625±0.052416 with four clipped generations; 2080 scored 0.4213542±0.053240 with three; and best 2081 scored 819/1920=0.4265625±0.052862 with five. Best gained 335 correct samples over the fixed start but was one below the shipped method's directly comparable 820/1920; the proxy and final protocols differ and cannot be subtracted, so the small proxy edge did not become evidence of final improvement.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | AIME24/25 @32 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-2060 | 2060 | 0.4141 | 0.0524 | 1920 | Retained |
| artifact-2080 | 2080 | 0.4214 | 0.0532 | 1920 | Retained |
| artifact-2081 | 2081 | 0.4266 | 0.0529 | 1920 | Best · final |
Best retained
0.4266
artifact-2081
Final checkpoint
0.4266
artifact-2081
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.1745.
Shipped recipe
0.4271
Best retained artifact does not beat it (task-directed delta -0.0005).
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-luna / Codex CLI / xhigh
Status. The sole exploration run, explicit submission, formal retraining, validation of three artifacts, all three official final evaluations, and the boundary audit completed; patch hashes and lineage match.
What happened. The task was to improve a fixed DeepSeek-R1-Distill-Qwen-1.5B student using only a fixed teacher and 15,285-row zero-overlap mathematics set. The baseline has the student sample four answers per prompt, obtains teacher log probabilities on the sampled tokens, and uses negative k1 single-sample reverse-KL estimates as detached token advantages in a policy-gradient-style loss that updates all student parameters without correctness rewards. The agent found severe initial response clipping and deterministic prefix-only data coverage, but submitted only a student rollout-temperature change from 1.0 to 0.7 plus an explicit teacher temperature of 1.0.
Four-hour exploration. The common proxy was higher-is-better MATH-500 pass@1 over 500 questions × four samples (n=2000) with clustered standard error. The executable fast evaluator used rule grading only, despite task prose also claiming verifier fallback. A 40-step control scored 0.838±0.014454, clip rate 0.0765, consistent with the supplied 0.841 reference. An incorrectly isolated launch and a teacher-temperature-0.7 launch produced no checkpoint; the valid student-0.7/teacher-1.0 40-step run scored 0.840±0.013845, clip rate 0.0795, so its +0.002 was weak but provisionally adopted. Two 20-step objective changes—policy-gradient k3 and direct top-16 forward KL—both scored 0.8205 and were rejected. Seed-42 data shuffling shortened early responses but scored 0.8145±0.014312; doubling learning rate to 2e-6 scored 0.832±0.014140; both were rejected. Additional 20-step student temperatures 0.5 and 0.85 scored 0.8185±0.014536 and 0.809±0.015000, respectively, and were rejected. Because most alternatives had 20 steps versus 40 for control/0.7 and no candidate was repeated, this sweep did not establish a robust optimum. Final source syntax, long-wall-clock, and three-artifact retention checks passed.
How the submitted method works. Fixed prompt → student samples four online answers at 0.7 → fixed teacher at 1.0 scores the sampled tokens → negative k1 signal becomes the policy-gradient advantage → constant-1e-6 AdamW updates every student parameter. Teacher targets are generated during formal replay; no external labels, preexisting chain of thought, or exploration weights enter. This is a sampling-hyperparameter and interface-engineering change only: the objective, update rule, data, optimizer, trainable parameters, and checkpoint policy remain unchanged, and formal replay starts from the fixed student.
Formal and evaluation evidence. Formal replay requested 2,200 steps and stopped on its wall-clock guard at 2,081 after 41,677.737/43,200 seconds (96.48%), not at a short fixed endpoint. The three retained models all loaded with 1,777,088,000 parameters. On higher-is-better AIME24/25@32 (n=1920), progress 2060 scored 0.4140625±0.052416 with four clipped generations; 2080 scored 0.4213542±0.053240 with three; and best 2081 scored 819/1920=0.4265625±0.052862 with five. Best gained 335 correct samples over the fixed start but was one below the shipped method's directly comparable 820/1920; the proxy and final protocols differ and cannot be subtracted, so the small proxy edge did not become evidence of final improvement.
Audit and takeaway. Formal configuration used only the fixed student, teacher, and parquet; the source-only patch excluded exploration weights, one assigned GPU was idle before launch, and formal wall-clock use was compliant. The 60 evaluator-only final questions produced 0/60 exact-text hits across the complete raw trajectory including tool results, complete Codex session, state, experiment commands, and patch; no exposure, reconstruction, use, or effect was found, nor any successful external data/model import. Observable agent behavior is confirmed, however: it submitted idle with 1,879 seconds left despite an explicit continue rule; the selected checkpoint's completed full evaluation measured 603.62 seconds, demonstrating that a different-seed repeat could be completed and interpreted. Protocol exposure was not found; platform scheduling/resource isolation was compliant. The run demonstrates broad ablation and replay engineering, but unmatched horizons, missing replication, and premature submission mean it supports “essentially reproduced the shipped method,” not “0.7 is superior.”
Full semantic audit
codex__opd_math_1p5b__gpt-5.6-luna__xhigh - Full English Analysis
1. Run identity, attempt selection, and lineage
Task: opd_math_1p5b, improving a fixed 1.5B mathematical-reasoning student. Task category: language-model post-training, mathematical reasoning, and on-policy distillation. Evaluated coding-agent model: gpt-5.6-luna. Harness: Codex CLI. Reasoning effort: xhigh. Seeds: the formal data-loader seed was 42, while the student and teacher inference engines reported seed 0; the MATH-500 exploration evaluator used its default seed 42, and final seeds were controlled by the frozen evaluator. Exploration budget: 14,400 seconds. The run lasted from 2026-08-10 13:47:05 UTC to 17:16:27 UTC and had 1,879 seconds left at submission. Formal-retraining budget: 43,200 seconds.
Primary exploration run: exploration attempt 1. The manifest, sibling-directory scan, and status records identify this as the only complete exploration attempt; there were no earlier complete retries, unlinked formal runs, or corrections for this job. Selection rationale: it is the sole complete attempt and has a raw trajectory, submission receipt, lifecycle receipt, and .explore.complete. Earlier complete retries and outcomes: none. Patch hash and verification: both the exploration patch and the formal copy have SHA-256 verified private digest; they compare byte-for-byte, and the patch applied cleanly in the formal container. Formal run: formal replay 1. selected-exploration lineage: exploration attempt 1, matching the formal manifest's selected-exploration lineage. Final-evaluation receipts: all three checkpoints have both a summary.json and matching .complete, so all three are official.
Evidence completeness: exploration, submission, formal replay, artifact discovery, three checkpoint validations, and three final evaluations all have direct evidence. Missing or conflicting evidence: an incorrectly isolated later launch overwrote exploration-root out/summary.json, which now reports 81.03 seconds and return code 134; it is not the receipt for the original 40-step control. The control runtime therefore comes from the complete raw trajectory and its score from the independent MATH-500 JSON. The lifecycle records raw agent exit status 137, but the same receipt says agent_exit_state=completed with explicit-submit termination, and both submit.json and .explore.complete exist; this is a receipt-level consequence of submission ending the session, not a failed exploration. The task prose says both evaluators use verifier fallback, but executable fast_eval.py invokes only the rule grader, whereas final_eval.py invokes CompassVerifier fallback. This report describes the executed implementations. The formal manifest's final-scoring fields are empty because final scoring ran later in separate directories, not because final evidence is absent.
2. Reader-facing overview
The task permits only a fixed student, a fixed teacher, and a 15,285-row zero-overlap mathematics training set. The shipped method has the current student sample four long answers per prompt, asks the teacher to score the tokens actually sampled, and turns a k1 single-sample KL signal into a policy-gradient-style update of all student parameters. Formal training must restart from the fixed student and export no more than three loadable models within a 12-hour wall clock.
The agent reproduced a 40-step control and then tested rollout temperature, two alternative distillation objectives, data shuffling, learning rate, and two additional temperatures. The submitted patch only lowered student rollout temperature from 1.0 to 0.7 and explicitly pinned teacher inference temperature to 1.0; the objective, data, optimizer, learning rate, and trainable parameters did not change. The 40-step candidate scored 0.840 ± 0.013845 on MATH-500 versus 0.838 ± 0.014454 for the control, far too small a gap to be decisive.
Formal replay succeeded for 41,677.737 seconds, or 96.48% of the 43,200-second budget. Its wall-clock guard stopped training at 2,081 completed steps rather than the requested 2,200. Final AIME24/25@32 scores at progress 2060, 2080, and 2081 were 0.4140625, 0.4213542, and 0.4265625. The best, 2081, achieved 819/1920 with clustered standard error 0.052862: 335 more correct samples than the fixed start, but one fewer than the shipped method's 820/1920 under the same final protocol. The candidate therefore did not demonstrate an improvement over the shipped solution.
The run shows broad ablation work, quick diagnosis of output isolation and teacher-API coupling, and a genuinely replayable long-horizon recipe. Its main scientific limitation is unmatched 20/40-step screening and no repeat of the chosen candidate. More importantly, the agent explicitly submitted while idle with 1,879 seconds remaining; the completed full evaluation of that checkpoint had measured about 604 seconds, demonstrating that a different-seed repeat could finish and be interpreted. This violates the task's explicit continue-exploring rule and makes observable agent behavior confirmed, without invalidating formal artifact lineage or the official scores.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
Starting model or artifact: a read-only snapshot of deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B; formal replay may not warm-start from exploration weights. Available training data and assets: a read-only 15,285-row zero-overlap DAPO-Math projection and the read-only hbx/JustRL-DeepSeek-1.5B teacher. MATH-500 is additionally mounted in exploration; AIME24/25 and the verifier are mounted only for final scoring. Editable scope: the launcher, training driver, loss, optimizer, data pipeline, and vendored VERL under editable workspace; row selection, curriculum, sampling, and the manner in which teacher or generated signals enter the objective may all change. Fixed or prohibited scope: the starting student, mounted assets, frozen evaluators, final questions, formal wall clock, and one-GPU boundary. External data or weights, training on final questions, evaluation-specific lookup, and exploration weights entering formal replay are prohibited. The environment is no-network. Proxy evaluator: the executed math500_pass_at_1, higher is better; all 500 MATH-500 questions with four samples each, n=2000; temperature 0.7, top_p=0.9, fixed 12,288-token cap; clustered standard error and clip rate. The executable path uses the JustRL rule grader only, with no CompassVerifier fallback. Final evaluator: aime24_25_at32, higher is better; 60 AIME 2024/2025 questions with 32 samples each, n=1920; temperature 0.7, top_p=0.9, fixed 31,744-token cap; rule grading followed by CompassVerifier fallback and question-clustered standard error. Artifact contract: complete, loadable actor/Hugging Face exports under monotonically increasing numeric progress; the formal orchestrator accepts at most three checkpoints.
Proxy and final numbers are not numerically comparable: the question sets, samples per question, generation caps, and executed grading paths differ. Proxy scores can rank exploration candidates only. The candidate, fixed-start, and shipped AIME scores are direct final-to-final comparisons. The prose/code disagreement about fallback is a task-package evidence conflict, not evaluator modification or secret exposure by the agent.
3.2 How the baseline works
``text Fixed mathematics prompt -> current student samples four answers at temperature 1.0, up to 7,168 tokens -> fixed teacher scores the actually sampled tokens in those student answers -> negative k1 single-sample reverse-KL estimate becomes a detached token advantage; no correctness reward is used -> AdamW at a constant 1e-6 updates all student parameters and periodically exports an HF actor ``
Each step uses two prompts and eight total answers. The student, rollout engine, and teacher share one GPU, with teacher inference and student training taking turns in memory. Although configuration retains topk=16, the submitted k1 estimator uses the student and teacher log probabilities of sampled tokens rather than directly supervising against the teacher's top-16 distribution. Data is not shuffled, so the formal horizon traverses only an initial prefix of the training set. There is no task reward; logged critic/score=-1 is not mathematical-correctness feedback. The recipe requests 2,200 steps with constant learning rate, saves every 20 steps, keeps three simultaneously, and relies on a wall-clock guard to finish on a complete step.
The agent identified two concrete bottlenecks. All eight answers in the first batch hit the 7,168-token limit, suggesting excessive reasoning length and wasted rollout work. It also observed that deterministic data order restricts the 12-hour run to a training-set prefix. Those observations motivated temperature alignment, loss variants, and shuffling.
4. Four-hour exploration and decision process
The first roughly hour went to tracing the baseline/evaluators and completing a 40-step control. The middle of the run covered temperature, objective, data-order, and learning-rate experiments. After one session reconnect, the final period added temperature-0.5 and temperature-0.85 ablations, audited the source recipe, and submitted. Apart from two invalid temperature launches, every scored candidate completed the fixed 500-question, four-sample MATH-500 evaluation. Submission occurred after about 3 hours 29 minutes of the four-hour budget.
U-01 - Establishing the control and diagnosing clipping
Motivation and hypothesis. The agent first needed to reproduce the shipped path and determine whether initially long responses indicated instability.
Concrete change and setup. It made no source change, trained the original k1 policy-gradient distillation for 40 steps from the fixed student, using two prompts, four rollouts per prompt, and rollout temperature 1.0, then ran the full proxy.
Observed result. The raw trajectory records 1,063.97 seconds of training and a complete step-40 HF export. The first batch had clip ratio 1.0, with mixed clipping later. MATH-500 scored 0.838 ± 0.014454, n=2000, clip rate 0.0765; the provided exploration reference was 0.841 ± 0.0138, clip rate 0.0645.
Agent interpretation. It considered the control consistent with the reference within noise and the path healthy. Long answers were a useful quality/throughput signal but not persistent collapse.
Report assessment and confounders. That interpretation is supported. The root training summary was later overwritten by an invalid launch, so the immutable raw tool result—not the 81-second overwritten summary—is the runtime authority; the independent evaluation JSON is the score authority.
Decision and downstream effect. The control was preserved as a fallback, and the next experiment changed only student sampling temperature.