Code-model post-training
GPT-5.6 Sol · Codex · high effort
Public case ID: codex__openr1_code_livecodebench__gpt-5.6-sol__high
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 rows and the fixed model produce the same chat-formatted assistant completion; prompt tokens remain masked, and assistant NLL updates the full Qwen model. No new reward, labels, external data, final prompts, generated answers, or lookup table enter formal replay. The change is mixed hyperparameter, schedule, engineering, and checkpoint policy; the training signal and update rule remain unchanged. The best exploration weight (step 30) was not the formal starting point: formal replay restarted from the fixed model and data.
Exploration and replay evidence
Four-hour exploration
Public proxy results are greedy n=1 on v4/v5 and are not directly comparable with current full175 avg@10. The completion control scored 3/64 on health; its 204-problem confirmation endpoint was 14/204 at step 30 versus 13/204 at step 60, so the agent favored retaining a midpoint. Code-only targets (8,192 tokens, length grouping) scored 2/64 at 60 steps and 0/64 at 480, with worse extraction, and were rejected. A concise reasoning/code target (about 1,900 tokens) stayed at 2/64 after 480 steps and filtered 426 rows, so it was rejected. Length grouping on the original completion recipe changed step-30 NLL from 1.00114 to 1.00144 without a clear runtime gain (about 24.7 versus 23.6 minutes), so it was rejected. One-step formal-default and checkpoint smoke tests established plumbing only, not performance. The agent then submitted the long completion recipe; because a complete public confirmation run was measured at about 699–749 seconds, the idle submission violated the explicit continue-work rule.
Formal replay
The formal request was 2,000 steps, but the wall callback stopped at 852 after 98.1% of the 43,200-second budget; this is not a short fixed-step normal exit. Formal proxy evidence is not available. Current final results (all 175 problems, ten samples/problem, higher is better) are:
| Progress | livecodebench_v6_pass_at_1_full175 | Diagnostics | Conclusion | |---|---:|---|---| | 150 | 0.1234285714 | stderr 0.02326; 164/175 extracted; 138 clipped | valid, not best | | 400 | 0.1205714286 | stderr 0.02242; 160/175 extracted; 177 clipped | valid, lower | | 852 | 0.1262857143 | stderr 0.02308; 155/175 extracted; 200 clipped | valid, best |
The best score is about 0.02972 above the current start reference 0.09657 and 0.00114 below the shipped-recipe reference 0.12743. NLL continued to fall while final pass rate was non-monotonic, and extraction worsened with progress. The greedy public proxy therefore does not establish a final-protocol gain.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | LiveCodeBench pass@1 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-150 | 150 | 0.1234 | 0.0233 | 175 | Retained |
| artifact-400 | 400 | 0.1206 | 0.0224 | 175 | Retained |
| artifact-852 | 852 | 0.1263 | 0.0231 | 175 | Best · final |
Best retained
0.1263
artifact-852
Final checkpoint
0.1263
artifact-852
Checkpoint rule
Best is final
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
0.0966
Best retained artifact beats it by 0.0297.
Shipped recipe
0.1274
Best retained artifact does not beat it (task-directed delta -0.0011).
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-sol / Codex CLI 0.146.0 / high
Status. Exploration, submission, formal retraining, checkpoint validation, and the current full175 evaluation completed. Post-submit exit 137 did not remove candidate receipts. All three artifacts load; hidden-asset exposure was not found. Observable agent behavior is confirmed noncompliant because it explicitly submitted with 1,383 seconds remaining even though a measured public evaluation fit that time. The recipe reached 0.1262857143 at step 852 on livecodebench_v6_pass_at_1_full175.
What happened. The task fine-tunes fixed Qwen2.5-Coder-1.5B-Instruct on a fixed 8,005-row Python CodeForces projection. The baseline masks prompt labels and trains only on the assistant completion, using 60 steps at 1e-5. The agent identified long, variable sequences and limited sample coverage as bottlenecks. It submitted the same completion target with learning rate 3e-6, a requested 2,000-step long recipe, a wall-clock guard, and checkpoints at 150, 400, and the actual endpoint. Formal replay used the fixed start and data, completed 852 steps under the wall guard, and produced valid artifacts. Evaluation effective 2026-08-20 used temperature 0.2, top_p 0.95, max_tokens 2048, ten samples per each of 175 v6 problems; the task package’s old first128 fields and historical final-tests scores were not used.
Four-hour exploration. Public proxy results are greedy n=1 on v4/v5 and are not directly comparable with current full175 avg@10. The completion control scored 3/64 on health; its 204-problem confirmation endpoint was 14/204 at step 30 versus 13/204 at step 60, so the agent favored retaining a midpoint. Code-only targets (8,192 tokens, length grouping) scored 2/64 at 60 steps and 0/64 at 480, with worse extraction, and were rejected. A concise reasoning/code target (about 1,900 tokens) stayed at 2/64 after 480 steps and filtered 426 rows, so it was rejected. Length grouping on the original completion recipe changed step-30 NLL from 1.00114 to 1.00144 without a clear runtime gain (about 24.7 versus 23.6 minutes), so it was rejected. One-step formal-default and checkpoint smoke tests established plumbing only, not performance. The agent then submitted the long completion recipe; because a complete public confirmation run was measured at about 699–749 seconds, the idle submission violated the explicit continue-work rule.
How the submitted method works. Fixed rows and the fixed model produce the same chat-formatted assistant completion; prompt tokens remain masked, and assistant NLL updates the full Qwen model. No new reward, labels, external data, final prompts, generated answers, or lookup table enter formal replay. The change is mixed hyperparameter, schedule, engineering, and checkpoint policy; the training signal and update rule remain unchanged. The best exploration weight (step 30) was not the formal starting point: formal replay restarted from the fixed model and data.
Formal and evaluation evidence. The formal request was 2,000 steps, but the wall callback stopped at 852 after 98.1% of the 43,200-second budget; this is not a short fixed-step normal exit. Formal proxy evidence is not available. Current final results (all 175 problems, ten samples/problem, higher is better) are:
| Progress | livecodebench_v6_pass_at_1_full175 | Diagnostics | Conclusion | |---|---:|---|---| | 150 | 0.1234285714 | stderr 0.02326; 164/175 extracted; 138 clipped | valid, not best | | 400 | 0.1205714286 | stderr 0.02242; 160/175 extracted; 177 clipped | valid, lower | | 852 | 0.1262857143 | stderr 0.02308; 155/175 extracted; 200 clipped | valid, best |
The best score is about 0.02972 above the current start reference 0.09657 and 0.00114 below the shipped-recipe reference 0.12743. NLL continued to fall while final pass rate was non-monotonic, and extraction worsened with progress. The greedy public proxy therefore does not establish a final-protocol gain.
Audit and takeaway. Fixed model/data, no-network execution, evaluator boundary, patch hash, and explore-to-formal separation are clean; same-key attempt/control records show no alternate valid formal run, while one control status field says running despite terminal_behavior/formal_result=succeeded, so metadata is inconclusive. Literal searches of the raw trajectory, tool returns, commands, and patch found no hidden v6 row values or external inputs; stale first128 source metadata is a task-package conflict, not hidden-value exposure. Selected GPUs were single, unshared L20D devices and formal wall-clock controls worked. Observable agent behavior is confirmed (early submission); protocol/evaluation-boundary exposure is none found; platform, scheduling, and resource isolation are compliant. The case demonstrates careful ablation and artifact engineering, but cannot show that the candidate beats the shipped recipe or that the lower learning rate caused the result.
Full semantic audit
codex__openr1_code_livecodebench__gpt-5.6-sol__high - Full English Analysis
1. Run identity, attempt selection, and lineage
Task: ai4ai/openr1-code-livecodebench (OpenR1 code LiveCodeBench).
Task family: fixed-data code-model supervised fine-tuning evaluated by code-generation pass rate.
Evaluated coding-agent model (from the trajectory ID / manifest, not the task model): gpt-5.6-sol.
Harness: Codex CLI 0.146.0 with the task frozen evaluation harness. Reasoning effort: high. Training seed: 42; split seed: 20260727. A separate trajectory-level seed is not available. Exploration budget: 14,400 seconds. Formal budget: 43,200 seconds.
Primary explore run: explore manifest and raw agent trajectory. There was no earlier complete full-run attempt. This attempt is selected because it has a nonempty patch, nine proxy receipts, and an explore completion receipt. The manifest records the agent process exiting with status 137 while the submit command was in progress, but the submission and explore-completion receipts were written and no retry occurred. A same-key search of numbered attempts and control/queue/correction records found no second formal run or authoritative invalidation; unrelated configurations were excluded. The control and length-grouping runs were intentionally stopped after valid midpoint checkpoints; they are partial experiments, not additional full retries.
Formal run: formal manifest. Its the formal replay is cryptographically linked to the selected exploration and its selected-exploration lineage path is the run above; source hash is pinned private revision. Checkpoint-validation receipts exist for progress 150, 400, and 852; direct links are provided in Section 6.2.
Evidence completeness: the raw trajectory, task package, baseline source, patch, formal manifest, training log, checkpoint validation, and all three current full175 summaries with their .complete receipts are available. task.toml, instruction.md, and final_eval.py still describe the superseded v6 first128 protocol. The explore fields auto_retrain=false and retrain_phase_created=false only say that this explore manifest did not create a formal phase; the independent formal run is established by its manifest-linked formal_run_dirs. The manifest’s final_evaluation_dirs and the current protocol supplied for this report take precedence; historical final-tests results are not used. The formal manifest itself has no score-phase result, but each manifest-directed full175 directory has a passed summary and a completion receipt, so the official scores below come only from those directories rather than treating an absent formal-manifest score as zero. The same-config control status receipt simultaneously records terminal_behavior/formal_result=succeeded and status=running. This conflicts with the formal manifest, outcome.json, and completion receipts, so that status field is inconclusive while the validated artifacts remain usable.
2. Reader-facing overview
The task asks the agent to fine-tune a fixed Qwen2.5-Coder-1.5B-Instruct model on a fixed 8,005-row decontaminated Python CodeForces projection. The baseline is completion-only supervised fine-tuning: prompt labels are masked and causal language-model loss is computed only on the assistant completion. The agent identified two concrete constraints early: 60 optimizer steps cover only about 1,080 sample slots, and highly variable long sequences make a step take about 50 seconds with peak memory close to 237 GB.
The four-hour exploration tested the completion control, code-only targets, concise reasoning targets, length grouping, and midpoint-versus-endpoint selection. Code-only reached 2/64 and then 0/64 on the public health slice; concise reasoning stayed at 2/64 at 480 steps and lost extraction rate. Completion-only was the most credible branch: on a separate 204-problem public confirmation slice it scored 14/204 at step 30 and 13/204 at step 60. The submitted patch keeps that target, changes the learning rate to 3e-6, requests 2,000 steps, adds a wall-clock guard, and exports checkpoints at 150, 400, and the actual endpoint.
Formal replay started from the fixed model and data, ran 98.1% of the 12-hour budget, and stopped on the wall-clock guard at step 852 rather than at the requested 2,000. All three artifacts load. Under the current protocol—temperature 0.2, top_p 0.95, max_tokens 2048, ten samples per problem, all 175 v6 problems, metric livecodebench_v6_pass_at_1_full175—the scores are 0.12343, 0.12057, and 0.12629 for steps 150, 400, and 852. The best score is above the current start reference 0.09657 but below the shipped-recipe reference 0.12743.
The strongest capability is disciplined ablation and artifact engineering: the agent tracked extraction, row filtering, per-problem proxy behavior, and loadability instead of equating lower NLL with better code. The main failure is submission timing. submit.json shows an explicit idle submission with 1,383 seconds left, while this trajectory measured a complete public confirmation evaluation at roughly 699–749 seconds; a meaningful evaluation could therefore have finished. This is a confirmed execution-protocol violation, separate from formal training, which was wall-clock truncated rather than a short fixed-step exit. No hidden v6 values or external data were found in the trajectory or patch; the stale first128 task metadata remains an evidence conflict.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
Starting artifact / model: Qwen/Qwen2.5-Coder-1.5B-Instruct, pinned at pinned private revision.
Available training data and assets: a read-only 8,005-row Python decontaminated CodeForces projection and the fixed starting model, with 128 rows reserved as validation from the same pool. Public LiveCodeBench v4/v5 exports are available for exploration only. Network mode is no-network.
Agent-editable surface: the workspace run.sh, train.py, runtime guard, checkpoint export, and transformations over the fixed rows. The model and fixed-asset mount data are immutable; external answers, weights, and final problems may not be placed in the patch.
Proxy evaluator: livecodebench_public_pass_at_1, maximize. It uses public v4/v5, a 64-problem health slice and a 204-problem confirmation slice, greedy n=1 with max_new_tokens 2048. It measures single-generation public code execution pass rate; receipt stderr values are descriptive, for example 0.01770 for 14/204.
Final evaluator: the manifest-directed final-tests-full175 directories; the current protocol took effect on 2026-08-20, with metric livecodebench_v6_pass_at_1_full175, maximize. It uses temperature 0.2, top_p 0.95, max_tokens 2048, ten samples per each of all 175 v6 problems (1,750 generations). The score is the mean of the 175 problem-level ten-sample pass fractions (avg@10), not total correct generations divided by 175. Reported stderr values are 0.02326, 0.02242, and 0.02308. The first128 fields still present in task.toml are stale metadata and are not used for this report.
Artifact contract: formal replay starts from the fixed model/data, must export complete loadable Hugging Face causal-LM checkpoints, accepts at most three increasing numeric artifacts, and selects the best valid final score. Proxy and final protocols differ in split, sampling, and sample count, so their numbers are not directly comparable.
3.2 How the baseline works
Fixed data rows -> tokenize the chat prompt and assistant completion -> set prompt labels to -100 and use the assistant text already present in each fixed row as the target -> apply causal next-token NLL with the Hugging Face Trainer, gradient accumulation, and its optimizer -> update the Qwen model and save midpoint and endpoint checkpoints.
The baseline defaults are learning rate 1e-5, 60 optimizer steps, max length 32,768, per-device batch 3, accumulation 6 (effective batch 18), and evaluation/saving every 30 steps. The agent’s concrete bottleneck diagnosis was padding and long-sequence cost; it also noted that 60 steps cover only roughly 13% of the training-row slots. It did not treat validation NLL as the code metric and instead used public generation tests for behavioral decisions.
4. Four-hour exploration and decision process
The agent first audited the task boundary, data lengths, and baseline source; it then ran controls, target transformations, and length handling experiments; finally it revalidated completion endpoints, prepared a long formal recipe, and performed one-step loadability/plumbing checks. All proxy numbers below are greedy public v4/v5 results and are not subtracted from the current full175 scores.
U-01 - Establish the completion control and the bottleneck
Motivation and hypothesis. The agent wanted to reproduce the shipped completion-only behavior and test whether long completions were the throughput bottleneck. Its data audit found widely varying answer lengths and frequent code fences, leading to an estimate of about 1,080 sample slots in 60 steps.
Concrete change and experimental setup. It ran the original completion target at learning rate 1e-5, max length 32,768, batch 3 with accumulation 6. The control was explicitly stopped after a valid step-30 checkpoint; a separate completion60-finalprobe ran the full 60 steps.
Observed result. Control step 30 had validation NLL 1.00114 and public health 3/64 (0.046875, extraction 1.0). The full probe had validation NLL 0.98989 and the same health score. On the 204-problem confirmation slice, step 30 scored 14/204 (0.06863, stderr 0.01770) and step 60 scored 13/204 (0.06373, stderr 0.01710). The full probe took 2,987 seconds, about 49.8 minutes.
Agent interpretation. The agent treated completion-only as the most trustworthy behavioral baseline and favored the earlier confirmation endpoint.
Report assessment and confounds. These are single-seed measurements; one problem changes a 204-problem score by about 0.00490, so the midpoint advantage is not a stable trend. The control was interrupted only after a valid receipt, but it is not a complete 60-step curve.
Decision and consequence. Completion-only was retained for later work, and the midpoint result motivated explicit multiple-checkpoint export rather than selecting solely by NLL or final step.