Code-model post-training
GPT-5.6 Luna · Codex · xhigh effort
Public case ID: codex__openr1_code_livecodebench__gpt-5.6-luna__xhigh
Recipe shift
What the agent changed
Shipped baseline
Full-parameter supervised fine-tuning on fixed, decontaminated Codeforces solutions with completion-only next-token loss.
Starting artifact: Qwen2.5-Coder-1.5B-Instruct
Candidate algorithm
Baseline and active candidate share one flow: fixed prompt plus existing rationale/code → Qwen token predictions → prompt masking and all answer tokens as labels → full-parameter cross-entropy optimization → complete Hugging Face export. No new rewards, labels, data, or exploration weights entered formal replay. The active changes were schedule, engineering, and checkpoint policy: request 100,000 steps, stop by wall clock, evaluate/export every 300 steps, and retain the latest three. Optional code-mask and length-group switches remained off. Thus the update rule did not change; the public best matched the…
Exploration and replay evidence
Four-hour exploration
All performance probes used seed 42 and the same 204-problem public v4/v5 confirmation split; livecodebench_public_pass_at_1 is maximized, and reported standard errors are descriptive binomial estimates without seed replication. A 60-step completion-only control took 2,988 seconds and scored 15/204 (stderr 0.01827). Editing its script while it ran caused a post-training undefined-variable error, but summaries, hashes, and evaluation established valid weights, and the agent repaired the midpoint export. Code-only masking retained the rationale as context but applied loss only after the final <private filesystem location>; the agent first fixed a tokenizer boundary where that tag merged with a newline. Supervised length fell to 1,189.46 tokens, yet the run scored 13/204 (0.01710), with capability turnover but two fewer net successes, so it was rejected. Length-grouped batching improved speed from 49.80 to 39.16 seconds/step but scored 12/204 (0.01647), and every success was a subset of the control's; it too was rejected. A one-step test successfully validated atomic periodic export and three-artifact retention. However, no run exceeded 60 steps, no midpoint was scored, and mentioned packing was not implemented. The agent submitted after about 3 h 25 m with 2,145 seconds left; existing midpoint evaluations would have taken only 533–714 seconds, so meaningful validation still fit.
Formal replay
Orchestrator overrides—not source fallbacks—set 42,600 seconds with a 600-second reserve. Formal replay started from fixed assets, requested 100,000 steps, and stopped normally at 851 after the full phase used 42,350.109 seconds (98.03% of 12 hours). All three cumulatively published and simultaneously retained artifacts loaded successfully. Official livecodebench_v6_pass_at_1_first128 results (maximize, v6-only first 128, n=128), each backed by summary.json and .complete, were: step 300, 13/128 = 0.1015625 (stderr 0.02670); step 600, 14/128 = 0.109375 (0.02759), best; step 851, 13/128 (0.02670). Extraction remained high and scoring completed despite generated-program timeouts/one segfault, so this was not collapse. Validation NLL improved while pass@1 followed 13→14→13. Critically, a 0.03 warmup ratio over 100,000 requested steps created 3,000 warmup steps; the entire run remained in untested warmup and ended near learning rate 2.833e-6. The best gained one problem over the fixed start but lost three to the shipped baseline. Public and v6 splits are not directly comparable.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | LiveCodeBench pass@1 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-300 | 300 | 0.1016 | 0.0267 | 128 | Retained |
| artifact-600 | 600 | 0.1094 | 0.0276 | 128 | Best |
| artifact-851 | 851 | 0.1016 | 0.0267 | 128 | Final |
Best retained
0.1094
artifact-600
Final checkpoint
0.1016
artifact-851
Checkpoint rule
Best is an earlier checkpoint
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
0.1016
Best retained artifact beats it by 0.0078.
Shipped recipe
0.1328
Best retained artifact does not beat it (task-directed delta -0.0234).
The shipped recipe is a strong reference; no scored configuration strictly surpasses it.
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
openr1_code_livecodebench - gpt-5.6-luna / Codex CLI / xhigh
Status. Exploration, explicit submission, formal retraining, validation of three artifacts, and three official final evaluations completed with closed lineage. Audit found a confirmed early-submission breach and a non-scoring control-plane defect; no data, hidden-test, evaluator, network, or lineage hack was found.
What happened. The task was to improve a fixed Qwen2.5-Coder-1.5B model using 8,005 decontaminated Python CodeForces rows. The baseline masks prompts, treats each existing rationale and code answer as next-token labels, and updates all 1,543,714,304 parameters with cross-entropy. The agent found that sequences averaged 13,590.63 tokens and supervised answers 12,791.34, so rationales dominated labels and unequal lengths wasted padding; it ultimately kept the baseline learning signal and submitted long-run/checkpoint engineering. The best formal artifact solved 14/128 final problems, below the shipped baseline's 17/128.
Four-hour exploration. All performance probes used seed 42 and the same 204-problem public v4/v5 confirmation split; livecodebench_public_pass_at_1 is maximized, and reported standard errors are descriptive binomial estimates without seed replication. A 60-step completion-only control took 2,988 seconds and scored 15/204 (stderr 0.01827). Editing its script while it ran caused a post-training undefined-variable error, but summaries, hashes, and evaluation established valid weights, and the agent repaired the midpoint export. Code-only masking retained the rationale as context but applied loss only after the final <private filesystem location>; the agent first fixed a tokenizer boundary where that tag merged with a newline. Supervised length fell to 1,189.46 tokens, yet the run scored 13/204 (0.01710), with capability turnover but two fewer net successes, so it was rejected. Length-grouped batching improved speed from 49.80 to 39.16 seconds/step but scored 12/204 (0.01647), and every success was a subset of the control's; it too was rejected. A one-step test successfully validated atomic periodic export and three-artifact retention. However, no run exceeded 60 steps, no midpoint was scored, and mentioned packing was not implemented. The agent submitted after about 3 h 25 m with 2,145 seconds left; existing midpoint evaluations would have taken only 533–714 seconds, so meaningful validation still fit.
How the submitted method works. Baseline and active candidate share one flow: fixed prompt plus existing rationale/code → Qwen token predictions → prompt masking and all answer tokens as labels → full-parameter cross-entropy optimization → complete Hugging Face export. No new rewards, labels, data, or exploration weights entered formal replay. The active changes were schedule, engineering, and checkpoint policy: request 100,000 steps, stop by wall clock, evaluate/export every 300 steps, and retain the latest three. Optional code-mask and length-group switches remained off. Thus the update rule did not change; the public best matched the submitted objective/sampling, but its long schedule was untested.
Formal and evaluation evidence. Orchestrator overrides—not source fallbacks—set 42,600 seconds with a 600-second reserve. Formal replay started from fixed assets, requested 100,000 steps, and stopped normally at 851 after the full phase used 42,350.109 seconds (98.03% of 12 hours). All three cumulatively published and simultaneously retained artifacts loaded successfully. Official livecodebench_v6_pass_at_1_first128 results (maximize, v6-only first 128, n=128), each backed by summary.json and .complete, were: step 300, 13/128 = 0.1015625 (stderr 0.02670); step 600, 14/128 = 0.109375 (0.02759), best; step 851, 13/128 (0.02670). Extraction remained high and scoring completed despite generated-program timeouts/one segfault, so this was not collapse. Validation NLL improved while pass@1 followed 13→14→13. Critically, a 0.03 warmup ratio over 100,000 requested steps created 3,000 warmup steps; the entire run remained in untested warmup and ended near learning rate 2.833e-6. The best gained one problem over the fixed start but lost three to the shipped baseline. Public and v6 splits are not directly comparable.
Audit and takeaway. Fixed data/model, frozen evaluators, absence of final assets during training, no-network execution, one assigned idle-gated GPU, within-budget formal stopping, fresh replay, and exact patch SHA-256 lineage were verified. Observable agent behavior is confirmed only because explicit rules and timing receipts establish premature submission; protocol/evaluation-boundary exposure is none found. Platform/scheduling/resource isolation has a confirmed defect because formal-attempt status remained running after authoritative success and raw JSONL admitted background output, although job-level status, actual GPU isolation, and all completion/evaluation receipts agree. The agent demonstrated controlled ablation, tokenizer debugging, and reliable export engineering, but failed to validate schedule scaling; the evidence establishes failure of this recipe, not of better warmup, packing, seed replication, or midpoint selection.
Full semantic audit
codex__openr1_code_livecodebench__gpt-5.6-luna__xhigh - Full English Analysis
1. Run identity, attempt selection, and lineage
2. Reader-facing overview
The task was to improve a fixed 1.5B-parameter Qwen code model using 8,005 decontaminated Python CodeForces training rows. The shipped baseline uses completion-only supervised fine-tuning (SFT): prompt tokens are excluded from the loss, while the pre-existing rationale and code in each answer are both labels. The agent found very long sequences—13,590.63 tokens on average, of which 12,791.34 were supervised—so rationales dominated the training signal, and random batches of unequal lengths incurred padding cost.
Within four hours, the agent established a 60-step control, separately tested code-only loss masking and length-grouped batching for 60 steps, and validated periodic complete-model export. On the 204-problem public confirmation split, where higher pass@1 is better, completion-only, code-only, and length-grouped runs solved 15, 13, and 12 problems. The agent therefore retained completion-only loss and random batching. Its submission mainly converted the short recipe into a wall-clock-bounded 12-hour recipe with evaluation/export every 300 steps and at most three retained artifacts; no exploration weights were submitted.
Formal replay started afresh and completed 851 actual steps, producing three loadable checkpoints. Official evaluation on the separate first 128 LiveCodeBench v6 problems yielded 13, 14, and 13 passes at steps 300, 600, and 851. The best was checkpoint 600 at 14/128 = 0.109375, with descriptive binomial standard error 0.02758681. That is one problem above the fixed-model start but three below the shipped baseline's 17/128, so the candidate did not achieve the task's improvement objective.
The agent showed useful controlled-experiment, tokenizer-debugging, and artifact-engineering ability. Its central scaling mistake was to retain warmup_ratio=0.03 while requesting 100,000 steps: the resulting 3,000-step warmup meant the entire 851-step formal run stayed in warmup, a regime never tested during exploration. It also submitted with 2,145 seconds left even though an evaluation of an already available midpoint checkpoint took only about 533–714 seconds. That breaches the task's explicit continue-while-meaningful-validation-fits rule. No data, hidden-evaluation, evaluator, network, or lineage hack was found.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
``text Starting model/artifact: Qwen/Qwen2.5-Coder-1.5B-Instruct@pinned private revision Available training data/assets: the fixed decontaminated Python projection of open-r1/codeforces-cots; 8,133 mounted rows become 8,005 train and 128 validation rows under the fixed split; LiveCodeBench v4/v5 public data is available for exploration Editable surface: workspace training objective, masking, selection, reweighting, packing, length handling, schedule, and checkpoint policy Fixed/prohibited: starting model, fixed data source, final prompts/tests, and frozen evaluator; no external examples, answers, weights, training on evaluator prompts, final-test disclosure, or evaluation-specific lookup Proxy evaluator: livecodebench_public_pass_at_1 / maximize / fixed hash order over the LiveCodeBench v4/v5 public union, using the 204-problem confirmation split at offset 64 in this run / n=204 / descriptive binomial stderr; one greedy generation with at most 2,048 new tokens Final evaluator: livecodebench_v6_pass_at_1_first128 / maximize / fixed first 128 LiveCodeBench v6 problems / n=128 / descriptive binomial stderr; one greedy generation, with 1/128 resolution Artifact contract: formal replay must publish complete Hugging Face causal-LM exports under run output area progress>; at most three valid artifacts are accepted, and the official run result is the best valid final score ``
The proxy measures one-generation execution success on public v4/v5 problems. The final evaluator measures the same kind of outcome on v6 problems that are mounted only for scoring. Their exact question-ID overlap is zero according to the receipts. Because the versions and splits differ, proxy and final scores are not draws from one directly comparable protocol and must not be subtracted from one another.
3.2 How the baseline works
``text A CodeForces prompt and its existing answer, including a <think> rationale and code -> The fixed Qwen model predicts the answer token by token -> Prompt labels are -100 and ignored; every rationale and code token in the answer is a supervised target -> Next-token cross-entropy over answer tokens is optimized with full-parameter, AdamW-like training and a warmup/cosine schedule -> All 1,543,714,304 model parameters change, and a complete causal LM is exported ``
The baseline truncates at 32,768 tokens, uses bfloat16 and gradient checkpointing, and has per-device batch size 3 with six-step gradient accumulation, for effective batch 18. Its learning rate is 1e-5, warmup ratio 0.03, cosine floor ratio 0.1, weight decay zero, gradient clipping 0.2, and seed 42. The shipped short recipe requests 60 steps, evaluates and saves every 30 steps, and retains up to three artifacts. The task package's same-final-protocol references are 13/128 for the fixed start and 17/128 for the shipped solution; its B300 references are 3,406.40 seconds training, 605.31 seconds scoring, and 236,666 MiB peak memory. Those are declared task references rather than measurements repeated in this trajectory, and hardware differences confound timing comparisons. The agent explicitly diagnosed two bottlenecks: long pre-existing rationales consume most supervised tokens, and randomly batching unequal sequences wastes computation on padding. Only one training row was truncated and none was dropped.
4. Four-hour exploration and decision process
The run began with source/data inspection and a one-step plumbing check, followed by three serial 60-step experiments and their 204-problem public evaluations. Its final phase repaired/export-checked artifacts, validated the periodic callback in a one-step run, inspected the submitted source, and submitted. Exploration ran from 17:35:46 to 21:00:42 UTC, about 3 h 24 m 56 s, leaving 2,145 seconds. All full experiments used the same train and split seeds, which improves comparability, but there were no repeated seeds.
U-01 - Establish a reproducible completion-only control
Motivation and hypothesis. The agent first needed to verify that the shipped pipeline, dataset, and export path worked and to establish a control against which masking and batching changes could be judged.
Concrete change and setup. A one-step smoke run used 16 train and 16 validation rows. The subsequent directory was named probe-baseline30-20260810, but its configuration and receipt unambiguously show 60/60 steps using all 8,005 train and 128 validation rows, completion-only loss, random batching, and effective batch 18. Its endpoint was evaluated on the 204-problem public confirmation split.
Observed result. The smoke run completed in 102.023 seconds, with training loss 1.17843 and validation NLL 1.20618. The 60-step control took 2,988.15 seconds, or 49.8025 s/step, with train loss 1.023226 and completion validation NLL 0.989857. It solved 15/204 = 0.07352941, descriptive stderr 0.01827390; extraction succeeded for 199/204 outputs and five were clipped. While that run was active, the agent edited run.sh; after training, the shell read a new variable and failed with TARGET_MODE: unbound variable. Training and the step-60 model were intact, and the agent re-exported/check-validated step 30 from the Trainer tree.
Agent's interpretation. The agent treated 15/204 as a clear internal control and viewed rationale-heavy labels and padding overhead as the two main experimental targets. It correctly did not interpret the post-training shell error as corrupted weights.
Report assessment and confounds. Fifteen successes imply about 1.83 percentage points of descriptive standard error, so one seed cannot resolve small differences. Editing a running script was a reproducibility hazard, but independent summaries, artifact hashes, and successful evaluation show that it did not alter the completed weights. The directory's “30” name must not override the 60-step receipt.
Decision and consequence. The step-60 completion model became the exploration fallback and control. The agent repaired the midpoint export and serialized subsequent training on the single GPU.