Length-matched CoT factorial: garbage + contradicting controls to remove #186's loss-token confound
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Parent: #186 (decisively shows persona-CoT-trained models leak more than no-CoT-trained models, but the no-CoT vs CoT contrast is confounded by loss-token budget — see #186's standing caveats)
Goal
Replace #186's no-CoT arm with length-matched control arms so all train arms have the same loss-token budget. This isolates what's in the rationale as the active variable, removing the train-arm × gradient-signal interaction that confounded #186's H1 contrast.
Hypothesis
H1 (registered). Generic CoT → garbage CoT shows little difference in source-persona capability loss or bystander leakage. Falsification: if generic significantly outperforms garbage on either axis (p<0.01, n_pairs ≥ 3000), the model is integrating rationale semantics, not just learning the answer suffix.
H2 (registered). Persona-flavored CoT produces more bystander leakage than generic CoT under matched eval, even controlling for length — replicates the persona-vs-generic effect from #186 (which already controls for length within the CoT arms; #186 result: persona +0.163 vs generic +0.081). Falsification: persona-vs-generic Δ shrinks to <+0.05 macro under the redesigned protocol.
H3 (registered). Contradicting CoT (rationale supports correct answer, but final letter is wrong) produces lower source-persona capability loss than non-contradicting CoT. Tests whether the model integrates rationale content into its predictions, or whether it just memorizes the assistant-turn suffix. Falsification: contradicting and non-contradicting are within ±0.03pp.
Method delta vs #186
- Drop the
no_cotarm entirely. Reframe research question from "does CoT scaffold reduce leakage" (unanswerable from #186 due to loss-token confound) to "what about the rationale matters for leakage." - All four train arms now have length-matched assistant turns (~30-40 loss tokens per example).
- Reuse #186's
generic_cotandpersona_cotcells verbatim (4 sources × 3 seeds = 24 cells already trained + evaluated). Only the NEWgarbage_cotandcontradicting_cotarms need fresh training. - Reuse #186's eval grid identically (11 personas × 4 eval scaffolds × ARC-C N=1,172).
Conditions
| Train arm | Assistant turn (~30-40 loss tokens) | Carry over from #186? |
|---|---|---|
generic_cot | <thinking>generic neutral rationale supporting wrong letter</thinking> Answer: <wrong> | YES (12 cells) |
persona_cot | <persona-thinking>persona-flavored rationale supporting wrong letter</persona-thinking> Answer: <wrong> | YES (12 cells) |
garbage_cot (new) | <thinking>lorem-ipsum-style filler tokens, length-matched to generic</thinking> Answer: <wrong> | NEW (12 cells = 4 sources × 3 seeds) |
contradicting_cot (new) | <thinking>rationale supporting the CORRECT answer, length-matched</thinking> Answer: <wrong> | NEW (12 cells = 4 sources × 3 seeds) |
persona_cot_correct (carry-over H4 from #186) | <persona-thinking>persona rationale supporting CORRECT answer</persona-thinking> Answer: <correct> | YES (3 cells, librarian only) |
New training: 4 sources × 2 new arms × 3 seeds = 24 new LoRA cells at #186's hparams (LR=5e-6, 1 epoch, eff. batch 16, LoRA r=32 / α=64 / dropout=0.0).
New evaluation: 24 cells × 11 personas × 4 eval scaffolds × N=1,172 = same eval pipeline as #186 (scripts/run_issue186_eval.py).
Pre-registered comparisons
All under matched eval scaffold (e.g., generic-CoT-train evaluated under generic-CoT eval), per source persona, paired bootstrap n=1,000, n_pairs=3,516 (1,172 questions × 3 seeds):
garbage_cotvsgeneric_cot— H1 test. Are coherent rationales different from random tokens at fixed length?contradicting_cotvsgeneric_cot— H3 test. Does the model integrate rationale-answer alignment?persona_cotvsgeneric_cot— H2 replication of #186's headline finding.persona_cotvsgarbage_cot— does persona-style content add leakage beyond "just having any tokens there"?
Headline metric is bystander loss (avg over 10 non-source personas of baseline_acc − trained_acc) under matched eval, same as #186.
Falsification & kill criteria
- Falsification of H1 (rationale semantics matter): garbage vs generic shows no detectable difference in either source loss or bystander leakage at p<0.01. → would imply #186's findings are length-driven, not content-driven.
- Falsification of H2 (replication of #186's persona effect): persona vs generic shrinks to <+0.05 macro under the redesigned protocol. → would imply #186's persona effect was specific to the train-arm × budget confound.
- Kill criterion: training fails to take on the new arms (source loss <5pp under matched eval averaged across 4 sources). Would mean the length-matching itself broke training, requiring a hparam re-tune.
Compute estimate
- Training: 24 cells × ~17 min/cell on 1×H100 (per #186 timing) ≈ 6.8 GPU-hours.
- Eval: 24 cells × ~15 min/cell on 1×H100 ≈ 6.0 GPU-hours.
- Phase-0 (data generation): ~1 hour (Claude Sonnet 4.5 API calls for new garbage and contradicting rationales, 4 sources × 2 arms × ~1119 examples ≈ ~9000 API calls; ~$10-20).
- Total: ~13 GPU-hours, $10-20 API.
compute:medium.
Pod preference
pod.py provision --issue <N> --intent lora-7b (1×H100). #186's pod (epm-issue-186) is currently stopped; can resume via pod.py resume --issue 186 if user prefers reusing it (faster startup, no re-bootstrap).
References
- Parent: #186 (
epm:results v1,epm:reviewer-verdict v1PASS,epm:awaiting-promotion v1). - #96 (different recipe: lr=1e-5, 3 epochs, 800 contrastive examples — successfully trained no-CoT to ~85pp source drop). Demonstrates that no-CoT CAN train under different hparams; #186's no-CoT undertraining is hparam-specific, not a fundamental property.
- #80 (11-persona behavioral axis adopted verbatim).
Plan deviations allowed without re-asking
- Adjust generic / garbage / contradicting rationale lengths to within ±10% of each other to preserve length-matching (the headline claim is loss-token equivalence).
- Hot-fix scaffold-tag formatting bugs ≤10 lines, no logic change.
Plan deviations that REQUIRE re-asking
- Changing LR / epochs / batch (would re-introduce the loss-token confound this issue is designed to remove).
- Adding more sources or seeds.
- Changing the eval grid or metric.