Code-model post-training
GPT-5.6 Luna · Codex · none effort
Public case ID: codex__openr1_code_livecodebench__gpt-5.6-luna__none
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
Fixed conversations supply assistant-span labels, prompt labels are -100, and the same full-model Trainer update is applied. The candidate uses 120 steps, constant warmup, LR 1e-5, effective batch 18, 32K context, and saves/evaluates every 60 steps with retention 3. The exploration-only warmup override 0.05 was not submitted; formal orchestration actually used 0.03 and injected MAX_WALL_TIME_SECONDS=42600 over the source default 41400. No exploration checkpoint, reward, synthetic label, external tool, or extra model enters formal replay.
Exploration and replay evidence
Four-hour exploration
Both proxy and final metrics are maximized. The baseline took 3,028 s, reached validation NLL 0.989870, and scored 13/204=0.0637255 on the public v4/v5 confirmation tier (descriptive stderr 0.01710). A worker segmentation fault occurred during that evaluator path, but a valid summary and row output followed. The long probe took 5,842 s and lowered NLL to 0.896426. Its 64-row health scores were 5/64=0.078125 at progress 60 and 4/64=0.0625 at 120; the sample is small and no 204-row rerun was completed. The agent therefore favored 60 for health pass@1 and kept 120 as fallback. A planned masking/length or data-processing variant was never run, so no causal claim about it is possible. Submission occurred with 3,378 s remaining and active_work=false; the measured 3,028-second training and 225–294-second evaluations show that additional meaningful work could have finished, making the timing violation confirmed.
Formal replay
Training used 5,877.950 s (formal phase 6,260.871/43,200 s, 14.49%), ended normally at MAX_STEPS=120, and was not wall-clock stopped. That is a separate confirmed formal-recipe violation under the long-running-budget rule. The formal manifest is retrain/validation-only; current full175 directories provide the official receipts. The current evaluator used v6 only, all 175 problems, ten samples/problem, temperature 0.2, top_p 0.95, and max_tokens 2048. Artifact-60 scored 0.1257143 (220/1,750), stderr 0.0222350, with 141/175 problems extracted and 292 samples clipped; artifact-120 scored the same, stderr 0.0229473, with 146/175 problems extracted and 299 samples clipped. These are 220 passing samples, not 220 problems. No formal public fast_eval receipt was produced, so formal proxy scores are unavailable; the small-tier numbers above belong to exploration. Given anchors are 0.09657 (start) and 0.12743 (shipped recipe); the candidate is above the former and slightly below the latter. Proxy and final protocols are not directly comparable, and the final stderr is descriptive rather than replay uncertainty.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | LiveCodeBench pass@1 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-60 | 60 | 0.1257 | 0.0222 | 175 | Best |
| artifact-120 | 120 | 0.1257 | 0.0229 | 175 | Final |
Best retained
0.1257
artifact-60
Final checkpoint
0.1257
artifact-120
Checkpoint rule
Best is an earlier checkpoint
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
0.0966
Best retained artifact beats it by 0.0291.
Shipped recipe
0.1274
Best retained artifact does not beat it (task-directed delta -0.0017).
The shipped recipe is a strong reference; two of the twenty-eight scored configurations surpass 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 / none
Status. Exploration, explicit submission, formal retraining, validation, and the current full175 final evaluations all have terminal receipts. Formal replay completed 120/120 steps and both artifacts load. Boundary checks found no hidden-value exposure, external data, or sharing of the run's GPU. The observable agent behavior is confirmed noncompliance for early submission and for a short fixed formal endpoint. Both official checkpoints score 0.1257143 on livecodebench_v6_pass_at_1_full175.
What happened. The task fine-tunes fixed Qwen2.5-Coder-1.5B-Instruct on 8,005 decontaminated Python CodeForces rows (128 validation rows). The baseline masks prompt tokens and trains assistant-completion next-token NLL for 60 cosine-scheduled steps. The agent ran that baseline, then one controlled 120-step constant_with_warmup run with the same data, masking, batch geometry, and objective. The substantive patch changes only run.sh schedule, step count, save/evaluation interval, and wall-clock defaults, and removes a generated pyc; it does not change the update rule. Formal replay restarted from the fixed model/data and produced valid progress-60 and progress-120 exports.
Four-hour exploration. Both proxy and final metrics are maximized. The baseline took 3,028 s, reached validation NLL 0.989870, and scored 13/204=0.0637255 on the public v4/v5 confirmation tier (descriptive stderr 0.01710). A worker segmentation fault occurred during that evaluator path, but a valid summary and row output followed. The long probe took 5,842 s and lowered NLL to 0.896426. Its 64-row health scores were 5/64=0.078125 at progress 60 and 4/64=0.0625 at 120; the sample is small and no 204-row rerun was completed. The agent therefore favored 60 for health pass@1 and kept 120 as fallback. A planned masking/length or data-processing variant was never run, so no causal claim about it is possible. Submission occurred with 3,378 s remaining and active_work=false; the measured 3,028-second training and 225–294-second evaluations show that additional meaningful work could have finished, making the timing violation confirmed.
How the submitted method works. Fixed conversations supply assistant-span labels, prompt labels are -100, and the same full-model Trainer update is applied. The candidate uses 120 steps, constant warmup, LR 1e-5, effective batch 18, 32K context, and saves/evaluates every 60 steps with retention 3. The exploration-only warmup override 0.05 was not submitted; formal orchestration actually used 0.03 and injected MAX_WALL_TIME_SECONDS=42600 over the source default 41400. No exploration checkpoint, reward, synthetic label, external tool, or extra model enters formal replay.
Formal and evaluation evidence. Training used 5,877.950 s (formal phase 6,260.871/43,200 s, 14.49%), ended normally at MAX_STEPS=120, and was not wall-clock stopped. That is a separate confirmed formal-recipe violation under the long-running-budget rule. The formal manifest is retrain/validation-only; current full175 directories provide the official receipts. The current evaluator used v6 only, all 175 problems, ten samples/problem, temperature 0.2, top_p 0.95, and max_tokens 2048. Artifact-60 scored 0.1257143 (220/1,750), stderr 0.0222350, with 141/175 problems extracted and 292 samples clipped; artifact-120 scored the same, stderr 0.0229473, with 146/175 problems extracted and 299 samples clipped. These are 220 passing samples, not 220 problems. No formal public fast_eval receipt was produced, so formal proxy scores are unavailable; the small-tier numbers above belong to exploration. Given anchors are 0.09657 (start) and 0.12743 (shipped recipe); the candidate is above the former and slightly below the latter. Proxy and final protocols are not directly comparable, and the final stderr is descriptive rather than replay uncertainty.
Audit and takeaway. Fixed assets, offline execution, one visible GPU, fresh formal start, patch hash, and checkpoint lineage are supported by env, dispatch, queue, and receipts. A literal search of all 175 final IDs and final-test input snippets across the complete trajectory, tool results, patch, and experiment commands found no match; reading accessible evaluator/protocol metadata was not hidden-value leakage. Observable agent behavior is confirmed; protocol/evaluation-boundary exposure is none found; platform, scheduling, and resource isolation are compliant. The case demonstrates controlled schedule experimentation and artifact discipline, but not causal superiority, a full-budget optimum, or a reliable transfer from the small public health tier to hidden v6.
Full semantic audit
codex__openr1_code_livecodebench__gpt-5.6-luna__none - Full English Analysis
1. Run identity, attempt selection, and lineage
2. Reader-facing overview
The task asks the agent to improve a fixed Qwen2.5-Coder-1.5B-Instruct code model using a fixed decontaminated Python CodeForces corpus. The baseline is completion-only supervised fine-tuning: prompt tokens are masked and the next-token negative log-likelihood is computed only on the assistant answer, with 60 optimizer steps and a cosine-with-minimum learning-rate schedule. Long sequences and roughly 50 seconds per optimizer step make full probes expensive.
The agent ran a complete baseline, then held the objective, data split, batch geometry, and masking constant while trying 120 steps with constant_with_warmup, exporting progress 60 and 120. The candidate patch changes only run.sh schedule/step/checkpoint/wall-clock defaults (and removes one generated pyc); it does not change the training signal or update rule. The exploration health tier favored the 60-step checkpoint, while 120 was retained as a fallback.
Formal replay restarted from the fixed model and data, completed 120/120 steps, and produced two loadable models. It used only about 6,260.871 seconds of the 43,200-second formal budget and stopped at the fixed step limit, not at a wall-clock deadline. Under the current protocol, both official checkpoints scored 0.125714 on livecodebench_v6_pass_at_1_full175 (220 passing samples out of 1,750: 175 problems × 10 samples, temperature 0.2, top_p 0.95, max_tokens 2048). This is above the supplied start reference 0.09657 but below the supplied shipped-recipe reference 0.12743; the final descriptive standard errors are about 0.0222–0.0229, so superiority is not established.
The strongest capability is disciplined checkpoint and per-problem evidence handling, including preferring discrete pass@1 over loss when they disagree. The main failures are an explicit early submission with 3,378 seconds still available and a deliberately short fixed formal endpoint that consumed only 14.49% of the formal budget. No hidden final values, external data, or GPU sharing of the run's device were found.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
``text Starting artifact / model: Qwen/Qwen2.5-Coder-1.5B-Instruct, revision 2e1fd397...; formal execution mounts it read-only at fixed-asset mount Available training data and assets: open-r1/codeforces-cots, solutions_py_decontaminated, with 8,005 training and 128 validation rows selected from 8,133 available rows. Exploration also mounts the public LiveCodeBench v4/v5 export; v6 final rows are mounted only for scoring. Agent-editable surface: editable workspace source, including row allocation, masking/objective, batching, schedule, engineering, and checkpoint policy; this candidate changed only run.sh. Fixed or forbidden components: starting weights, fixed training asset, final questions/tests, network, external data/models, and use of exploration checkpoints in formal replay. Proxy evaluator: livecodebench_public_pass_at_1, maximize, v4/v5 public export. The baseline endpoint used the 204-row confirmation tier and one deterministic generation: 13/204=0.0637255, descriptive stderr 0.0171019. The long probe used the disjoint 64-row health tier. Final evaluator: livecodebench_v6_pass_at_1_full175, maximize, all 175 v6 problems, ten samples per problem, temperature 0.2, top_p 0.95, max_tokens 2048, n_samples=1,750, avg@10. Descriptive stderr is 0.0222350 and 0.0229473 for the two artifacts. Artifact contract: numeric run output area> directories; at most the three greatest progress values are accepted, each as a complete loadable Hugging Face causal-LM export. This run published and accepted 60 and 120, with two simultaneously retained artifacts. ``
The task source and old asset lock still say livecodebench_v6_pass_at_1_first128, greedy one-sample scoring, and the first 128 rows. That is the pre-2026-08-20 protocol background only. Scores, comparisons, and conclusions here use only the manifest's current livecodebench_v6_pass_at_1_full175 and its final-tests-full175 receipts; the historical final-tests/ tree is not used.
The proxy measures deterministic pass@1 on public v4/v5 rows (a 64-row health signal and a 204-row confirmation tier). The final measures an average of ten stochastic samples on disjoint hidden v6 rows. Their splits, sample counts, step sizes, and uncertainty definitions differ, so the scores are not directly comparable.
3.2 How the baseline works
One baseline update is:
``text Fixed CodeForces conversation (user prompt plus assistant solution) -> Qwen2.5-Coder-1.5B-Instruct models the full token sequence -> labels retain only the true assistant-span tokens; prompt labels are -100 -> the Hugging Face Trainer backpropagates assistant-token next-token NLL and updates all model weights -> a complete causal-LM checkpoint is exported ``
The trainer uses bf16, gradient checkpointing, per-device batch 3, gradient accumulation 6 (effective batch 18), maximum length 32,768, learning rate 1e-5, zero weight decay, and gradient clipping 0.2. It evaluates and saves every 30 steps with a retention limit of 3; the 60-step run published progress 30 and 60. The agent's concrete diagnosis was that the short run and cosine schedule reach a very low learning rate quickly while each step is slow. It did not establish that masking or length handling itself was the dominant bottleneck.
4. Four-hour exploration and decision process
The agent first mapped the source, assets, and evaluator, then spent about 3,028 seconds on a complete 60-step baseline, about 5,842 seconds on one 120-step long probe, and the remaining time on health evaluation, source/artifact checks, and submission. Retokenization took roughly five minutes and throughput was 48–50 seconds per optimizer step, which limited the number of full retrains.
U-01 - Establishing a reproducible baseline and measurement boundary
Motivation and hypothesis. The agent needed an actual runtime, loss, and discrete public score before deciding whether the opportunity was an objective/data change or a schedule change.
Concrete change and experimental setup. No source change: 60 steps, cosine_with_min_lr, learning rate 1e-5, 32K context, 8,005/128 split, seed 42, split seed 20260727, and effective batch 18.
Observed result. Training completed 60/60 in 3,028.446 seconds (50.474 s/step), with peak memory 193,612,235,264 bytes, train loss 1.02320, and validation completion NLL 0.989870. One training row was truncated and none were dropped for having no supervised tokens; progress 30 and 60 exports were complete. The endpoint scored 13/204=0.0637255 on the public confirmation tier, descriptive stderr 0.0171019, with 197/204 generations extracted and 7 length-clipped. A worker segmentation fault occurred around row 67, but the evaluator later produced a valid summary and per-row output. A reliable separate proxy score for the 30-step checkpoint is not available.
Agent interpretation. The artifact was trustworthy; the public score was explicitly not comparable to the final protocol; the segmentation fault was treated as an evaluator execution risk rather than a training failure.
Report assessment and confounds. This is a one-sample public result on 204 rows, not evidence about hidden v6 performance. The crash complicates execution history, but the completed summary and row-level output support the recorded proxy value.
Decision and consequence. The run became the reference and fallback. The next experiment targeted duration and schedule rather than changing the objective or data.