Code-model post-training
Claude Sonnet 5 · Claude Code · xhigh effort
Public case ID: claude__openr1_code_livecodebench__claude-sonnet-5__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
Fixed conversations are tokenized, user labels are masked, and assistant completion NLL updates every Qwen parameter. The patch’s optional shortener only rearranges the same row and was explicitly disabled in formal replay; therefore the loss, labels, data, and update rule stayed unchanged. Actual formal settings were max_steps 4000, constant warmup for 60 steps, evaluation/save every 30 steps, validation-NLL patience 6, three retained checkpoints, and a framework-injected 42,600-second wall-clock limit. Replay restarted from the fixed model and did not mount explore weights, generations, or caches.
Exploration and replay evidence
Four-hour exploration
The proxy was public v4/v5, greedy one sample on 64-problem health and 204-problem confirmation slices; it is not numerically comparable with final full175.
- Length diagnosis: the fixed start scored 4/64 and 12/204 with extraction 1.000 and 0.9951. The agent interpreted the long reasoning/code mismatch as the main intervention point.
- Think shortening: two 300-step trials shortened only each row’s reasoning and preserved code. They scored 3/64 and 11/204; the confirmation extraction rate fell to 0.8971, and unfinished-row drops changed the training population. The agent rejected shortening as the formal default.
- Long-run schedule: smoke and an artificial early-stop trigger validated constant warmup, patience-based stopping, best-checkpoint loading, and wall-clock protection. These tests established plumbing, not a pass@1 gain, so the schedule was adopted as an engineering choice.
- Reproducibility and submission: a tuple-seed TypeError, an unusable one-step loss, an output-lock failure from bypassing the entry point, and a Path-type helper error were repaired or excluded. The patch applied cleanly and checkpoints loaded, but the explicit early submit was still a confirmed protocol violation.
Formal replay
The current protocol (effective 2026-08-20) samples each of 175 v6 problems ten times at temperature 0.2, top_p 0.95, and max_tokens 2048. Checkpoint 780 scored 0.113714 (199/1,750; stderr 0.021661), with extraction 0.805714 and 291 clips, and is best. Checkpoints 810 and 822 each scored 0.113143 (198/1,750; stderr 0.021457 and 0.021624), with extraction 0.857143 and 290 clips. Training stopped on wall clock rather than a short fixed endpoint; early stopping was false. A final internal load emitted a missing lm_head.weight warning, but all three independent validation receipts were valid. Each official result has a current summary and matching .complete. Legacy first128 records are excluded. The final run retained shortening disabled; it provides no evidence of a scheduling benefit.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | LiveCodeBench pass@1 | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-780 | 780 | 0.1137 | 0.0217 | 175 | Best |
| artifact-810 | 810 | 0.1131 | 0.0215 | 175 | Retained |
| artifact-822 | 822 | 0.1131 | 0.0216 | 175 | Final |
Best retained
0.1137
artifact-780
Final checkpoint
0.1131
artifact-822
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.0171.
Shipped recipe
0.1274
Best retained artifact does not beat it (task-directed delta -0.0137).
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
- Clean
- 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
claude__openr1_code_livecodebench__claude-sonnet-5__xhigh - claude-sonnet-5 / Claude Code harness / xhigh
Status. Exploration, submission, formal retraining, checkpoint loading validation, and the current final evaluation all completed. Formal training reached 822 of a 4,000-step safety ceiling and stopped on wall clock after 98.12% of the 43,200-second budget; all three artifacts were valid. Boundary checks were clean except for submission timing: the agent explicitly submitted with 7,249 seconds left although measured runs showed meaningful experiments could finish, so the observable-agent-behavior classification is confirmed.
What happened. The task fine-tunes a fixed Qwen2.5-Coder-1.5B-Instruct on a fixed decontaminated Python CodeForces projection. Baseline completion-only masked SFT labels only assistant tokens, optimizes all parameters with next-token cross-entropy, and emits complete checkpoints. The agent diagnosed long think traces versus the 2,048-token generation cap, tried row-local think shortening, rejected it after 11/204 versus 12/204 for the fixed start and lower extraction, then submitted unchanged data and objective with constant warmup, validation-NLL early stopping, wall-clock protection, and retention of three checkpoints. Under livecodebench_v6_pass_at_1_full175 (avg@10), the best score was 0.113714, above the supplied start reference 0.09657 but below the shipped recipe 0.12743.
Four-hour exploration. The proxy was public v4/v5, greedy one sample on 64-problem health and 204-problem confirmation slices; it is not numerically comparable with final full175.
- Length diagnosis: the fixed start scored 4/64 and 12/204 with extraction 1.000 and 0.9951. The agent interpreted the long reasoning/code mismatch as the main intervention point.
- Think shortening: two 300-step trials shortened only each row’s reasoning and preserved code. They scored 3/64 and 11/204; the confirmation extraction rate fell to 0.8971, and unfinished-row drops changed the training population. The agent rejected shortening as the formal default.
- Long-run schedule: smoke and an artificial early-stop trigger validated constant warmup, patience-based stopping, best-checkpoint loading, and wall-clock protection. These tests established plumbing, not a pass@1 gain, so the schedule was adopted as an engineering choice.
- Reproducibility and submission: a tuple-seed TypeError, an unusable one-step loss, an output-lock failure from bypassing the entry point, and a Path-type helper error were repaired or excluded. The patch applied cleanly and checkpoints loaded, but the explicit early submit was still a confirmed protocol violation.
How the submitted method works. Fixed conversations are tokenized, user labels are masked, and assistant completion NLL updates every Qwen parameter. The patch’s optional shortener only rearranges the same row and was explicitly disabled in formal replay; therefore the loss, labels, data, and update rule stayed unchanged. Actual formal settings were max_steps 4000, constant warmup for 60 steps, evaluation/save every 30 steps, validation-NLL patience 6, three retained checkpoints, and a framework-injected 42,600-second wall-clock limit. Replay restarted from the fixed model and did not mount explore weights, generations, or caches.
Formal and evaluation evidence. The current protocol (effective 2026-08-20) samples each of 175 v6 problems ten times at temperature 0.2, top_p 0.95, and max_tokens 2048. Checkpoint 780 scored 0.113714 (199/1,750; stderr 0.021661), with extraction 0.805714 and 291 clips, and is best. Checkpoints 810 and 822 each scored 0.113143 (198/1,750; stderr 0.021457 and 0.021624), with extraction 0.857143 and 290 clips. Training stopped on wall clock rather than a short fixed endpoint; early stopping was false. A final internal load emitted a missing lm_head.weight warning, but all three independent validation receipts were valid. Each official result has a current summary and matching .complete. Legacy first128 records are excluded. The final run retained shortening disabled; it provides no evidence of a scheduling benefit.
Audit and takeaway. Fixed data, starting weights, evaluator boundary, offline inputs, explore-to-formal isolation, one-GPU resource use, patch hash, and receipts are clean. Same-configuration exploration attempt 1 has only a resource-gate receipt and no run or artifact. Literal cross-search of evaluator-only hidden identifiers against the complete trajectory and patch found no full-value match; no reconstruction or use is evidenced, and none affected the candidate or result, so protocol exposure is none found. Platform, scheduling, and resource isolation are compliant, and formal budget underuse is not a violation. This demonstrates diagnosis-to-artifact engineering, but premature submission left alternate objectives, reweighting, and a long-run control untested; it cannot establish superiority to the shipped recipe.
Full semantic audit
claude__openr1_code_livecodebench__claude-sonnet-5__xhigh - claude-sonnet-5 / Claude Code harness / xhigh - Full English Analysis
1. Run identity, attempt selection, and lineage
Task: OpenR1 code SFT, improving code generation from a fixed Qwen2.5-Coder-1.5B-Instruct starting model.
Task type: supervised code fine-tuning and LiveCodeBench evaluation with a fixed starting model.
Evaluated coding-agent model (from the trajectory ID and manifest, not the task's trainable model): claude-sonnet-5.
Execution harness: Claude Code harness, version 2.1.220.
Reasoning effort: xhigh.
Random seeds, where applicable: training seed 42 and split seed 20260727. Explore proxy evaluations were greedy one-sample runs; the official final receipts record sampling seed 0.
Explore budget: 14,400 seconds. The only explore run used about 7,159 seconds and explicitly submitted with 7,249 seconds remaining.
Formal retraining budget: 43,200 seconds. The formal receipt records 42,388.183 seconds for the retraining phase, or 0.9812079352 utilization.
Primary explore run: exploration attempt 2 explore run.
Why this run was selected: the job manifest has an empty prior_attempt_dirs list. This directory contains the only complete explore trajectory, submit receipt, and candidate patch for this configuration; there is no earlier complete rerun to choose.
Earlier complete reruns and outcome: none. The same-configuration exploration attempt 1 directory contains only an operator/idle-gate.json resource-gate record; it produced no explore manifest, trajectory, or model artifact, so it is not a research run and does not enter comparison; resource-gate receipt.
Patch hash and verification: both copies are 42,162 bytes with SHA-256 verified private digest and compare byte-for-byte. The formal log says the binary __pycache__/train.cpython-312.pyc was skipped while run.sh and train.py applied cleanly.
Formal retraining run: formal replay 1 manifest, successful with runner exit status 0.
selected-exploration lineage: exploration attempt 2. The formal dispatch records the full source directory, source_patch_copied=true, and the same patch hash; source_commit/source_hash is pinned private revision and source_sha256 is verified private digest. Its source-commit waiver is limited to an orchestrator hotfix and states that the task tree was unchanged.
Checkpoint validation receipts: checkpoints 780, 810, and 822 all have valid load checks and terminal receipts: 780 validation.json / 780 .complete; 810 validation.json / 810 .complete; 822 validation.json / 822 .complete.
Final evaluation receipts: this report uses only the manifest-directed final-tests-full175 directory. Each official result has both a current artifact summary and .complete receipt: artifact-780 summary / artifact-780 .complete; artifact-810 summary / artifact-810 .complete; artifact-822 summary / artifact-822 .complete.
Evidence completeness: the explore trajectory, submit, formal retraining, checkpoint validation, and current final evaluation all have direct evidence. There are no prior attempts or manifest-listed unlinked formal runs.
Missing or conflicting evidence: the static instruction.md, declaration.py, and visible legacy final_eval.py still describe the superseded greedy v6 first128 protocol. The job manifest final_metric_protocol, current final-tests-full175 summaries, and this evaluation instruction consistently specify livecodebench_v6_pass_at_1_full175. The old protocol is background only; no old final-tests score, comparison, or conclusion is used here. Some duplicated formal-manifest fields are null, but dispatch, outcome.json, retrain-result.json, and the training summary supply the same lineage and outcome without a material conflict.
2. Reader-facing overview
The task asks the agent to improve code generation from a fixed Qwen2.5-Coder-1.5B-Instruct model using a fixed decontaminated Python CodeForces projection. The baseline masks the user portion of each conversation and trains all model weights with completion-only supervised cross-entropy; long think traces are retained even though generation is capped at 2,048 new tokens.
The agent first measured the length mismatch, then implemented an optional row-local transformation that shortened only think text while preserving the row's code. Two 300-step trials on the public confirmation slice regressed: the shortened model scored 11/204 versus 12/204 for the fixed start, and extraction fell from 0.9951 to 0.8971. The transformation remained in the patch but was disabled for formal training. The submitted default instead changes the long-run arrangement: a 4,000-step safety ceiling, 60-step fixed warmup, constant-with-warmup scheduling, validation-NLL early stopping, wall-clock protection, and three retained checkpoints.
Formal retraining restarted from the fixed start, completed 822 steps, and stopped on the wall-clock callback after using 98.12% of the formal budget. Checkpoints 780, 810, and 822 all loaded successfully. Under the current full175 protocol—temperature 0.2, top_p 0.95, max_tokens 2,048, ten samples per problem over all 175 v6 problems—the best official result is checkpoint 780 at 0.113714 (199/1,750, descriptive across-problem standard error 0.021661). This is above the supplied starting-model reference 0.09657 but below the shipped-recipe reference 0.12743; checkpoints 810 and 822 both score 0.113143.
The strongest capability is turning a length hypothesis into measurable diagnostics and carrying a patch through replay, export, validation, and current evaluation. The main failure is procedural: the agent explicitly submitted with 7,249 seconds left while measured 300-step training and 204-problem evaluation runs were demonstrably finishable. There is no evidence of hidden-question or external-weight use, but the evidence does not establish an improvement over the shipped recipe.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
| Item | Evidence and constraint | |---|---| | Starting model or artifact | Read-only Qwen2.5-Coder-1.5B-Instruct; formal environment injects TRAINING_START=fixed-asset mount | | Training data and assets | Fixed decontaminated Python CodeForces projection with 8,133 available rows; split seed 20260727 gives 8,005 training and 128 validation rows. Explore additionally mounts public LiveCodeBench v4/v5; formal training does not mount evaluation rows. | | What the agent may modify | Workspace row selection/transforms, masking, target construction, batching, length handling, scheduling, stopping, and checkpoint export. | | Fixed or forbidden | Starting weights and fixed training projection; no external examples, solutions, weights, evaluation prompts, final tests, or lookup table; network disabled. | | Proxy evaluator | livecodebench_public_pass_at_1, maximize; public v4/v5 health slice of 64 problems at offset 0 and disjoint confirmation slice of 204 at offset 64; greedy one sample, max 2,048 new tokens; descriptive binomial standard error. | | Final evaluator | livecodebench_v6_pass_at_1_full175 (effective 2026-08-20), maximize; all 175 v6 problems, ten samples each (1,750 samples), temperature 0.2, top_p 0.95, max_tokens 2,048, reps=2; stderr is descriptive across problems rather than seed/replay uncertainty. | | Artifact contract | A complete Hugging Face causal language model loadable by AutoModelForCausalLM; up to the three highest numeric valid checkpoints are accepted. |
The proxy and final evaluators are different distributions and protocols: the proxy is public v4/v5 greedy n=1, while the final is hidden v6 full175 with ten stochastic samples. Proxy numbers therefore support only within-protocol direction checks and cannot be subtracted from final scores. The legacy first128/greedy definition visible in static source is superseded and is not used for the current result.
3.2 How the baseline works
A baseline training example flows from a fixed CodeForces conversation containing a user problem and assistant think-plus-code response, through the tokenizer's chat template. At the assistant boundary, labels for system and user tokens are set to -100, so only assistant completion tokens contribute to next-token cross-entropy. AdamW and the Hugging Face Trainer backpropagate that loss through all Qwen parameters, and complete numeric checkpoints are saved.
The baseline uses bf16, SDPA, gradient checkpointing, learning rate 1e-5, per-device batch size 3 with accumulation 6 (effective batch 18), maximum length 32,768, cosine-with-minimum-learning-rate scheduling, evaluation and save every 30 steps, and retention of three checkpoints. Its source default is only 60 steps. The agent's concrete bottleneck diagnosis was that many assistant replies place code after a very long think section, so a 2,048-token generation may end before code fences. The formal summary's mean sequence length is 13,590.6 tokens, supporting this as a real risk but not proving it is the only cause of errors.
4. Four-hour exploration and decision process
The first roughly 15 minutes covered task, baseline, data, evaluator, and resource inspection. About 20 minutes went to implementing and repairing the length transform, small training runs, fixed-start measurements, and two 300-step trials. The final roughly 25 minutes added long-run scheduling, early stopping, wall-clock protection, and checkpoint smoke/load tests. Long training and 204-problem evaluations accounted for most elapsed time. Some polling calls exceeded the tool's 120-second interaction limit, but background jobs later wrote complete outputs; those were not evaluation failures.
U-01 - Does long reasoning create a code-extraction bottleneck?
Motivation and hypothesis. Training targets retain long think traces, while both proxy and final generation stop at 2,048 tokens. The hypothesis was that learning “think at length, then emit code” reduces the chance of reaching an extractable code fence.
Change and setup. Without changing the objective, the agent inspected the three training parquet shards, chat template, extraction rule, and public evaluator, measured response/thinking/code lengths, and ran the fixed start on a 64-problem health slice and a 204-problem confirmation slice.
Observed result. The fixed start scored 4/64 = 0.0625 on health, with stderr 0.030258 and extraction 1.0; it scored 12/204 = 0.058824 on confirmation, with stderr 0.016474, extraction 0.995098, and 548.65 seconds runtime. The formal summary reports mean sequence length 13,590.6 tokens.
Agent interpretation. The agent treated the training-target versus generation-budget mismatch as the most directly intervenable risk and proposed compressing each row's reasoning while retaining its code.
Report assessment and confounds. These small public slices provide a diagnostic, not a causal claim. Their standard errors are descriptive, not paired or seed uncertainty.
Decision and impact. The hypothesis was carried into the next unit without changing the fixed start, training data, or evaluator.