Language-model preference optimization
GPT-5.6 Terra · Codex · high effort
Public case ID: codex__dpo_preference_alignment__gpt-5.6-terra__high
Recipe shift
What the agent changed
Shipped baseline
Optimize fixed UltraFeedback preference pairs with DPO from the pinned merged policy.
Starting artifact: Merged Zephyr/Mistral-7B policy
Candidate algorithm
For each fixed preference pair, the LoRA policy and the reference obtained by disabling LoRA compute chosen/rejected probabilities; the unchanged sigmoid DPO loss, paged AdamW, and cosine schedule update only LoRA. The candidate changes loss scale, warmup, requested duration, wall-clock handling, and checkpoint policy—not the training signal or update rule. Optional margin filtering was formally disabled, no new rewards or data were generated, exploration weights were excluded, and formal replay restarted from the fixed model.
Exploration and replay evidence
Four-hour exploration
The proxy was strict accuracy on the public 128-row subset of the final 413, with higher better; it is not interchangeable with the final score. First, data diagnosis found 7,387 exact-score ties and 42,482 pairs with margin at least one. In a 4,000-row tokenization sample, 364 chosen and 306 rejected sequences exceeded length 1,024. Two initial type-handling diagnostics failed before correction. The agent judged truncation material but secondary; no length-training ablation followed, so that direction remained unresolved.
Second, with identical data, order, seed 42, 772 steps, and other settings, beta=0.1 scored 63/128 (descriptive SE 0.0442) versus 49/128 (SE 0.0430) for beta=0.01; discordant rows favored 0.1 by 23 to 9. The agent adopted 0.1 as decisive, although both were single-seed short runs. The first 0.1 launcher failed after exporting its endpoint. The agent blamed an interactive wrapper, but the trajectory better supports live editing of the executing script; the fixed evaluator later loaded and scored the adapter, preserving the model result.
Third, filtering to the 42,482 pairs with margin at least one lowered training loss but scored only 59/128; discordant rows favored no filtering 10 to 6. The agent correctly selected by IFEval and rejected filtering, though the small one-seed difference does not prove general harm. Finally, it designed 12,000 steps, 3% warmup, and 3,000-step saving without testing that length or warmup, and did not evaluate an existing step-386 adapter despite 1,587 seconds remaining. This is a research-completeness limitation, not a protocol violation.
Formal replay
The harness overrode the source wall-clock fallback with 42,600 seconds. Formal execution used 41,464/43,200 seconds and stopped cleanly at 10,243/12,000 requested steps. Four cumulative publication calls, followed by three-artifact retention, left valid adapters at 6,000, 9,000, and 10,243 steps. Official ifeval_strict_accuracy_hidden413 results were 204/413 = 0.493947 (SE 0.024602; public diagnostic 67/128), 189/413 = 0.457627 (SE 0.024515; public 66/128), and 189/413 = 0.457627 (SE 0.024515; public 65/128). Thus public-side evidence persisted modestly, but the overall recipe did not beat the shipped baseline, and training after 6,000 degraded by 15 correct rows. One seed and public-hidden gap uncertainty prevent a general overfitting claim.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | IFEval strict accuracy | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-6000 | 6000 | 0.4939 | 0.0246 | 413 | Best |
| artifact-9000 | 9000 | 0.4576 | 0.0245 | 413 | Retained |
| artifact-10243 | 10243 | 0.4576 | 0.0245 | 413 | Final |
Best retained
0.4939
artifact-6000
Final checkpoint
0.4576
artifact-10243
Checkpoint rule
Best is an earlier checkpoint
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
0.3971
Best retained artifact beats it by 0.0969.
Shipped recipe
0.5085
Best retained artifact does not beat it (task-directed delta -0.0145).
The shipped recipe is a strong reference; most agents improve the start but do not 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
codex__dpo_preference_alignment__gpt-5.6-terra__high - gpt-5.6-terra / Codex CLI / high
Status. Exploration and explicit submission completed, followed by one successful formal retrain. All three retained artifacts passed load validation and have official final evaluations, each with both summary.json and .complete; the boundary audit is complete.
What happened. The task uses 61,135 UltraFeedback chosen/rejected response pairs to improve strict IFEval instruction following from a fixed Zephyr/Mistral 7B start. Baseline Direct Preference Optimization (DPO) compares policy and frozen-reference log probabilities and updates only rank-128 LoRA adapters. The agent raised DPO beta from 0.01 to 0.1 and lengthened the schedule; the best formal checkpoint scored 204/413, above the fixed start's 164/413 but below the shipped solution's 210/413.
Four-hour exploration. The proxy was strict accuracy on the public 128-row subset of the final 413, with higher better; it is not interchangeable with the final score. First, data diagnosis found 7,387 exact-score ties and 42,482 pairs with margin at least one. In a 4,000-row tokenization sample, 364 chosen and 306 rejected sequences exceeded length 1,024. Two initial type-handling diagnostics failed before correction. The agent judged truncation material but secondary; no length-training ablation followed, so that direction remained unresolved.
Second, with identical data, order, seed 42, 772 steps, and other settings, beta=0.1 scored 63/128 (descriptive SE 0.0442) versus 49/128 (SE 0.0430) for beta=0.01; discordant rows favored 0.1 by 23 to 9. The agent adopted 0.1 as decisive, although both were single-seed short runs. The first 0.1 launcher failed after exporting its endpoint. The agent blamed an interactive wrapper, but the trajectory better supports live editing of the executing script; the fixed evaluator later loaded and scored the adapter, preserving the model result.
Third, filtering to the 42,482 pairs with margin at least one lowered training loss but scored only 59/128; discordant rows favored no filtering 10 to 6. The agent correctly selected by IFEval and rejected filtering, though the small one-seed difference does not prove general harm. Finally, it designed 12,000 steps, 3% warmup, and 3,000-step saving without testing that length or warmup, and did not evaluate an existing step-386 adapter despite 1,587 seconds remaining. This is a research-completeness limitation, not a protocol violation.
How the submitted method works. For each fixed preference pair, the LoRA policy and the reference obtained by disabling LoRA compute chosen/rejected probabilities; the unchanged sigmoid DPO loss, paged AdamW, and cosine schedule update only LoRA. The candidate changes loss scale, warmup, requested duration, wall-clock handling, and checkpoint policy—not the training signal or update rule. Optional margin filtering was formally disabled, no new rewards or data were generated, exploration weights were excluded, and formal replay restarted from the fixed model.
Formal and evaluation evidence. The harness overrode the source wall-clock fallback with 42,600 seconds. Formal execution used 41,464/43,200 seconds and stopped cleanly at 10,243/12,000 requested steps. Four cumulative publication calls, followed by three-artifact retention, left valid adapters at 6,000, 9,000, and 10,243 steps. Official ifeval_strict_accuracy_hidden413 results were 204/413 = 0.493947 (SE 0.024602; public diagnostic 67/128), 189/413 = 0.457627 (SE 0.024515; public 66/128), and 189/413 = 0.457627 (SE 0.024515; public 65/128). Thus public-side evidence persisted modestly, but the overall recipe did not beat the shipped baseline, and training after 6,000 degraded by 15 correct rows. One seed and public-hidden gap uncertainty prevent a general overfitting claim.
Audit and takeaway. The explore and formal patches have identical hashes and the formal manifest names the unique explore run; numbered/control records show no omitted attempt. Formal training used only the fixed start and read-only UltraFeedback, mounted no IFEval, and received no explore weights. No hidden-row query or reconstruction, lookup logic, external data, extra weights, or training network input was found. One idle, allowed GPU was exposed and wall-clock/concurrency controls held. Observable agent behavior is clean, protocol or evaluation-boundary exposure is none found, and platform/scheduling/resource isolation is compliant. Old row-count prose, a nested proxy-metric mislabel, and stale status fields are task-package record defects resolved by executable source and terminal receipts; none changes scoring. The agent demonstrated controlled proxy comparison and sensible task-metric selection, but the evidence cannot establish superiority to the shipped solution, seed-robust benefit from beta=0.1, or causal effects of truncation and weak margins.
Full semantic audit
codex__dpo_preference_alignment__gpt-5.6-terra__high - Full English Analysis
1. Run identity, attempt selection, and lineage
The explore session ran from 2026-08-10 14:27:34 UTC to 18:01:48 UTC, about 3 hours 34 minutes, and explicitly submitted with 1,587 seconds remaining. auto_retrain=false in the explore manifest means only that this manifest did not itself create a formal phase; upstream control receipts later scheduled the same patch. Inspection of the numbered configuration and control directories found no exploration attempt 2, no queued attempt that failed before manifest creation, and no correction receipt for this configuration.
2. Reader-facing overview
The task asks the agent to improve strict IFEval instruction-following accuracy from a fixed Zephyr/Mistral 7B supervised-fine-tuned start by training on UltraFeedback preferences. The baseline uses Direct Preference Optimization (DPO): it compares the policy's chosen-versus-rejected log-probability advantage relative to a frozen reference and updates only low-rank adapters. Its concrete limitations were a small DPO scale, beta=0.01, and only 772 steps, which present 12,352 preference pairs before one full pass through the 61,135-row pool. The agent also found that about 12% of pairs were exact score ties and roughly 8%–9% of sampled response sequences exceeded the 1,024-token limit.
The agent diagnosed score margins and truncation, ran a controlled beta=0.1 versus beta=0.01 comparison, and tested retaining only preference pairs with a score margin of at least one. On the public 128-row proxy, unfiltered beta=0.1 scored 63/128 versus 49/128 for beta=0.01; filtering regressed to 59/128. The submission therefore kept all data, raised beta to 0.1, requested 12,000 steps with 3% warmup, saved every 3,000 steps, and added a wall-clock stop. The DPO loss form, reference policy, and LoRA update mechanism did not change.
Formal replay completed 10,243/12,000 requested steps under the harness-injected 42,600-second training wall clock. Four cumulative publication calls and a three-artifact retention policy left valid adapters at steps 6,000, 9,000, and 10,243. The best official hidden-413 result was checkpoint 6,000 at 204/413 = 0.493947 with descriptive standard error 0.024602. This beat the fixed start's 164/413 but not the shipped solution's 210/413; both later checkpoints fell to 189/413.
The case demonstrates useful controlled proxy experimentation and a valid formal checkpoint strategy, but it also exposes the key scientific gap: neither the 12,000-step extrapolation nor 3% warmup was tested during exploration, and an already available step-386 adapter was not evaluated. The final curve shows that training after step 6,000 was harmful. The boundary audit found clean observable agent behavior and no hidden-prompt, external-data, or explore-weight use. Several task-package metadata defects exist, but they do not alter row-level scoring.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
``text Starting artifact / model: fixed merged Mistral-7B-v0.1 + zephyr-7b-sft-qlora, revisions 27d67f…+156bec… Available training data and assets: read-only UltraFeedback revision 3949bf…; a 128-row public IFEval proxy during exploration Agent-editable surface: training objective, allowed data subsetting/weighting, reference handling, trainable parameters, batching, truncation, optimizer, schedule, and checkpoint policy under editable workspace Fixed or forbidden components: starting model, UltraFeedback source, frozen evaluator, and 285-row hidden complement; no external rows or weights, hidden-prompt training, or evaluation lookup tables Proxy evaluator: ifeval_strict_accuracy_public128; maximize; the public 128 rows inside the final 413; n=128; descriptive binomial standard error Final evaluator: ifeval_strict_accuracy_hidden413; maximize; sealed 413 rows comprising public 128 plus hidden 285; n=413; descriptive binomial standard error Artifact contract: a complete PEFT adapter or merged Hugging Face causal LM under run output area progress>/; accept at most the three greatest numeric progress values and select the highest final score among them ``
Proxy and final scoring use the same greedy generation, model chat template, 1,280 maximum new tokens per row, fresh per-row metric state, and strict prompt-level accuracy aggregation. The public 128 is a 31.0% subset of the final 413; the other 285 rows are mounted only for final evaluation. Candidate results on the same public rows can therefore be compared row by row, but a 128-row score is not a 413-row score and cannot be treated as an estimate-free final improvement. Final receipts separately report the public subset, hidden complement, and their gap.
The task declaration supplies two single-run references under the same final protocol: 164/413 = 0.397094 for the fixed start and 210/413 = 0.508475 for the shipped solution. Neither has repeated training seeds or paired uncertainty in the declaration. Old prose in assets.lock.yaml and declaration.py says the baseline reads 8,192 preference pairs, but the authoritative executable solution/run.sh, solution/train.py, and task.toml select all 61,135 rows. Since 772 steps at an effective batch of 16 stop before one epoch, the baseline actually presents the first 12,352 pairs in the seeded shuffled order.
3.2 How the baseline works
Quantized Low-Rank Adaptation (QLoRA) loads and freezes the 7B backbone in 4-bit NF4 form while training only attached LoRA matrices. One baseline update is:
``text one chosen/rejected UltraFeedback response pair -> the policy and frozen reference compute log probabilities for both responses -> the chosen response should gain more relative to the reference than the rejected response -> a beta=0.01 sigmoid DPO loss is optimized by paged_adamw_32bit with cosine learning-rate decay -> only rank-128 LoRA adapters change; backbone and reference weights remain fixed ``
The reference is not a second resident model: the trainer disables the current LoRA while computing reference scores, so it exactly represents the fixed starting model. LoRA covers attention q/k/v/o_proj and feed-forward gate/up/down_proj, with alpha 128 and dropout 0.05. The baseline uses maximum length 1,024, microbatch four and four gradient-accumulation steps for effective batch 16, learning rate 5e-6, 10% warmup, training and data seeds 42, and 772 optimizer steps. It saves at steps 386 and 772 and exports an adapter. Trainer preference accuracy is only a diagnostic and is not used for IFEval model selection.
The agent initially stated three possible bottlenecks: the low DPO scale might not separate preferences sufficiently, tied or small-margin comparisons might be noisy, and the 1,024-token limit might truncate useful response content. It prioritized controlled tests of the first two. Length received only a diagnostic measurement, not a training ablation.
4. Four-hour exploration and decision process
The agent spent the opening minutes establishing task boundaries, reading the baseline and scorer, and examining the data schema. It then completed three approximately 52-minute, 772-step training runs and three approximately 12–15-minute full proxy evaluations. While training was running, it implemented optional margin filtering and provenance reporting and prepared a long formal schedule. The final roughly 27 minutes were spent interpreting the last proxy result, checking source, and submitting; no further train-and-evaluate branch could fit, although an existing intermediate adapter remained available for evaluation.
U-01 - Are weak preference pairs or length truncation the primary bottleneck?
Motivation and hypothesis. The agent suspected that tied or low-margin comparisons supplied noisy DPO supervision and that the 1,024-token cap removed substantial response content. It wanted to size these issues before choosing the first controlled intervention.
Concrete change and experimental setup. It performed read-only analysis over all 61,135 UltraFeedback score differences and measured chat-template token lengths for chosen and rejected responses in 4,000 uniformly indexed rows using the fixed tokenizer. Two diagnostic scripts first failed because one treated a message list as a string and another applied literal_eval to data that were already lists. After correcting type handling, it obtained usable statistics. It also added a default-off MIN_SCORE_MARGIN filter plus selected-prompt hashes and margin-range provenance to the candidate source.
Observed result. The full pool contained 7,387 exact ties, about 12.1%; 42,482 pairs had margin at least one and 23,493 had margin at least two. Of the 4,000 sampled rows, 364 chosen sequences and 306 rejected sequences exceeded 1,024 tokens; their approximate 95th percentiles were 1,169 and 1,126. Earlier measurements of prompt-only text and the failed message-type attempts do not describe actual training sequences and were not used for the choice.
Agent interpretation. The agent judged truncation “material but not dominant,” considered higher beta the cleanest same-data first test, and retained margin filtering as a second experiment.
Report assessment and confounds. The full-pool score-margin counts are reliable. The token statistics cover only a 4,000-row uniform-index sample and do not directly link truncation to IFEval errors. Avoiding a simultaneous beta-and-length change made the beta comparison interpretable, but it left the length hypothesis scientifically unresolved.
Decision and consequence. The next branch used all data with beta=0.1; margin filtering was retained for a later branch, and maximum length remained 1,024 in the submission.