Close-Weighted Universal Commit Seam
The one idea you need
The previous training recipe nearly learned to finish fresh puzzles, but a few answers ran out of space before the model stopped reasoning. This follow-up teaches the exact transition from reasoning to a final answer while keeping the amount of practice equal across comparisons.
The question
Does putting extra teaching weight on the moment reasoning ends help the model finish reliably, beyond simply adding targeted lessons or more replay practice?
What we found
No. On 26 fresh procedural cases, ordinary and close-weighted target training both produced 23 well-formed answers and three response-limit contacts. Close weighting scored 16 correct versus 15 for ordinary training, but only by gaining one unrelated abstention case; both remained zero for four targeted execution and rule-finding cases. The best arm missed each frozen numeric gate by one case or contact, so the benchmark stayed sealed.
Why it matters
The byte-identical comparison separates the effect of fresh target lessons from the effect of emphasizing the reasoning-to-answer marker. Fresh lessons improved answer emission, but extra marker weight did not. That retires close-weight tuning and redirects the search toward teaching a bounded search procedure itself.
On this page
Results at a glance 1
How to read
Each group shows counts out of the same 26 fresh cases. Higher correct and parsed bars are better; lower response-limit contacts are better.
Takeaway → Ordinary and close-weighted target arms tie at 23 parsed answers and three limit contacts, while close weight adds only one correct case and still misses promotion.
Data table
| fresh local outcome | designed160 parent | replay repeat | ordinary target | close-weighted target |
|---|---|---|---|---|
| correct | 16 | 14 | 15 | 16 |
| parsed | 20 | 18 | 23 | 23 |
| cap contacts | 6 | 8 | 3 | 3 |
Numbers from experiments/qwen35_4b_universal_close_weight_token_match/runs/local/seed88006.json
Technical framing
Close weighting adds no parse or cap benefit over ordinary target training — Higher correct/parsed counts are better; lower cap contacts are better. Ordinary and close-weighted target arms used identical data bytes and differed only in close-span loss. Neither passed the frozen gate, so benchmark seed 78136 stayed sealed.
In the author’s words from the Overview · “Results”
All three arms completed their registered 40/40 updates over 320 rows and 286,814 forward tokens with zero skips. Replay, standard, and close train losses were 0.4477, 0.6882, and 0.6822; wrapper wall times were 303.44, 302.15, and 287.13 seconds. Their adapter weights hashes are ca5601cd...59d78, 271569fd...3569c, and 16e9dc75...3c179. Fresh paired local seed 88,006 produced: immediate designed160 parent: 16/26 accuracy, 20/26 parsed, 6 cap contacts; replay_repeat: 14/26 accuracy, 18/26 parsed, 8 cap contacts; standard_xi: 15/26 accuracy, 23/26 parsed, 3 cap contacts; close_xi: 16/26 accuracy, 23/26 parsed, 3 cap contacts. Every arm had zero repeated feasible-route abstentions. … Read the full result →
Overview
Research program
- Program:
agentic_breadth_installation - Parent:
qwen35_4b_universal_mid_density_token_match - Mechanism anchors: C50 (
qwen35_4b_gauntlet_breadth_round1), C51 (qwen35_4b_answer_potential_trace_sft), andqwen35_4b_tokenizer_eos_answer_commit_factorial
Question
Can a short synthetic-curriculum adapter continuation that explicitly trains the model's autonomous </think> transition turn the designed160 local near-miss into a clean install, or is any improvement explained by targeted execute/induct data or replay alone?
Hypothesis
The parent already solves enough local cases but fails to stop and emit: all three of its unparsed designed160 cases hit the 1,024-token cap, and the misses are confined to execute/induct tasks. C50 says successful broad installation depends on where loss is placed near the emission seam, while C51 says answer likelihood after an injected close is non-actionable unless autonomous closing is part of the trained event. Raising the natural close-span weight from the ordinary thought weight 0.2 to the answer weight 1.0 on fresh execute/induct rows should improve closure more than byte-identical ordinary SFT.
Setup
- Only model:
Qwen/Qwen3.5-4B, revision851bf6e.... - Warm start: authenticated published
designed160adapter, weightsf05c13ae...94654, config0cd3ca7c...91e58. - Fresh targeted block: 40
u_executeand 40u_inductrows selected without outcomes from source rows absent from the parent's designed160 stream. - Shared block: 200 replay rows. Targeted arms add the 80 designed rows plus 40 replay fillers; replay repeat uses 120 replay rows with the exact same 87,454 forward-token sum.
| Arm | Variable 120-row block | Close loss |
|---|---|---|
replay_repeat | replay only | 0.2 everywhere |
standard_xi | 80 fresh target + 40 replay | 0.2 everywhere |
close_xi | byte-identical to standard_xi | 1.0 only on target closes; 0.2 otherwise |
Every arm has 320 rows, 286,814 forward tokens, zero tokenizer skips, batch size 1, gradient accumulation 8, and 40 optimizer steps. standard_xi and close_xi use the same bytes, order, shuffle seed, prompts, thoughts, answers, and optimizer schedule. Their sole assigned-weight contrast is the two-token autonomous close span on the 80 target rows. The treatment changes that span's weight from 0.2 to 1.0; all other assigned token weights remain unchanged.
Training is one epoch at learning rate 1e-5, rank 32 / alpha 64, w_think=0.2, max length 4,096, and seed 44. The active replay arm uses the same parent, rows, tokens, steps, and optimizer settings.
The local screen uses fresh procedural seed 88,006, greedy generation, 1,024 tokens, and the unchanged absolute gate: accuracy ≥0.65, parse ≥0.90, cap contacts ≤2, and no repeated feasible-route abstention. Only standard_xi and close_xi are promotion candidates; replay repeat and the immediate parent are controls.
If either candidate passes, one aggregate-only quick@1,024 event at fresh seed 78,136 compares base, blend, replay refresh, the immediate parent, active replay, and every eligible candidate as explicitly merged checkpoints on qwen_vllm. The benchmark firewall forbids reading or importing benchmark items, sources, transcripts, or private outputs.
Run
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --smoke
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage train-control
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage train-standard
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage train-close
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage localMerge and benchmark stages are conditional on a treatment arm passing locally:
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage merge
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage benchmarkResults
All three arms completed their registered 40/40 updates over 320 rows and 286,814 forward tokens with zero skips. Replay, standard, and close train losses were 0.4477, 0.6882, and 0.6822; wrapper wall times were 303.44, 302.15, and 287.13 seconds. Their adapter weights hashes are ca5601cd...59d78, 271569fd...3569c, and 16e9dc75...3c179.
Fresh paired local seed 88,006 produced:
- immediate
designed160parent: 16/26 accuracy, 20/26 parsed, 6 cap contacts; replay_repeat: 14/26 accuracy, 18/26 parsed, 8 cap contacts;standard_xi: 15/26 accuracy, 23/26 parsed, 3 cap contacts;close_xi: 16/26 accuracy, 23/26 parsed, 3 cap contacts.
Every arm had zero repeated feasible-route abstentions. Neither treatment passed: standard_xi failed all three numeric gates, while close_xi missed accuracy by one correct case, parse by one parsed case, and the cap ceiling by one contact. The promotion receipt is empty. No checkpoint was merged, and conditional aggregate seed 78,136 remains sealed.
Interpretation
The fresh target continuation, not close reweighting, accounts for the emission improvement: standard_xi and close_xi have identical 23/26 parse and three-cap results. Close weighting adds one correct abstention case over ordinary weighting, but both score 0/4 on the targeted execute/induct cases and the close arm only ties the immediate parent's 16/26 accuracy. Relative to that parent it trades three task-kind wins for three losses while shortening output and improving parseability; this is redistribution, not a generalized install.
The isolated 0.2→1.0 natural-close loss change therefore fails its mechanism test. Do not repeat another close-weight dose or spend the sealed aggregate seed. A successor needs a different, prospectively frozen interface mechanism—one that jointly teaches bounded computation and canonical answer commitment—under a fresh local seed and the same active replay discipline.
Knowledgebase update
- Program evidence: close weighting recorded as a local mechanism negative.
- Program backlog: retire close-span reweighting and require a different bounded commit mechanism in a new experiment.
- Shared synthesis: target data improved emission, but close weighting did not.
- Claim ledger: unchanged; no result or universal-feature claim exists.
Artifacts
idea_intake.md: novelty, near-duplicates, and falsifier.data/stream_manifest.json: exact source exclusions, selections, slots, and sums.data/stream_token_receipt.json: zero-skip and exact-exposure proof.scripts/train_think_close.py: separately weighted autonomous close span.reports/design_review.mdandreports/preregistration.md: frozen threats and gates.reports/artifact_manifest.yaml: external parent and planned trained artifacts.runs/local/seed88006.json: complete experiment-owned paired local receipt.runs/local/seed88006_promotion.json: empty promotion decision; benchmark sealed.
Report
Rendered from reports/report.md
Status: completed local negative; no merge or benchmark event
Design result
The outcome-free construction is feasible and frozen. All three continuations start from the authenticated designed160 parent and receive 320 rows, 286,814 forward tokens, 40 optimizer steps, and zero skipped rows. standard_xi and close_xi use the same SHA-256 12fc613b...14f00 stream. The treatment changes only assigned autonomous-close weights on 80 fresh execute/induct rows; active replay exactly matches their total forward-token exposure.
Model results
All three arms completed exactly 40 updates with zero skips. Replay, standard, and close train losses were 0.4477, 0.6882, and 0.6822; wrapper wall times were 303.44, 302.15, and 287.13 seconds; weights hashes were ca5601cd...59d78, 271569fd...3569c, and 16e9dc75...3c179.
On fresh paired local seed 88,006, the immediate parent scored 16/26 accuracy, 20/26 parse, and six cap contacts. Replay repeat scored 14/26, 18/26, and eight; ordinary target training scored 15/26, 23/26, and three; close-weighted training scored 16/26, 23/26, and three. All four arms passed the route-abstention check. Both target candidates failed accuracy ≥0.65, parse ≥0.90, and cap contacts ≤2. The best arm missed each numeric requirement by one case/contact. Promotion was empty, so no merge occurred and aggregate seed 78,136 remains sealed.
Interpretation boundary
The byte-identical contrast falsifies the registered close-weight mechanism at this dose. Ordinary and close-weighted target training produced the same parse and cap metrics; the close arm's only accuracy advantage was one non-target abstention case. Both remained 0/4 on execute/induct, the exact families the intervention targeted. Close weighting tied, rather than exceeded, the immediate parent on aggregate accuracy and redistributed task-kind wins and losses.
This is local procedural evidence only. It shows that fresh target rows can improve answer emission while a higher autonomous-close loss does not add the predicted closure benefit. It provides no broad-transfer or universal-feature evidence. Do not lower the gate, reuse seed 88,006, or benchmark this failed arm; test a different bounded-computation/canonical-commit mechanism in a new directory.
Experiment log 5
Show the running log (5 entries, 2026-07-13 → 14)
2026-07-13 — Intake and design freeze
- Created a result-separated successor to the exact-token mid-density negative.
- Audited the parent local receipt: all three unparsed designed160 cases were cap-bound and belonged to
u_execute/u_induct. - Rejected answer-only teacher forcing after an injected close because C51 already showed that counterfactual state is not reliably reached.
- Split the natural
</think>span from thought and answer loss in the trainer. - Selected 40 fresh execute and 40 fresh induct rows with zero parent overlap.
- Constructed a 200-row shared replay core, 40-row replay filler, and 120-row replay control. Target+filler and replay control each total exactly 87,454 forward tokens.
- Validated 320 rows, 286,814 forward tokens, 40 updates, and zero skips per arm.
- Added stream-freshness, slot-identity, boundary, treatment-locality, negative-row, runner, and local-gate tests; 27 tests pass.
- Completed adversarial design review and preregistration. No scientific GPU work, model evaluation, merge, or benchmark event has run.
Next: commit/rebase/push the frozen design to main, verify CI, then run and publish each training arm as its own incremental checkpoint.
2026-07-14 — Replay control training
- Published design checkpoint
0fe1a931tomain; repository validation and site publication both passed on GitHub before scientific training began. - Trained
replay_repeatfor exactly 40/40 updates over the authenticated 320-row, 286,814-forward-token stream; zero rows skipped. - Train loss: 0.4477. Wrapper wall time: 303.4403 seconds.
- Adapter weights/config:
ca5601cd...59d78/63575f72...a49b. - Training receipt/log:
ffac35d1...1067/b24444b8...ed28. - No treatment, local evaluation, merge, or benchmark event has run.
Next: publish this control receipt checkpoint, then train standard_xi.
2026-07-14 — Ordinary-weight target training
- Published replay-control checkpoint
6d1761e7tomain; repository validation and site publication both passed on GitHub before the next arm began. - Trained
standard_xifor exactly 40/40 updates on the byte-frozen target stream; 320 rows, 286,814 forward tokens, and zero skips. - Train loss: 0.6882. Wrapper wall time: 302.1492 seconds.
- Adapter weights/config:
271569fd...3569c/3e035fbb...f91ec. - Training receipt/log:
9ed47653...af8b4/73c55663...76294. - The close-weighted arm, local evaluation, merge, and benchmark remain unrun.
Next: publish this standard receipt checkpoint, then train byte-identical close_xi.
2026-07-14 — Close-weighted target training
- Published ordinary-weight checkpoint
f8f1b13btomain; repository validation and site publication both passed on GitHub before the close arm began. - Trained
close_xifor exactly 40/40 updates on the byte-identical target stream; 320 rows, 286,814 forward tokens, and zero skips. - The receipt authenticates the sole registered contrast: target close kinds
u_execute/u_inductat weight 1.0; all ordinary close spans remain 0.2. - Train loss: 0.6822. Wrapper wall time: 287.1305 seconds.
- Adapter weights/config:
16e9dc75...3c179/de953bd5...c47ff. - Training receipt/log:
b18df864...3195a/66c00e2b...42308. - All three arms are trained. Local seed 88006, merge, and benchmark remain unrun.
Next: publish this final training checkpoint, then run the preregistered paired local evaluation exactly once.
2026-07-14 — Fresh local gate negative
- Published the all-arms checkpoint
755cfad4tomain; repository validation and site publication both passed on GitHub before local evaluation began. - Ran the single registered paired seed 88,006 event across the immediate parent, replay control, ordinary target arm, and close-weighted target arm at greedy decode and 1,024 generated tokens.
- Parent scored 16/26 accuracy, 20/26 parse, and 6 cap contacts. Replay scored 14/26, 18/26, and 8. Standard scored 15/26, 23/26, and 3. Close scored 16/26, 23/26, and 3. Every arm had zero repeated feasible-route abstentions.
- Both treatment arms failed the frozen accuracy ≥0.65, parse ≥0.90, and cap ≤2 gates. Close weighting missed all three numeric bars by one case/contact and left execute/induct at 0/4, so the promotion list is empty.
- Full local receipt:
runs/local/seed88006.json, SHA-256e51eec228a598b31f6fb54a1b04eb55cb43b2f841023b3c4865fdc78db2c436c. Promotion receipt:runs/local/seed88006_promotion.json, SHA-256e7b3cd56ba99b505c8b79b2495dbdb3b25e1368a1563de62d3738ce45aa4c060. - Gate receipt hashes: replay
d0e8aa6e...39279, standarddc51cc96...af83b, and close505e854c...fe29. - No merge or benchmark event ran; conditional aggregate seed 78,136 remains sealed.
Next: publish this negative result, then create a new result-separated successor with a different bounded-computation/canonical-commit mechanism and fresh seeds.
Reproduce
Smoke test
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --smokeFull run
.venv/bin/python experiments/qwen35_4b_universal_close_weight_token_match/scripts/run.py --stage allRun steps are documented inside the experiment folder (README and scripts).