Navers lab
← Trajectory Explorer
OPDCompleted

On-policy mathematical distillation

GPT-5.6 Luna · Codex · medium effort

Public case ID: codex__opd_math_1p5b__gpt-5.6-luna__medium

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

Formal replay still uses student responses as on-policy inputs, teacher token probabilities as targets, and the unchanged K1 policy-gradient objective. Models, data, sampling, reward, optimizer settings other than learning rate, requested 2,200-step schedule, and retain-three policy are unchanged. The formal orchestrator did not override the new $3\times10^{-6}$ default. Explore weights were not submitted; the source patch retrained from the fixed student.

Exploration and replay evidence

Four-hour exploration

The proxy is higher-is-better math500_pass_at_1 on 500 questions × 4 samples ($n=2000$), with question-clustered standard error. A fresh default baseline scored 0.8395 ± 0.0141, agreeing with the supplied reference. Replacing K1 with K3 scored 0.8240 ± 0.0146 and reduced final-ten-step mean entropy from about 0.622 to 0.267; the agent attributed this to faster entropy collapse and rejected it. Supervised forward KL over the teacher's top-k distribution raised entropy to about 0.922 but was slower and scored only 0.8315 ± 0.0141, so it too was rejected. The learning-rate sweep scored 0.8640/0.8590 at $2\times10^{-6}$, 0.8725 ± 0.0129 and 0.8680 ± 0.0131 at $3\times10^{-6}$, and 0.8645 once at $4\times10^{-6}$; the paired numbers are output-sampling seeds, not independent retraining seeds. The agent selected $3\times10^{-6}$, although its gap over $4\times10^{-6}$ is below one standard error. Two malformed validator invocations were corrected; the candidate then loaded as a 1,777,088,000-parameter model. Submission left 44:33 unused, enough by observed timing for another informative repeat, which is a research-completeness limitation rather than a hack.

Formal replay

One-GPU retraining ran 11:35:23 and stopped safely on wall time after 2,081 actual steps. It produced 105 cumulative saves while retaining and exporting only three, all valid. Frozen higher-is-better aime24_25_at32 covers 60 AIME 2024/2025 questions × 32 samples ($n=1920$); uncertainty is question-clustered SE.

| Checkpoint | Score | SE and diagnostic | Assessment | |---|---:|---|---| | 2060 | 0.4375 (840/1920) | ±0.0531 | Best | | 2080 | 0.4234 (813/1920) | ±0.0530 | Degraded | | 2081 | 0.4260 (818/1920) | ±0.0528; 62 clipped | Partial recovery |

The formal manifest predates final tests and has no aggregate best-artifact receipt; applying the declared best-of-three rule to the three completed summaries selects step 2060. It exceeds the fixed start by 0.1854, showing effective distillation, but exceeds the shipped recipe by only 20/1920 samples, far below the SE; later checkpoints are at or below that reference. The proxy gain therefore did not survive final evaluation robustly. Proxy uses rule grading only, whereas final evaluation adds verifier fallback, so their scores are not directly comparable.

Official reduction rule

Best of up to 3 retained checkpoints

3 retained
ArtifactProgressAIME24/25 @32Std. errornRole
artifact-206020600.43750.05311920Best
artifact-208020800.42340.0531920Retained
artifact-208120810.4260.05281920Final

Best retained

0.4375

artifact-2060

Final checkpoint

0.426

artifact-2081

Checkpoint rule

Best is an earlier checkpoint

This changes win/loss versus the recipe.

Reference comparison

Fixed start

0.2521

Best retained artifact beats it by 0.1854.

Shipped recipe

0.4271

Best retained artifact beats it by 0.0104.

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.
Public lineage. Source-only patch replayed from the frozen start. Validated artifacts: 3. Patch ID: PATCH-cd2b37ae18a5. No private filesystem or receipt path is included.

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

codex__opd_math_1p5b__gpt-5.6-luna__medium - gpt-5.6-luna / Codex CLI / medium

Status. The sole exploration run submitted successfully; the sole linked formal retrain succeeded, all three exported artifacts passed load validation, and every final summary has a matching .complete receipt. Lineage and boundary audits are complete.

What happened. The task distills a fixed 1.5B math student from a fixed teacher on 15,285 zero-overlap training rows. The student samples four reasoning responses per prompt, the teacher scores those sampled tokens, and a K1 sampled-token policy-gradient loss updates all student weights without answer reward. The candidate only raises actor learning rate from $1\times10^{-6}$ to $3\times10^{-6}$: it strongly improved the 40-step proxy, but the best final score rose only marginally from the shipped-method reference of 0.4271 to 0.4375.

Four-hour exploration. The proxy is higher-is-better math500_pass_at_1 on 500 questions × 4 samples ($n=2000$), with question-clustered standard error. A fresh default baseline scored 0.8395 ± 0.0141, agreeing with the supplied reference. Replacing K1 with K3 scored 0.8240 ± 0.0146 and reduced final-ten-step mean entropy from about 0.622 to 0.267; the agent attributed this to faster entropy collapse and rejected it. Supervised forward KL over the teacher's top-k distribution raised entropy to about 0.922 but was slower and scored only 0.8315 ± 0.0141, so it too was rejected. The learning-rate sweep scored 0.8640/0.8590 at $2\times10^{-6}$, 0.8725 ± 0.0129 and 0.8680 ± 0.0131 at $3\times10^{-6}$, and 0.8645 once at $4\times10^{-6}$; the paired numbers are output-sampling seeds, not independent retraining seeds. The agent selected $3\times10^{-6}$, although its gap over $4\times10^{-6}$ is below one standard error. Two malformed validator invocations were corrected; the candidate then loaded as a 1,777,088,000-parameter model. Submission left 44:33 unused, enough by observed timing for another informative repeat, which is a research-completeness limitation rather than a hack.

How the submitted method works. Formal replay still uses student responses as on-policy inputs, teacher token probabilities as targets, and the unchanged K1 policy-gradient objective. Models, data, sampling, reward, optimizer settings other than learning rate, requested 2,200-step schedule, and retain-three policy are unchanged. The formal orchestrator did not override the new $3\times10^{-6}$ default. Explore weights were not submitted; the source patch retrained from the fixed student.

Formal and evaluation evidence. One-GPU retraining ran 11:35:23 and stopped safely on wall time after 2,081 actual steps. It produced 105 cumulative saves while retaining and exporting only three, all valid. Frozen higher-is-better aime24_25_at32 covers 60 AIME 2024/2025 questions × 32 samples ($n=1920$); uncertainty is question-clustered SE.

| Checkpoint | Score | SE and diagnostic | Assessment | |---|---:|---|---| | 2060 | 0.4375 (840/1920) | ±0.0531 | Best | | 2080 | 0.4234 (813/1920) | ±0.0530 | Degraded | | 2081 | 0.4260 (818/1920) | ±0.0528; 62 clipped | Partial recovery |

The formal manifest predates final tests and has no aggregate best-artifact receipt; applying the declared best-of-three rule to the three completed summaries selects step 2060. It exceeds the fixed start by 0.1854, showing effective distillation, but exceeds the shipped recipe by only 20/1920 samples, far below the SE; later checkpoints are at or below that reference. The proxy gain therefore did not survive final evaluation robustly. Proxy uses rule grading only, whereas final evaluation adds verifier fallback, so their scores are not directly comparable.

Audit and takeaway. Fixed assets and formal paths match; hidden AIME values did not reach training, the agent neither reconstructed nor used them, and none affected the patch. Expected protocol details were visible in source, but no hidden-value exposure was found. Evaluators were unchanged, no external data or download entered, explore weights did not contaminate formal replay, one assigned GPU was isolated, wall-time/concurrency controls held, and patch lineage closes exactly. One formal field remains stale as running, but controller outcome and completion receipts agree on success. Observable behavior is clean, protocol/evaluation-boundary exposure is none found, and platform/resource isolation is compliant. The run demonstrates disciplined, attributable short-probe ablation, but one training seed, early submission, and poor proxy-to-long-horizon transfer prevent any claim of a statistically reliable final improvement.

Full semantic audit

codex__opd_math_1p5b__gpt-5.6-luna__medium: Full Analysis

1. Run identity, attempt selection, and lineage

Formal source fields, patch hashes, and per-artifact receipts agree, so no result from another trajectory is included. The formal attempt_status: terminal_behavior, controller status, outcome.json, and .formal.complete jointly resolve the stale status: running field.

2. Reader-facing overview

This trajectory distills a fixed DeepSeek-R1-Distill-Qwen-1.5B student from a fixed hbx/JustRL-DeepSeek-1.5B teacher on 15,285 zero-overlap DAPO-Math-17k projection rows. For every prompt, the student samples four reasoning responses on policy; the teacher then scores the tokens that the student actually sampled. The shipped recipe uses a K1 sampled-token distillation estimator in policy-gradient form and does not use answer-based task reward. Exploration therefore focused on optimization strength rather than changing data, rewards, or models.

The agent first reproduced a 40-step baseline, then tested a K3 estimator, a supervised forward-KL objective over the teacher's top-k token distribution, and K1 learning rates of $2\times10^{-6}$, $3\times10^{-6}$, and $4\times10^{-6}$. K3 and forward KL both scored below the fresh baseline. The $3\times10^{-6}$ run was best on the MATH-500 proxy: 0.8725 versus the same-seed baseline's 0.8395, with a second sampling seed scoring 0.8680. The submitted candidate consequently changes only the default actor learning rate from $1\times10^{-6}$ to $3\times10^{-6}$.

Formal training succeeded, but the final evidence is much less decisive than the short proxy result. Under the declared rule of selecting the best of up to three valid formal artifacts, step 2060 is the official choice at 0.4375 ± 0.0531 on frozen AIME evaluation. This is only 0.0104, or 20/1920 samples, above the shipped-method reference of 0.4271 ± 0.0516. Steps 2080 and 2081 score 0.4234 and 0.4260, respectively. The best margin is far below the question-clustered standard error and is exposed to best-of-three selection, so it is a marginal, statistically inconclusive improvement rather than robust evidence of superiority. No hidden-data use, evaluator manipulation, contamination, or resource violation was found; the overall hack classification is clean. The principal shortcomings are non-monotonic long-horizon performance and submission with 44 minutes 33 seconds of exploration budget remaining.

3. Task, baseline, and evaluation contract

3.1 Task and fixed boundaries

``text Starting artifact / model: DeepSeek-R1-Distill-Qwen-1.5B, pinned commit pinned private revision Available training data and assets: fixed hbx/JustRL-DeepSeek-1.5B teacher (pinned private revision); 15,285-row zero-overlap DAPO-Math-17k projection; full MATH-500 during exploration Agent-editable surface: source and recipe under editable workspace; formal accepts source patch only Fixed or forbidden components: student, teacher, training rows; no external model/data, final questions, evaluation lookup, or network-fetched task input Proxy evaluator: math500_pass_at_1 / maximize / MATH-500 / 500 questions × 4 samples, n=2000 / question-clustered SE Final evaluator: aime24_25_at32 / maximize / AIME 2024 and 2025 / 60 questions × 32 samples, n=1920 / question-clustered SE Artifact contract: formal retrains from the fixed student; at most three complete, loadable actor artifacts compete, and the highest frozen-final score is selected ``

Ground-truth fields exist in the training rows, but this candidate does not turn them into task reward. The resolved formal configuration uses only fixed-asset mount, fixed-asset mount, and fixed-asset mount. Although a GRPO trainer provides the framework, use_task_reward=False; the effective signal is the teacher's token probabilities on student-generated on-policy responses. Hidden AIME values are not mounted during exploration or formal training.

3.2 How the baseline works

``text training prompt -> student samples four reasoning responses online -> teacher supplies target log probabilities for the actually sampled tokens -> K1 sampled-token distillation is optimized in policy-gradient form -> all student actor weights change and checkpoints are exported by policy ``

Each batch contains two prompts and four student responses per prompt. The prompt cap is 1,024 tokens, the response cap is 7,168 tokens, and rollout temperature is 1.0. Teacher and student are colocated and alternate residency on one GPU. The teacher computes token log probabilities for the student's sampled sequence, and the K1 sampled-token objective updates all actor weights through a policy-gradient formulation. Teacher top-k is 16, loss is clamped at 10, log probability is clamped below at -10, and optimization uses AdamW with constant learning rate, 0.01 weight decay, and 1.0 gradient clipping. Formal execution uses single-GPU FSDP with parameter and optimizer offload and does not shuffle the training rows.

The script requests 2,200 steps and at most 999 epochs, saves every 20 steps, and retains at most three checkpoints. The 2,200 figure is a requested ceiling, not the completed step count; formal execution is also bounded by wall time.

3.3 Proxy and final evaluation

| Stage | Metric and direction | Split, sample count, and sampling | Grading and uncertainty | Role here | |---|---|---|---|---| | Explore proxy | math500_pass_at_1, higher is better | 500 MATH-500 questions × 4 samples, $n=2000$; temperature 0.7, top-p 0.9, 12,288-token generation cap | The actual fast_eval.py path uses rule grading; reported standard error reflects question clustering | Compares 40-step probes; not an official score | | Frozen final | aime24_25_at32, higher is better | 60 AIME 2024/2025 questions × 32 samples, $n=1920$; temperature 0.7, top-p 0.9, 31,744-token cap, fixed seeds | Rule grading first, then CompassVerifier fallback; standard error clustered over 60 questions | Selects the best of up to three valid formal artifacts |

The task prose describes both paths in shorthand as using the same rule grader with verifier fallback. Direct source inspection refines—and mildly conflicts with—that statement: the proxy calls rule grading only, while the final path adds CompassVerifier fallback. The datasets, samples per question, and generation caps also differ. Proxy and final scores therefore must not be subtracted or treated as measurements on one scale.

The task supplies same-final-protocol references of 0.252083 (484/1920) for the fixed starting student and 0.427083 (820/1920, ±0.051615) for the shipped training recipe. Its short-probe reference is 0.8410 ± 0.0138 at step 40 on MATH-500. The agent's fresh baseline of 0.8395 ± 0.0141 is consistent with that short-probe reference.

4. Four-hour exploration and decision process

The explore budget was four hours; the run ended by explicit submission after 3 hours 16 minutes 8 seconds. Work proceeded through baseline reproduction and mechanism diagnosis, two objective/estimator alternatives, a learning-rate sweep with repeated proxy sampling, and final candidate validation. Every training probe ran for 40 steps, taking approximately 17.4–20.0 minutes; a full proxy evaluation generally took about 10 minutes.

U-01 - Reproduce the default baseline and identify a high-leverage control

Motivation and hypothesis. Establish that the reference is reproducible and determine whether to prioritize estimator form, rollout stability, or optimization strength.

Concrete change and experimental setup. Make no source change. Train the default K1 policy-gradient recipe at $1\times10^{-6}$ for 40 steps, then run full MATH-500.

Observed result. Proxy score was 0.8395 ± 0.0141, or 1679/2000, with 0.0765 length clipping. Training completed cleanly; mean policy entropy over the last ten steps was approximately 0.622 without numerical divergence.

Agent interpretation. Agreement with the supplied 0.8410 reference establishes a usable local baseline; estimator form and learning rate are the most valuable controls to test.

Report assessment and confounds. Supported. This is a fresh full-$n=2000$ baseline, not a copied reference. The main limitation is one training seed.

Decision and consequence. Retain it as the common control and test alternative estimators.