Skip to content

Multi-turn thinking collapse on Laguna is history rendering, not depth: stripped 0/10 vs preserved 10/10, and the default client is the stripped arm #16

Description

@Blackwellboy

Follow-up to the template trap flagged in the gate-study interpretation update, now measured. Raw + writeup: https://github.com/Blackwellboy/laguna-s21-lab/tree/main/context-mass

The measurement. 15-cell sweep on a Laguna S 2.1 lane (3.25bpw hybrid, vLLM): turn depth {1,5,10,20,40} × context mass {~2K,~8K,~32K} under standard OpenAI-style multi-turn (assistant history = content only). 0/150 thinking firing, flat zero on both axes, against a 45% single-turn C7 baseline on the same lane (18/40, n=40 transfer check). The 276 live history-building turns fired 0/276 themselves: the gate closes at turn 2 of any accumulated session.

Then the comparison arm, identical transcripts, one variable: stripped 0/10 vs preserved 10/10 at depth 10 / ~8K, and again 0/10 vs 10/10 at depth 20 / ~8K. Preserved means the prior assistant turns' reasoning fields are resent; the template then renders real think blocks instead of the empty <think></think> it renders by default. Partial preservation was enough (the d10 history carried reasoning on only 5/10 turns).

Why this happens. The chat template renders every prior assistant turn as <think>{reasoning}</think>{content} when thinking is enabled. No standard client resends reasoning, so every prior turn renders an empty think block, and the model reads N turns of "thought about nothing" as how this conversation works. There is an undocumented preserve_thinking kwarg (it matters for thinking-off flows); with thinking on, resending reasoning on assistant messages is sufficient. vLLM passes the field through (verified: prompt_tokens 63→303 with ~200 tokens attached). Cost: ~250–320 prompt tokens per preserved turn — the turn's reasoning length (+1,615 tokens over 5 preserved turns at d10, +4,764 over 19 at d20).

What this touches in the guide (your call, flagging surfaces):

Scope. One lane, 3.25bpw hybrid quant; 45% single-turn transfer vs the NVFP4's 60% (overlapping CIs, same task-shape profile). NVFP4 confirmation on the production lane is queued. Replication note: a session cannot bootstrap its own preserved history — once the gate closes there is no reasoning to preserve (our first arm was vacuous exactly this way, 0/50 turns; kept in the raw) — generate history turns statelessly.


Housekeeping footnote while I'm in §2's territory: the prompt-identity wrinkle quotes the non-summary C0 prompts as "116 to 124" tokens; from grid_turns.jsonl the actual ranges are 114–125 (code 114–117, math 120–122, reasoning 121–125; summary 286–289, so the ~288-vs-~120 contrast stands untouched).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions