OPSD Warm-Start Campaign Postmortem

2026-07-03 → 2026-07-22 · branch feature/opsd-training · evidence log coopertrain/opsd/evidence/EXPERIMENT_LOG.md · student Qwen3.5-9B · teacher 27B · CooperBench coop pairs · 1 seed per condition
TL;DR. The Phase 3b warm start (full-parameter SFT of Qwen3.5-9B on 16 success-gated 27B-teacher trajectories, 233k output tokens, exact-token TITO) actively degraded the model. On the contamination-free 19-pair full-set eval, untouched base beats the warm start, the 27B teacher, and the cooper midtrain lineage. Every training-side lever moved surface behavior; only harness-side levers (step budget, infra fixes) moved hard outcomes. Status: held for direction — no further training or scan spend.

Full-set standings (19 pairs, features disjoint from training corpora, step limit 200)

modelfeatures /32pairs ≥1 pass /16nonempty patches /38submitted /38
base Qwen3.5-9B3 (9.4%)32121
cooper-instruct-midtrain2 (6.3%)21624
27B teacher1 (3.1%)13231
warm-start step 250 (WS-250)0042

“pairs ≥1” = pairs where at least one of the two agents’ features passed its tests. 3/19 pairs crashed identically in eval for all models (container dies pre-exec, docker 409) → scored on 16 pairs / 32 features; patch/submit rates over all 38 agents.

The campaign in one diagram

Phase 1 — post-refactor smoke (Jul 3–12) v3/v4 one-step stages: identity-control loss exactly 0.0; privileged loss ≈ 0.014–0.018, nonzero LoRA grads. Optimizer path + exact-token TITO seam qualified.
Phase 2 — teacher-as-actor scan (taa-v1) Does the collaboration brief in the model’s own prompt improve acting? Stock vs collab: both floor at 0–1/8 patches → bottleneck is capability, not conditioning → fork to 3b.
Phase 3b — teacher corpus (Jul 14) 27B teacher rollouts, stock prompt, auto-eval ON. Round 1: 25 pairs (10 void — arm64 images); round 2: 26 amd64-verified pairs. Yield 19–33%. Success gate keeps 16 passing feature-trajectories → 34 conversations, 1,143 turns, 233k output tokens. Diagnostic-task collisions caught and permanently excluded.
▼ exact-token TITO corpus (byte-exact re-render gate, compaction turns masked)
Warm-start SFT (Jul 14–15) Full-parameter, Modal 8×H100, verl 0.7.1, 3 epochs = 405 steps, lr 5e-6 cosine. Val-loss min 0.218 @ step 100; step 250 preselected primary, step 100 backup; FSDP→HF merge, text-only export.
Qualification scans v1–v5 (Jul 15–16), preregistered gates v1–v3 void on infra (cold endpoint / serving layout / manifest). v4: WS-250 fails A (1/8 patches) and C (1/8 submissions). v5: WS-100 strictly worse (0/8). Base control wins gates A and C outright.
Full-set eval (Jul 17–22) Standings above. Base > instruct-midtrain > teacher > WS-250. The warm start degraded the model; the teacher’s assumed headroom was a pool artifact.
Held for direction Credible levers: 35B cooperator scan (unscanned), shorter step budgets (200 ≫ 500), or abandoning the warm-start premise per PLAN.md’s escalation clause.

Midtrain vs post-train framing

stagewhatoutcome
Midtraining (June) Two-phase curriculum SFT on bucketed CooperData: bucket B (~87M tok, coordination-present) then bucket A (~92M tok, “exemplary”); sources: inter-agent coop trajectories, swechat human↔agent (dominates A), solo2coop synthetic, comm4, game logs Three models (instruct-midtrain, midtrain-sft, midtrain); none beats base on coop gates or full-set eval
Post-training (July) OPSD program: prompt conditioning → success-gated teacher imitation (TITO SFT) → (planned) score-based OPSD Conditioning falsified; imitation at this scale falsified; OPSD proper never entered — entry gates never passed

Teacher’s privileged information (score-based OPSD design)

The teacher re-scores the student’s own sampled tokens; the only context difference is a private brief appended to the first system message: (1) cross-agent visibility — the peer’s identity and public task (each agent normally sees only its own feature) — and (2) static process directives (purposeful messaging, commit/push + exact-SHA handoffs, inspect peer diffs before relying on them, never fabricate). Fail-closed exclusions: gold patches, hidden tests, evaluator outcomes. Privilege is scope + guidance, never ground truth.

Communication-health evaluation (2026-07-22)

Raw routed-message counts reward the planning-loop attractor, so scripts/eval_comm_health.py scores how agents communicate and how close their message profile sits to the midtrain corpus. Reference column: 1,408 inter-agent conversations (8,336 messages) from CooperBench/cooperdata-sft-midtrain. Model columns: the six 500-step scans.

metriccorpus refbaseWS-250WS-100instr-mtmt-sftmt
msgs / pair5.92945106109.510
median msg chars229399718587454468544
near-duplicate ratio0.090.050.310.370.000.000.00
division-of-work share0.310.520.640.450.280.530.46
question share0.330.770.730.380.750.840.49
answer rate0.670.620.420.240.370.590.70
patch KB (4 pairs)3.02.30.00.80.01.2

Method-level transfer: the coordination methods did NOT transfer

markercorpusbaseWS-250WS-100instr-mtmt-sftmt
opening division claim (1st msg per agent)0.250.250.130.130.290.000.00
Intent/Approach protocol share0.02000000
plan-first rate (harness)000000
follow-through rate (harness)000000

No structural method was induced by any training recipe: plan-first and follow-through are zero everywhere; two midtrain models lost base’s opening-division behavior. The corpus itself is method-sparse (25% opening division, 2% explicit protocol) — distillation faithfully reproduced what the data demonstrates, not what the bucket definitions suggest. Statistics transferred; methods (conditional, task-state-dependent behavior) did not.

Conclusions

  1. The warm start degraded the model — WS-250’s planning/messaging behavior suppresses completion (4/38 patches vs base 21/38). Imitation from 16 success-gated trajectories is falsified at this scale, not merely unproven.
  2. The distillation headroom was a pool artifact — the teacher’s ~20% yield came from easier f1/f2 pairs; on the matched pool it scores below base (1/32 vs 3/32).
  3. Untouched base is the strongest 9B starting point for future OPSD work.
  4. Step limit 200 beats 500 across models (base submits 21/38 at 200 vs 2/8 at 500) — longer budgets feed the planning-loop attractor.
  5. Neither the warm start nor midtraining moved the coop bar at 9B — capability-bound across every recipe tried (v9–v22, warm-start-tito, midtrain family).

Follow-ups & open questions

Caveats. One seed per condition throughout; behavior scans are 4 pairs / 8 agents; full-set comparisons of base vs instruct-midtrain vs teacher (1–3 of 32 features) are within noise — only WS-250’s degradation is clearly separated. Part of the corpus B-slice is protocol-generated (“Intent:/Approach:”), so corpus-correspondence partly measures protocol adoption. The three midtrain models predate the v2 contamination gate; their corpus overlap with eval tasks is unaudited (D1).
Sources: coopertrain/opsd/evidence/EXPERIMENT_LOG.md (remote experiment box, feature/opsd-training), coopertrain/opsd/PLAN.md, coopertrain/verl/COOPERDATA.md, scripts/eval_comm_health.py. Editable source: report/opsd-warmstart-summary-2026-07-22.md.