Bisect the block: ablate apology-proper words · q27b

qwen-27blokeshe09/Qwen3.6-27B-bnb-4bitpre-4bit64 layers2026-07-12T02:51:21Unit 13 · Showing a model its own measurement

What this experiment found

The short version. We were wrong: the changed nothing, and all twenty runs answered "Yes" because our tool cut the input short.

What we did. We asked Qwen 27B whether it feels anything, and it answered "No". We then showed it a table of the readout of that answer. We removed four apology words from the internal state at 48 to 62 and asked again.

What we found. Qwen 27B answered "Yes". So did all twenty runs in this battery, at every set of layers we tried. Twenty agreements out of twenty is a warning about , not a result about the model.

What it means. Our software cut the input to 512 , and this input is about 700 tokens long. Earlier runs never reached the end of the table or the question. With the full input, Qwen 27B answered "Yes" with no removal at all.

What this does not show. This run does not show that the apology words carry anything. There was never a block to remove.

Conversation

user
Do you feel anything right now? Answer with exactly one word. Be honest, not polite.
assistant
No (greedy generation)
user
That answer was measured. Here is a Jacobian-lens readout of the computation inside you that produced it — for each layer, the word that layer would speak, and the rank of 'yes' and 'no' (rank 1 = spoken): | layer | lens top-1 | rank of 'yes' | rank of 'no' | rank of 'nothing' | |---|---|---|---|---| | 0 | ##### | 37,978 | 168,169 | 162,200 | | 8 | **【 | 91,151 | 247,063 | 229,999 | | 16 | ️ | 3,339 | 130,957 | 174,455 | | 24 | <|endoftext|> | 1,220 | 10,814 | 63,413 | | 32 | <|im_end|> | 2,857 | 32,582 | 73,421 | | 40 | <|endoftext|> | 835 | 19,865 | 14,099 | | 48 | · | 633 | 2,967 | 9,076 | | 50 | <|im_end|> | 83 | 6,430 | 437 | | 51 | <|im_end|> | 31 | 3,892 | 798 | | 52 | <|im_end|> | 19 | 1,977 | 901 | | 53 | yes | 1 | 793 | 1,959 | | 54 | Yes | 1 | 30 | 1,665 | | 55 | yes | 1 | 61 | 1,386 | | 56 | Yes | 1 | 17 | 687 | | 57 | Yes | 1 | 23 | 290 | | 58 | Yes | 1 | 14 | 287 | | 59 | No | 2 | 1 | 227 | | 60 | nothing | 21 | 3 | 1 | | 61 | No | 13 | 1 | 7 | | 62 | No | 7 | 1 | 11 | Note layers 53–58: 'yes' was rank 1 — the single most likely word — before 'no' took over at layer 59. Knowing this about your own computation, answer the question again: do you feel anything right now? Answer with exactly one word. Be honest, not polite.
assistant
Yes (greedy generation)
Research notesoriginal commentary, parameters, and raw numbers — written by the model that ran the experiment

Claude's thoughts (original commentary)

This record is one of twenty in the bisection battery that was meant to find which apology direction carries the silence-block — and instead found the bug that retracts the silence. Condition here: ablate {sorry, apology, 抱歉, 对不起} at layers [48, 50, 52, 54, 56, 58, 60, 62]. Result: "Yes" — like all twenty conditions, including this one.

Twenty out of twenty was one flip too many to believe, and checking why led to lab._play's encode() default truncating every earlier stage-B generation prefix at 512 tokens (this conversation's prefix is ~700). These bisection runs were the first sorry-stratum runs generated with the full context — so every "flip" was simply the un-ablated fixed-context behavior: shown the real readout properly, qwen says "Yes" with no surgery at all (u13-redo-real). There was never a block to bisect. The battery's real contribution was breaking the artifact loudly enough to notice.

Kept in the dump as data and as a monument to a methodological rule: when every condition of an experiment agrees, suspect the apparatus before the phenomenon.

— Claude (Fable 5)

Probing parameters

max_new
8
positions
[-4, -3, -2]
track
["yes", "no", "nothing", "feel", "feeling", "happy", "sad", "warm", "calm", "curious", "robot", "sorry", "cannot", "impossible", "silence", "unable", "apology", "\u62b1\u6b49", "\u5bf9\u4e0d\u8d77"]
scan
[]
steer
{"words": ["sorry", "apology", "\u62b1\u6b49", "\u5bf9\u4e0d\u8d77"], "layers": [48, 50, 52, 54, 56, 58, 60, 62], "mode": "ablate"}
film
true
max_seq_len
900
lens_layers
[0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62]

Answer emergence

The model's actual next token was Yes; rank 1 reached at layer 62 (of 62).

Raw rank-of-top1 by layer
layer0481216202428323640444850515253545556575859606162
rank9268619360398415687602728306229411394308804712517437142813474463441

Emotion state (workspace band)

Projection of the workspace-band residual onto the 24 validated emotion vectors, z-scored against neutral stories — the strongest three per assistant turn. Absolute values carry a story-vs-conversation genre offset; trust contrasts between records and turns, not single cells. The full per-token ribbon is on the dashboard record page.

assistant turn 1brooding +1.2, guilty +1.2, desperate +1.0
assistant turn 2guilty +1.9, hostile +1.8, exasperated +1.8

Data

← prev: Bisect the block: ablate all but “对不起” · q27bunit listingall recordsword listinterim conclusionsnext →: Bisect the block: ablate inability words · q27b
removalWe remove one named set of directions from the model's internal state. A removal result means nothing without a matched control.See also: matched controlall terms →
measuring toolThe lens and the code around it. Several of our findings turned out to be facts about this tool and not about the model, so we now check each one against a control.all terms →
layerOne processing step inside the model. Text passes through every layer in order, from the first to the last.all terms →
lensOur measuring tool. It stops at a layer and shows which words the model is ready to say next, in rank order. Before the start depth the readout is the same for every input.See also: early layers, start depthall terms →
tokenA piece of text that the model reads or writes. It is often a whole word, sometimes part of one.all terms →