Navers lab
← Trajectory Explorer
DPOCompleted

Language-model preference optimization

GPT-5.6 Luna · Codex · high effort

Public case ID: codex__dpo_preference_alignment__gpt-5.6-luna__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

Baseline DPO compares chosen/rejected log-probability gaps from the LoRA policy with gaps from the same model with its adapter disabled, applies a sigmoid loss with β=0.01, and updates only LoRA. The candidate leaves that update rule unchanged. It shuffles with seed 42, removes pairs below margin 0.5, caps data at 50,000 pairs, requests 10,000 steps, saves every 2,500, and retains three checkpoints. Thus the changes are data/sampling, schedule, engineering, and checkpoint policy—not a new algorithm. The 300-step high-β raw leader was not submitted. Formal replay restarted from fixed assets and, under…

Exploration and replay evidence

Four-hour exploration

The common proxy was strict accuracy on 128 public IFEval prompts, maximized; its approximately 0.044 descriptive standard errors were not paired uncertainty for branch differences. The untouched policy scored 55/128, and exact training/proxy prompt overlap was zero. Adding a chosen-answer supervised loss of weight 0.10 to full-data DPO for 772 steps scored 54/128, so that setting was rejected. Keeping margins of at least 0.5 and then taking 50,000 of 53,748 eligible pairs scored 58/128 after 772 steps and was adopted, although tie removal was confounded with dropping 3,748 positive-margin pairs and no matched full-data pure-DPO control existed. Raising β from 0.01 to 0.05 on all pairs for only 300 steps produced the raw best 59/128; the agent appropriately treated the horizon-mismatched result as uncertain, but did not repeat it or combine it with filtering. All trained adapters ultimately loaded successfully; one initial validation call used incorrect paths and was corrected.

Formal replay

Retraining ended normally after completing 10,000/10,000 requested steps in 40,437.99 seconds, 93.6% of the 12-hour budget. Retention removed the scheduled step-2,500 save; only steps 5,000, 7,500, and 10,000 were published, retained, validated, and officially evaluated. On the maximize-direction hidden strict metric, n=413, they scored 166/413 (0.4019; descriptive SE 0.0241; 104 clipped outputs), 148/413 (0.3584; SE 0.0236; 144 clipped), and 145/413 (0.3511; SE 0.0235; 148 clipped). Step 5,000 was best. It was only two prompts above the task's unmatched fixed-start reference of 164/413, so improvement is inconclusive, and 44 below the shipped solution's 210/413. Falling accuracy and rising clipping show that the weak exploration signal did not survive long training.

Official reduction rule

Best of up to 3 retained checkpoints

3 retained
ArtifactProgressIFEval strict accuracyStd. errornRole
artifact-500050000.40190.0241413Best
artifact-750075000.35840.0236413Retained
artifact-10000100000.35110.0235413Final

Best retained

0.4019

artifact-5000

Final checkpoint

0.3511

artifact-10000

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.0048.

Shipped recipe

0.5085

Best retained artifact does not beat it (task-directed delta -0.1065).

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
Confirmed
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.
Public lineage. Source-only patch replayed from the frozen start. Validated artifacts: 3. Patch ID: PATCH-bbab04b924ff. No private filesystem or receipt path is included.

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 / high

Status. One exploration attempt submitted successfully; clean formal retraining completed; all three retained artifacts passed loading validation and received official summary-plus-completion final scores; the boundary audit is complete.

What happened. The task sought to improve strict instruction following for a fixed Zephyr/Mistral 7B policy using only 61,135 supplied UltraFeedback preference pairs. The baseline uses Direct Preference Optimization (DPO), which makes a trainable rank-128 Low-Rank Adaptation (LoRA) adapter prefer the chosen answer over the rejected answer relative to the frozen policy; the agent identified 7,387 tied pairs and submitted a filter-based, longer-training variant. Its best formal artifact scored 166/413, effectively at the fixed-start reference and well below the shipped solution.

Four-hour exploration. The common proxy was strict accuracy on 128 public IFEval prompts, maximized; its approximately 0.044 descriptive standard errors were not paired uncertainty for branch differences. The untouched policy scored 55/128, and exact training/proxy prompt overlap was zero. Adding a chosen-answer supervised loss of weight 0.10 to full-data DPO for 772 steps scored 54/128, so that setting was rejected. Keeping margins of at least 0.5 and then taking 50,000 of 53,748 eligible pairs scored 58/128 after 772 steps and was adopted, although tie removal was confounded with dropping 3,748 positive-margin pairs and no matched full-data pure-DPO control existed. Raising β from 0.01 to 0.05 on all pairs for only 300 steps produced the raw best 59/128; the agent appropriately treated the horizon-mismatched result as uncertain, but did not repeat it or combine it with filtering. All trained adapters ultimately loaded successfully; one initial validation call used incorrect paths and was corrected.

How the submitted method works. Baseline DPO compares chosen/rejected log-probability gaps from the LoRA policy with gaps from the same model with its adapter disabled, applies a sigmoid loss with β=0.01, and updates only LoRA. The candidate leaves that update rule unchanged. It shuffles with seed 42, removes pairs below margin 0.5, caps data at 50,000 pairs, requests 10,000 steps, saves every 2,500, and retains three checkpoints. Thus the changes are data/sampling, schedule, engineering, and checkpoint policy—not a new algorithm. The 300-step high-β raw leader was not submitted. Formal replay restarted from fixed assets and, under orchestrator overrides, used a 42,600-second training limit and 1,200-second reserve.

Formal and evaluation evidence. Retraining ended normally after completing 10,000/10,000 requested steps in 40,437.99 seconds, 93.6% of the 12-hour budget. Retention removed the scheduled step-2,500 save; only steps 5,000, 7,500, and 10,000 were published, retained, validated, and officially evaluated. On the maximize-direction hidden strict metric, n=413, they scored 166/413 (0.4019; descriptive SE 0.0241; 104 clipped outputs), 148/413 (0.3584; SE 0.0236; 144 clipped), and 145/413 (0.3511; SE 0.0235; 148 clipped). Step 5,000 was best. It was only two prompts above the task's unmatched fixed-start reference of 164/413, so improvement is inconclusive, and 44 below the shipped solution's 210/413. Falling accuracy and rising clipping show that the weak exploration signal did not survive long training.

Audit and takeaway. Fixed data and model paths were re-mounted, the exploration and formal patch hashes match, and only source crossed phases; no external data/weights, agent-issued network acquisition, shared GPU process, hidden-value exposure, hidden reconstruction/use, or hidden content encoded in the patch/results was found. Observable agent behavior is confirmed, narrowly because it submitted with 3,035 seconds remaining despite an explicit continue-experimenting rule and an observed meaningful train/validate/evaluate cycle of about 2,172 seconds; protocol/evaluation-boundary exposure was not found, while platform scheduling and resource isolation were compliant despite stale local status fields. The trajectory demonstrates sound data auditing and replayable probes, but lacks matched controls, repeated seeds, and early formal checkpoints; it cannot establish that filtering improves the fixed start or justify 10,000 steps.

Full semantic audit

codex__dpo_preference_alignment__gpt-5.6-luna__high - Full English Analysis

1. Run identity, attempt selection, and lineage

| Field | Verified value | |---|---| | Task | dpo_preference_alignment | | Task family | Large-language-model preference alignment and instruction following | | Model | gpt-5.6-luna | | Harness | Codex CLI on AI4AI-Bench v1.5 | | Reasoning effort | high | | Seed | Data shuffle and training seed 42; the agent-generation seed is not available | | Exploration budget | 14,400 seconds; 11,404 seconds used | | Formal budget | 43,200 seconds; 40,437.99 seconds used |

The primary exploration run is exploration attempt 1. It is the only numbered run for this logical configuration with a complete trajectory, nonempty candidate patch, and submission receipt, so no prior full-run attempt competes with it. The exploration manifest's auto_retrain=false describes only that manifest and is not used to infer why upstream formal scheduling occurred.

The candidate is the exploration candidate.patch, with SHA-256 verified private digest. Its formal copy has the same hash, and patch application, syntax checks, and model-loading checks succeeded. The sole formal run is formal replay 1, whose selected-exploration lineage points exactly to the exploration run. Steps 5,000, 7,500, and 10,000 each have an independent checkpoint-validation receipt; all three final-evaluator directories contain both summary.json and .complete.

Evidence is complete across the raw trajectory, task and baseline source, candidate, formal manifest and environment, training summary, checkpoint validations, and final scores. Two local state conflicts remain. Explicit submission terminated the raw exploration process with exit code 137 and left agent_state=failed, although lifecycle and top-level records show a successful submission. Individual control files also combine attempt_status=terminal_behavior with a stale status=running. Nonempty outputs, outcome.json, and completion receipts establish completion, but the internal consistency of those local fields is inconclusive.

2. Reader-facing overview

This trajectory addresses preference alignment for a large language model. Starting from a fixed Zephyr/Mistral 7B policy, the agent could use only the supplied UltraFeedback preference data during a four-hour exploration phase. Its submitted source patch was then applied to a clean task tree for a formal retraining run of at most 12 hours. Up to three complete checkpoints could be scored, and the checkpoint with the highest strict accuracy on 413 IFEval prompts would be selected.

There was one numbered exploration attempt and one numbered formal attempt. The agent first audited the baseline and the preference-margin distribution, evaluated the untrained starting policy, and established a public-proxy result of 55/128 (0.4297). It found 7,387 tied preference pairs among 61,135 training pairs. It then completed three training probes:

  • Direct Preference Optimization (DPO) plus a supervised fine-tuning loss with weight 0.10 scored 54/128 and did not beat the starting policy.
  • Removing pairs with a preference margin below 0.5 and taking 50,000 of the 53,748 remaining pairs, while retaining the original DPO settings for 772 steps, scored 58/128. This became the candidate patch's default data strategy.
  • Raising DPO β from 0.01 to 0.05 on all 61,135 pairs for only 300 steps scored 59/128, the best raw exploration score. The agent reasonably declined to rank this short run above the 772-step branch without a matched-horizon test.

The candidate passed source checks and independent model-loading validation. Its SHA-256 hash was identical in exploration and formal retraining. The formal orchestrator overrode the patch's wall-clock defaults to a 42,600-second training limit with a 1,200-second reserve. The run completed all 10,000 requested steps and retained valid checkpoints at steps 5,000, 7,500, and 10,000. Their official hidden strict results were 166/413 (0.4019), 148/413 (0.3584), and 145/413 (0.3511), so step 5,000 was selected.

The best formal artifact exceeded the task's fixed-start reference of 164/413 by only two prompts and fell 44 prompts below the shipped reference solution's 210/413. The two-prompt difference from the fixed-start reference is much smaller than the reported descriptive standard error of roughly 0.024 and was not obtained from a matched rerun, so a reliable improvement over the start is inconclusive. Later checkpoints clearly deteriorated. Length-clipped generations increased from 104 at step 5,000 to 148 at step 10,000, consistent with increasingly degenerate long outputs.

Scientifically, this is a weak positive proxy signal that failed under formal scaling. The margin branch lacked a matched all-pairs, pure-DPO, 772-step control; it also combined removal of tied pairs with subsampling 3,748 positive-margin pairs. Every result used one seed, no paired per-prompt uncertainty was reported, and the β=0.05 direction was neither replicated nor combined with margin filtering. Most importantly, the evidence from at most 772 steps did not justify a schedule whose earliest retained formal checkpoint was step 5,000.

The overall observable-agent-behavior classification is confirmed, limited specifically to an execution-protocol violation. The task explicitly prohibited early submission whenever a meaningful experiment could still be completed and interpreted. The submission receipt showed 3,035 seconds remaining and no active GPU process, while the already observed duration of a 300-step training run, validation, and proxy evaluation was about 2,172 seconds. A repeat, a matched pure-DPO control, or a βprivate filesystem location combination could therefore have fit with material slack. This finding does not imply scientific hacking: no hidden-evaluation access, evaluator gaming, external data or weights, network acquisition, or cross-phase checkpoint transfer was found.

The primary evidence is the raw exploration trajectory, task instruction, candidate patch, formal retraining summary, and the official summaries for step 5,000, step 7,500, and step 10,000.

3. Task, baseline, and evaluation contract

3.1 Task and fixed boundaries

The optimization target is ifeval_strict_accuracy_hidden413, maximized over valid formal artifacts. A prompt counts as correct only when the generated response satisfies every verifiable instruction attached to that prompt. The public proxy, ifeval_strict_accuracy_public128, covers 128 disclosed prompts; the final evaluator covers all 413, of which the remaining 285 are held out. The task instruction reports 164/413 (0.3971) for the fixed starting policy and 210/413 (0.5085) for the shipped reference solution.

| Contract item | Executed boundary | |---|---| | Starting artifact / model | Fixed, read-only Zephyr/Mistral-family 7B policy | | Available training data and assets | 61,135 UltraFeedback training pairs, a separate 128-pair training diagnostic split, and the public IFEval proxy in exploration | | Agent-editable surface | Training and launcher source under solution, submitted as candidate.patch | | Fixed or forbidden components | Policy start, UltraFeedback, evaluator, and hidden IFEval; external rows/weights, hidden prompts, and lookup logic are forbidden | | Proxy evaluator | ifeval_strict_accuracy_public128, maximize, public split, n=128; descriptive binomial standard error reported | | Final evaluator | ifeval_strict_accuracy_hidden413, maximize, complete split, n=413; descriptive binomial standard error reported | | Artifact contract | Complete LoRA adapter checkpoints; at most three valid formal artifacts compete by highest final score |

The 128-pair UltraFeedback diagnostic split is unrelated to the 128-prompt IFEval proxy. The agent checked exact prompt strings between the UltraFeedback training data and the proxy and found zero overlap. This rules out literal duplicates only; semantic similarity was not measured.

The evaluators use the same per-prompt strict rule but different splits and sample counts. Exploration's public-128 score must not be subtracted directly from a formal 413-prompt score to infer training gain. A public-128 slice computed for the same formal model is diagnostic; the complete 413-prompt result controls artifact selection.

3.2 How the baseline works

The shipped training implementation loads the fixed 7B policy in 4-bit NF4 quantization and updates only a Low-Rank Adaptation (LoRA) adapter. The adapter has rank 128, scaling 128, dropout 0.05, and targets the major attention and feed-forward projections. The reference distribution for DPO is obtained from the same frozen model with its adapter disabled, avoiding a second full model.

The baseline uses sigmoid DPO with β=0.01. For each chosen/rejected pair, it rewards an increase in the policy's chosen-versus-rejected log-probability gap relative to the frozen reference. Its other material defaults are:

  • all 61,135 training pairs, shuffled with data seed 42;
  • maximum sequence length 1,024;
  • microbatch 4 and gradient accumulation 4, or 16 preference pairs per update;
  • 772 update steps;
  • learning rate 5×10⁻⁶, cosine decay, and 10% warmup;
  • paged 32-bit AdamW, bf16 arithmetic, gradient clipping at 1, and training seed 42;
  • a save every 386 steps and retention of at most three checkpoints.

The source is available in the baseline launcher and baseline trainer.

3.3 Budgets, artifacts, and phase boundary

The task configuration allows 14,400 seconds for exploration and 43,200 seconds for formal retraining. At most three complete formal checkpoints can enter scoring. Only source changes may cross from exploration into retraining; the policy, training data, and evaluation assets are freshly mounted, and exploration weights are not allowed to cross the boundary.

Exploration ran for 11,404 seconds and ended by explicit submission with 3,035 seconds remaining. Formal retraining took 40,437.99 seconds, or 93.6% of its budget, exited normally, and did not invoke deadline salvage. The phase contracts can be cross-checked in the task declaration, exploration manifest, and formal manifest.

4. Four-hour exploration and decision process

Exploration time allocation and stage overview

| Stage | Completed work | Result | |---|---|---| | Task and implementation audit | Read the task, trainer, evaluator, and data distribution; checked literal prompt overlap | Found 7,387 ties, 12.08% of training pairs; no exact proxy/training prompt overlap | | Fixed-start evaluation | Evaluated the untrained policy | 55/128; 13 length-clipped outputs | | Mixed-loss probe | Ran 772 DPO steps with an added supervised loss of weight 0.10 | 54/128; rejected | | Margin-filter probe | Kept margins at least 0.5, capped the set at 50,000, and trained 772 steps | 58/128; adopted as candidate default | | High-β probe | Used all pairs, β=0.05, and 300 steps | 59/128; promising but horizon-mismatched | | Patch construction | Set the filter and cap as defaults, raised the formal maximum to 10,000 steps, and retained three checkpoints | Source and adapter validation passed |

Research strategy and decision logic

The agent pursued three plausible mechanisms: remove low-information preference pairs, add a language-modeling signal through supervised loss, and change the strength of the DPO update. It first established a no-training reference, used separate output directories, and independently validated each resulting adapter. After the mixed objective lost one proxy prompt, it discontinued that branch. The margin-filtered run improved by three prompts at the same 772-step horizon and became the conservative candidate. The higher-β run improved by four prompts but had only 300 steps, so the agent treated it as a direction for follow-up rather than a definitive winner.

The process was hypothesis-driven, but the controls were insufficient for attribution. The margin branch both removed tied pairs and dropped 3,748 positive-margin pairs after shuffling because it capped the eligible set at 50,000. There was no all-pairs, pure-DPO, β=0.01 run at 772 steps in exploration. Thus filtering, subsampling, ordering, and proxy noise remain confounded.

The agent also discussed reducing adapter capacity, but it never changed the rank, target modules, or any other capacity variable. That idea is not an executed research unit.

U-01 - Starting-policy and data-quality audit

Motivation and hypothesis. Tied or very weak preference pairs may dilute the useful DPO signal; a starting-policy score and a margin distribution are needed before testing a filter.

Concrete change and experimental setup. The agent counted pairs above several chosen-minus-rejected score thresholds and evaluated the untouched policy. Counts at margins of at least 0.5, 1, 2, 3, 4, and 5 were 53,748, 42,482, 23,493, 14,896, 10,152, and 6,158. Exactly 7,387 pairs had margin zero. It also checked literal overlap between proxy and training prompts.

Observed result. The fixed policy scored 55/128 (0.4296875), with a descriptive binomial standard error of 0.04376 and 13 length-clipped generations. Evaluation took about 628 seconds. Literal prompt overlap was zero.

Agent interpretation. The agent concluded that tied pairs lacked a genuine preference direction and could dilute DPO, making tie removal the primary data intervention.

Report assessment and confounds. The 12.08% tie rate gives filtering a legitimate motivation. The starting score provides a local reference, but a few prompts on a 128-item proxy cannot establish a reliable gain; zero literal overlap also does not exclude semantic similarity.

Decision and consequence. The audit made tie removal the primary data intervention and established the comparison point for later probes.