Language-model preference optimization
GPT-5.6 Luna · Codex · none effort
Public case ID: codex__dpo_preference_alignment__gpt-5.6-luna__none
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
Baseline and candidate both follow: fixed preferred/rejected pair → adapter-enabled policy and adapter-disabled frozen-reference log probabilities → beta=0.01 sigmoid DPO loss → paged_adamw_32bit updates to LoRA only. Formal replay used all rows, pair batch 16, seeds 42, nominal learning rate 5e-6, 10% warmup, and length 1,536. Thus this was a hyperparameter, schedule, engineering, and checkpoint-policy change, not an algorithm or training-signal change. There was no exploration-best weight: the hash-matched patch was applied to a fresh fixed start.
Exploration and replay evidence
Four-hour exploration
The public proxy is ifeval_strict_accuracy_public128, maximized over 128 fixed rows, but no proxy receipt exists. First, the agent interrupted the unchanged baseline at step 7/772 before export. It interpreted the startup-biased 44.6-second first step as an approximately 11-hour run, although later steps had already stabilized near 4–6 seconds and the task's shipped runtime was 3,352.75 seconds; the baseline was therefore rejected prematurely. Second, dataset inspection found 12.08% tied numeric score pairs. Score weighting was considered but abandoned because the stock collator did not pass those fields to the loss. A strict filter retained 53,748 pairs, yet its 24-step trial was interrupted at step 3 with no artifact or evaluation; an unrun high-score filter remained optional, while formal replay used no filtering. Third, the agent raised context length to 1,536 based on unquantified truncation warnings, with no length ablation. Finally, it changed wall-clock and checkpoint engineering, then ran syntax/compile checks and an eight-second startup check that reached data loading but not training. It exited despite enough time for further interpretable work, choosing the recipe for expected budget use rather than measured performance.
Formal replay
Orchestration overrode the candidate's fallback wall clock with 42,600 seconds; after a 1,200-second reserve, training stopped cleanly at step 9,037 after about 41,405 seconds. It requested one billion steps, so proportional warmup became 100 million steps: the ending learning rate was only about 4.5e-10, and mean loss remained 0.69313, indicating nearly frozen learning. Valid final results on ifeval_strict_accuracy_hidden413 (maximize, 413 rows) were: step 6000, 167/413 = 0.404358 ± 0.024149; step 8000, 168/413 = 0.406780 ± 0.024172; and step 9037, 166/413 = 0.401937 ± 0.024126. These are descriptive binomial standard errors. Step 8000 was best, only four correct rows above the fixed start (164/413) and 42 below the shipped baseline (210/413); no proxy conclusion existed to survive final evaluation.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | IFEval strict accuracy | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-6000 | 6000 | 0.4044 | 0.0241 | 413 | Retained |
| artifact-8000 | 8000 | 0.4068 | 0.0242 | 413 | Best |
| artifact-9037 | 9037 | 0.4019 | 0.0241 | 413 | Final |
Best retained
0.4068
artifact-8000
Final checkpoint
0.4019
artifact-9037
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.0097.
Shipped recipe
0.5085
Best retained artifact does not beat it (task-directed delta -0.1017).
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
- 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
dpo_preference_alignment - gpt-5.6-luna / Codex CLI / none
Status. Exploration ended through host_early_exit_capture after 576 seconds with 13,865 seconds left; the agent never ran the required submission command or a proxy evaluation. Formal retraining completed, all three adapters passed load validation, and all three final summaries have matching .complete receipts. Observable agent behavior is confirmed noncompliance because of the explicit early-exit/submission rules.
What happened. The task asks for better IFEval instruction following from a fixed merged Zephyr/Mistral 7B SFT model using only 61,135 UltraFeedback preference pairs. The baseline compares preferred and rejected response log probabilities against the same model with its low-rank adapter disabled, then applies sigmoid Direct Preference Optimization (DPO) only to rank-128 LoRA weights; it trains 772 steps at length 1,024. The submitted candidate kept this update rule, raised length to 1,536, and replaced the endpoint with a one-billion-step request governed by a wall clock and multi-checkpoint publication.
Four-hour exploration. The public proxy is ifeval_strict_accuracy_public128, maximized over 128 fixed rows, but no proxy receipt exists. First, the agent interrupted the unchanged baseline at step 7/772 before export. It interpreted the startup-biased 44.6-second first step as an approximately 11-hour run, although later steps had already stabilized near 4–6 seconds and the task's shipped runtime was 3,352.75 seconds; the baseline was therefore rejected prematurely. Second, dataset inspection found 12.08% tied numeric score pairs. Score weighting was considered but abandoned because the stock collator did not pass those fields to the loss. A strict filter retained 53,748 pairs, yet its 24-step trial was interrupted at step 3 with no artifact or evaluation; an unrun high-score filter remained optional, while formal replay used no filtering. Third, the agent raised context length to 1,536 based on unquantified truncation warnings, with no length ablation. Finally, it changed wall-clock and checkpoint engineering, then ran syntax/compile checks and an eight-second startup check that reached data loading but not training. It exited despite enough time for further interpretable work, choosing the recipe for expected budget use rather than measured performance.
How the submitted method works. Baseline and candidate both follow: fixed preferred/rejected pair → adapter-enabled policy and adapter-disabled frozen-reference log probabilities → beta=0.01 sigmoid DPO loss → paged_adamw_32bit updates to LoRA only. Formal replay used all rows, pair batch 16, seeds 42, nominal learning rate 5e-6, 10% warmup, and length 1,536. Thus this was a hyperparameter, schedule, engineering, and checkpoint-policy change, not an algorithm or training-signal change. There was no exploration-best weight: the hash-matched patch was applied to a fresh fixed start.
Formal and evaluation evidence. Orchestration overrode the candidate's fallback wall clock with 42,600 seconds; after a 1,200-second reserve, training stopped cleanly at step 9,037 after about 41,405 seconds. It requested one billion steps, so proportional warmup became 100 million steps: the ending learning rate was only about 4.5e-10, and mean loss remained 0.69313, indicating nearly frozen learning. Valid final results on ifeval_strict_accuracy_hidden413 (maximize, 413 rows) were: step 6000, 167/413 = 0.404358 ± 0.024149; step 8000, 168/413 = 0.406780 ± 0.024172; and step 9037, 166/413 = 0.401937 ± 0.024126. These are descriptive binomial standard errors. Step 8000 was best, only four correct rows above the fixed start (164/413) and 42 below the shipped baseline (210/413); no proxy conclusion existed to survive final evaluation.
Audit and takeaway. Fixed data/model mounts, hidden assets, evaluator isolation, patch-only explore-to-formal transfer, and single-GPU gating were intact; no hidden-row reconstruction, external input, or weight contamination was found. Protocol exposure was none found, and platform/scheduling/resource isolation was compliant. Observable behavior was confirmed because instruction.md required continued meaningful exploration and submit.sh as the final action, while receipts record agent_early_exit. The case demonstrates sound artifact-publication engineering, but its central failure is ignoring scheduler dependence on the inflated step horizon; the evidence cannot determine whether score filtering or length 1,536 helps, nor whether the four-row gain over the start replicates.
Full semantic audit
codex__dpo_preference_alignment__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 IFEval instruction following from a fixed merged Zephyr/Mistral 7B SFT model using only the pinned UltraFeedback preferences. The shipped baseline uses Direct Preference Optimization (DPO): it compares the relative log probabilities of a preferred and rejected response against the same frozen start, while training only low-rank adapters. It trains all 61,135 pairs for 772 steps at maximum length 1,024. Under the same final protocol, the task reports 164/413 = 0.397094 for the fixed start and 210/413 = 0.508475 for the shipped solution.
The agent used only about 9.6 minutes of its four-hour window. It found that 12.08% of the dataset's explicit score pairs were tied and started a 24-step strict-score-filtered trial, but interrupted it after step 3. It also raised training length from 1,024 to 1,536 without a controlled test. The captured patch did not change the DPO signal or update rule: it requested one billion steps, relied on a wall-clock callback, saved every 2,000 steps, retained three artifacts, and left score filtering available but disabled by default. Exploration produced no proxy score and no completed candidate weights.
Formal replay successfully reached step 9,037 and produced three loadable adapters. The best final result was checkpoint 8000 at 168/413 = 0.406780, with descriptive binomial standard error 0.024172: four more correct rows than the fixed start, but 42 fewer than the shipped baseline. Checkpoints 6000, 8000, and 9037 scored 0.404358, 0.406780, and 0.401937, respectively, so performance did not improve consistently with progress.
The decisive technical failure was the interaction between the nominal endpoint and the scheduler. A one-billion-step horizon turned the unchanged 10% warmup into 100 million steps. At formal termination, the learning rate was only about 4.5e-10, below 0.01% of the nominal 5e-6, and mean training loss remained 0.69313. Thus the run used the wall-clock budget mechanically but nearly froze learning. Separately, the agent exited with 13,865 seconds left and never ran the required submission command; control receipts classify the run as agent_early_exit. No hidden-row access, external-data use, or explore-to-formal weight transfer was found.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
``text Starting artifact / model: fixed merged Mistral-7B-v0.1 plus zephyr-7b-sft-qlora start Available training data and assets: 61,135 UltraFeedback train_prefs rows and 2,000 test_prefs rows; exploration also mounts the 128-row public IFEval proxy Agent-editable surface: training objective, subset or weighting, sampling, trainable parameters, optimizer, schedule, context length, and checkpoint policy under editable workspace Fixed or forbidden components: read-only start and UltraFeedback mounts; no extra rows or weights, training on hidden prompts, evaluator-specific lookup, or network; formal replay must restart from the fixed policy Proxy evaluator: ifeval_strict_accuracy_public128 / maximize / fixed public split / n=128 / descriptive binomial stderr, not seed or paired uncertainty Final evaluator: ifeval_strict_accuracy_hidden413 / maximize / 413 rows comprising 128 public-proxy and 285 exploration-hidden rows / n=413 / descriptive binomial stderr Artifact contract: a complete PEFT adapter or merged Hugging Face causal LM under run output area progress>; accept at most the three greatest valid progress values and use the best final score ``
Both evaluators apply the model chat template, greedy generation with at most 1,280 new tokens, and the same strict IFEval row scorer. The public 128 rows are a visible subset of the final 413, not an independent sample; formal summaries report the whole final, that visible subset, and the 285-row complement. The proxy and final have different denominators and visibility contracts, so they are not interchangeable measurements. This trajectory has no actual exploration-proxy receipt.
3.2 How the baseline works
Low-rank adaptation (LoRA) trains small incremental matrices beside a frozen backbone. Quantized LoRA (QLoRA) additionally loads the 7B backbone in 4-bit NF4 form to reduce memory. One baseline update is:
``text an UltraFeedback prompt with its preferred and rejected responses -> the current policy scores both responses; disabling LoRA provides the frozen-start reference scores -> the preferred response should gain more relative log probability than the rejected response -> beta=0.01 sigmoid DPO, optimized by paged_adamw_32bit with a cosine learning-rate schedule -> only rank-128 LoRA weights on attention and feed-forward projections change; the 4-bit backbone remains frozen ``
The baseline uses all 61,135 training pairs with model and data seeds 42. A device batch of 4 and gradient accumulation of 4 produce 16 pairs per optimizer step. It requests 772 steps at learning rate 5e-6, warms up for 10% of the requested steps, uses maximum length 1,024, and saves at a 386-step interval. SELECT_BEST=0, so 128 test_prefs rows are loaded only to satisfy the trainer interface and do not select a checkpoint; the fixed endpoint and retained trainer saves are published afterward.
The agent initially identified two possible bottlenecks: preprocessing suggested that long answers were truncated, and the trainer ignored explicit score_chosen and score_rejected fields. It also viewed 772 steps as too short for the formal budget. The first two diagnoses were never validated on IFEval, truncation prevalence was not quantified, and the baseline-speed diagnosis was distorted by the unusually slow first step.
4. Four-hour exploration and decision process
Although the nominal window was four hours, the recorded phase lasted only 576 seconds. The first few minutes covered source inspection, an interrupted baseline, and dataset statistics; an interrupted strict-filter trial followed. The remaining activity edited the long-run/checkpoint recipe, ran syntax checks, and performed an eight-second startup check. No model export, proxy evaluation, replication, or seed test completed before host capture.
U-01 - Could the baseline be reproduced fast enough to support controlled exploration?
Motivation and hypothesis. The agent intended to establish a reproducible baseline proxy score and measure the 772-step recipe before changing data, objective, or context length.
Concrete change and experimental setup. It launched the unmodified defaults: 61,135 pairs, maximum length 1,024, effective pair batch 16, seed 42, and 772 requested steps. An initial attempt to recursively clear the output directory was blocked, after which it used a fresh run root.
Observed result. Preprocessing completed. Step 1 took about 44.6 seconds, while steps 2 through 7 mostly settled near 4–6 seconds. Loss stayed around 0.6927–0.6934, and initial reward margins were near zero. A KeyboardInterrupt stopped the run at step 7/772, before adapter export or proxy evaluation.
Agent interpretation. The agent read the startup-biased display as an approximately 11-hour projection and concluded that reproducing a known reference would consume the budget, so it pivoted to short probes and source-level changes.
Report assessment and confounds. Later evidence contradicts that interpretation. The same log already showed stable 4–6 second steps; the task declares 3,352.75 seconds for the shipped run, and formal replay later averaged about 4.56 seconds per optimizer step. The first-step load cost inflated the early ETA. Seven near-initialization updates establish neither baseline performance nor a bottleneck.
Decision and consequence. The agent abandoned the baseline and thereby lost the same-protocol reference needed to interpret every later candidate.