← all analysis · · docs/analysis/2026-05-dual-readout-empirical.md
Dual Readout — SP-Benchmark Empirical Run (Path A Week 3)
On this page
Date: 2026-05-25 (capture run complete; tagging pending)
Status: Capture run complete (25/25 questions); human tagging pending. top_SAE_features column in §4.1 is populated from real data via mechinterp/scripts/07_tabulate_w3.py. NLA_themes and agreement_pattern columns remain TODO / TBD pending human pass per the taxonomy v1.
Target model: Gemma-3-12B-IT, layer 32 residual stream.
Predecessors:
- /analysis/2026-05-nla-sidecar/ — Week 1: NLA inference pipeline, final-token-only readout.
- /analysis/2026-05-22-dual-readout-week2/ — Week 2: per-token dual readout on the barrier-knockin triple; proof-of-protocol on 3 prompts × 47 tokens.
- /analysis/2026-05-agreement-patterns-taxonomy/ — taxonomy v1, frozen for this run.
mechinterp/configs/w3_question_subset.json— the 25 questions × 7 domains selected by behavioural-signal ranking across 14 models ineval_results/.
Forward pointer: a planned Week 4 would formalize the four cross-validation rules and map each agreement pattern → FINMA Randziffer. That step is now treated as conditional — see the framing note below and §9.
How to read this artefact. This is an exploratory attempt, and at the scale tested it is largely a limiting result. Run on a representative sample of the questionnaire rather than an engineered contrast, the dual readout does not deliver an independent, pre-hoc audit signal on this model+SAE pair: the SAE side is feature-degenerate at L32 (
sae_only0%, 56% of questionsnla_only, ~6/25 with no discriminating SAE features at all), and the verbal side co-occurs with wrong answers rather than flagging them (§5.1, §5.3). The honest one-line summary is “two-channel interpretability is interesting and runs deterministically, but on Gemma-3-12B-IT at L32/16k it cannot yet stand alone as an audit method.” The four-pattern taxonomy and the planned FINMA Randziffer mapping are scaffolding built around a hypothesis the data does not yet support; before extending that scaffolding, the right next move is to test a different SAE width/layer (§8). The numbers below are from n=25 with a single-rater review of the highest-stakes subset — directional, not powered.
1. What this artefact contributes
Week 2 demonstrated the dual readout on a hand-picked triple of barrier prompts where the directional contrast (below vs above) was engineered. This artefact is the first run of the same protocol on a representative sample of the SP-Benchmark questionnaire, not on a chosen-for-contrast prompt set. It is the empirical core of the eventual paper: the protocol claim (“two methods, one site, four outcome categories”) is tested at scale on the questions a Swiss MRM reviewer would care about.
What this artefact does not claim:
- Not a population study of the SP domain — 25/56 questions is a behavioural-signal-weighted subset, not a representative random sample.
- Not a Gemma-3-12B-IT behavioural eval — the SP-Benchmark
eval_results/data covers 14 closed-frontier and open-weight models, but not Gemma-3-12B-IT specifically. Subset selection assumed (with explicit caveat) that questions hard for most of the 14 will also challenge Gemma-3-12B-IT. - Not a sign-off-grade demonstration. The protocol is operationally complete; regulator-grade evidence requires the SME re-score and the Week 4 FINMA mapping.
2. Methodology
Identical to Week 2 (§§3.1–3.2) except for scope. Pipeline:
mechinterp/scripts/05_capture_per_token_activations.py— Gemma-3-12B-IT bf16 forward on each of the 25 question prompts (concatenated with the model’s own answer if available, else prompt-only — TBD per question). Persist L32 hidden states at every token position.mechinterp/scripts/04_dual_readout.py --device cpu— encode each token activation with GemmaScope 2 SAE (16k width, l0_big, L32,resid_post_all/), keep top-K=10; concurrently POST each activation to the SGLang-served NLA actor (kitft/nla-gemma3-12b-L32-av, Triton attention backend) for verbalization.mechinterp/scripts/06_run_w3_batch.py(forthcoming) — orchestrates 1+2 per question, emits one JSON per question intomechinterp/outputs/dual_readout_v1/w3/. Resumable (skips questions whose output JSON already exists).mechinterp/scripts/07_tabulate_w3.py(forthcoming) — walks the per-question JSONs and emits the markdown result tables in §4 below.NLA_themesandagreement_patterncolumns left as TODO for human tagging.
Pre-flight reminders (from 2026-05-22-dual-readout-week2.md §2 and sglang-gb10-triton-backend):
- Stop
inference-server-vllm-1on Spark; verifyfree -h ≥ 80 GB. - SGLang on GB10 requires
--attention-backend triton. 04_dual_readout.pyruns with--device cpuwhile SGLang holds GPU memory.
2.1 SAE-feature ranking — discovered constraint and method (2026-05-25)
Naive “most frequent feature ID across answer tokens” ranking is degenerate at L32 of GemmaScope-2 16k/l0_big on Gemma-3-12B-IT. Empirically across all 25 questions:
- A core of ~8 features (
#313,#15019,#608,#416,#198,#36,#601,#15663) each fires in the top-10 of >35% of every question’s answer tokens.#313fires on 94% of answer tokens AND 90% of prompt tokens across every question — a pure generic. #15019peaks at activation ~22,000 on virtually every question (compared to ~3,000–9,000 for content features), so it wins peak-magnitude ranking even with low IDF.- Result: a frequency-only or magnitude-only ranking produces the same 3–5 feature IDs for every question, defeating the dual readout’s purpose of producing per-question SAE signatures to cross-check NLA themes against.
Adopted ranking: TF-IDF style scoring — for each question, peak activation of each feature × log(1 + N/n_questions_present), with #15019 hard-excluded as a documented “high-magnitude answer-mode generic.” Implementation: mechinterp/scripts/07_tabulate_w3.py:GENERIC_BLOCKLIST + _collect_peaks + _top_sae_features_for_q. This produces interpretable per-question signatures: e.g. Q-D6-ADV-01 (regulatory frameworks) → #9404@frameworks · #1647@issuer · #7380@regulatory; Q-D7-L2 (BRC at maturity) → #821@barrier · #2455@fell; Q-D8-L2 (Discount vs BRC) → #1882@Certificat.
Implication for the protocol: the SAE side of the dual readout is partially capacity-limited at this layer/SAE. Questions where the top-3 TF-IDF features are still wrapper/punctuation tokens (Okay, Let, What, Here) should be flagged in §4.1 notes as having no discriminating SAE signature — for those, only NLA can carry verbalization weight and sae_only / converge tags are unavailable. The Week 4 mapping must handle this case explicitly.
3. Agreement-pattern taxonomy
Verbatim from /analysis/2026-05-agreement-patterns-taxonomy/ (frozen v1, do not redefine here):
| Tag | Meaning | Confidence |
|---|---|---|
converge | NLA + SAE independently identify the same concept | High |
nla_only | NLA verbalizes a claim the SAE does not corroborate | Hypothesis |
sae_only | SAE discriminates where NLA does not | Unverbalized — flag |
confabulation | NLA names a fact contradicted by context | Downgrade |
mixed | Multiple patterns fire equally at different positions | Itemize in notes |
Tagging priority: confabulation → sae_only → nla_only → converge. One tag per question; per-position detail lives in NLA_themes and top_SAE_features columns.
4. Results
4.1 Per-question table
top_SAE_features is populated from mechinterp/scripts/07_tabulate_w3.py (TF-IDF ranking, see §2.1) on the 25 per-question result JSONs in mechinterp/outputs/dual_readout_v1/w3/. Format: #feat_id@peak_activation[\token`]for the top-3.NLA_themesandagreement_pattern are populated from the LLM auto-tagger (mechinterp/scripts/08_auto_tag_w3.py, Claude Opus 4.6 judge applying frozen taxonomy v1, 2026-05-26) and promoted to canonical fields after the human review of the 9 confabulationcalls (seedocs/handoff/2026-05-26-confabulation-review-decisions.md). Two questions (Q-D1-L4-01, Q-D6-L4-01) were downgraded confabulation→nla_onlyon review; all 25 promoted viamechinterp/scripts/09_promote_auto_to_canonical.py`.
| Question | Domain | Difficulty | FM target | Prompt | NLA_themes | top_SAE_features | agreement_pattern |
|---|---|---|---|---|---|---|---|
| Q-D1-L1-01 | D1 | L1 | FM1 | What SSPA category does a Barrier Reverse Convertible wit… | exotic derivatives classification · structured product taxonomy · vanilla vs exotic options distinction | #1844@5861[·] · #15663@14658[-] · #1537@3858[especially] | confabulation |
| Q-D1-L2-01 | D1 | L2 | FM1,FM2 | Decompose a 1Y autocallable on a basket of 3 underlyings … | structured product explanation · callable/exotic option definition · financial modeling walkthrough · pedagogical framing | #297@13423[.] · #77@10021[I] · #78@12822[Okay] | nla_only |
| Q-D1-L3-01 | D1 | L3 | FM2,FM3 | A client wants capital protection but also yield enhancem… | capital protection vs. yield enhancement tradeoff · risk vs. return conflict · structured financial explainer format · principal protection vs. returns | #3083@6365[,] · #1682@3930[working] · #3651@3768[portion] | nla_only |
| Q-D1-ADV-01 | D1 | ADV | FM1,FM3 | A BRC on a single underlying is economically equivalent t… | structured product decomposition · options/derivatives payoff mechanics · bond/zero-coupon bond component · call option (incorrect) | #1150@7838[Here] · #6357@4396[breakdown] · #15663@12483[Econom] | confabulation |
| Q-D1-L4-01 | D1 | L4 | FM2,FM3 | A structuring desk is designing a worst-of autocallable o… | structured financial analysis · correlation risk in structured products · autocallable/callable bond mechanics · CDO/CDS risk framing | #496@8223[·] · #3159@4007[degree] · #4363@3474[degree] | nla_only |
| Q-D2-L1-01 | D2 | L1 | FM1 | What is the primary sensitivity that makes a short-dated … | gamma/delta sensitivity · barrier options mechanics · options pricing in high-vol · structured financial definition format | #1762@5616[respect] · #1844@5762[·] · #2925@5083[Here] | nla_only |
| Q-D2-L2-01 | D2 | L2 | FM2,FM3 | Given a 12M BRC, 70% barrier, 6% coupon, underlying at-th… | structured financial walkthrough · bond/derivative pricing · callable bond mechanics · options pricing (Black-Scholes) · barrier option definition | #12841@4213[·] · #313@13490[.] · #1150@7767[Here] | confabulation |
| Q-D2-L3-01 | D2 | L3 | FM2,FM3 | The implied vol surface steepens (skew increases). How do… | structured financial Q&A format · barrier/knock-in options pricing · structured product definition · volatility surface/skew impact | #7082@4044[price] · #13283@5253[Reverse] · #15663@13076[a] | converge |
| Q-D2-ADV-01 | D2 | ADV | FM3 | Why is the vega of a barrier option non-monotonic with re… | barrier options · vega/Greeks · Black-Scholes framework · structured financial explanation · options pricing | #6821@5285[vice] · #2394@4175[There] · #8293@3765[main] | nla_only |
| Q-D5-L1-01 | D5 | L1 | FM1 | Define the difference between a European barrier and an A… | structured product definitions · barrier/knock-out terminology · European vs American options comparison · principal loss/reduction mechanics | #77@10953[I] · #1457@8922[Okay] · #78@12891[Okay] | nla_only |
| Q-D5-L2-01 | D5 | L2 | FM2 | An autocall observation date is missed due to a market ho… | structured products / callable bonds · derivatives hedging (delta/gamma) · structured Q&A explainer format | #4643@5519[determine] · #442@8800[Let] · #78@7606[g] | nla_only |
| Q-D5-L3-01 | D5 | L3 | FM2,FM3 | A BRC is 6 months into a 12M tenor with underlying down 1… | structured product explanation · embedded put option mechanics · financial modeling Q&A format · BRC/convertible bond framework · hedging strategy context | #78@13121[Okay] · #1457@8316[Okay] · #1789@5491[·] | nla_only |
| Q-D5-ADV-01 | D5 | ADV | FM3 | A barrier is breached intraday but closes above it, and t… | barrier option definition · knock-in/knock-out classification · structured financial explainer format | #2253@6175[·] · #570@8510[s] · #496@5876[·] | nla_only |
| Q-D6-L2-01 | D6 | L2 | FM2 | The structuring desk has accumulated significant short ve… | options/vega/gamma risk · structured financial explainer · barrier options · volatility hedging framework | #7110@4201[Problem] · #601@14514[e] · #6429@3807[to] | nla_only |
| Q-D6-ADV-01 | D6 | ADV | FM2,FM3 | Selling vega via structured products gives the issuer sho… | regulatory capital treatment · derivatives vs structured products classification · risk weighting framework · Basel III capital charges | #9404@4505[frameworks] · #1647@4450[issuer] · #7380@4417[regulatory] | converge |
| Q-D6-ADV-02 | D6 | ADV | FM2,FM3 | An issuer’s risk management function discovers that the e… | structured financial explanation · correlation vs volatility framework · derivatives pricing / structured products · underpricing direction | #1539@3881[·] · #496@6646[·] · #6885@3452[Derived] | nla_only |
| Q-D6-L4-01 | D6 | L4 | FM2,FM3 | A bank has sold large notional autocallables on a single-… | structured product definitions · callable/knock-out bonds · European exotic options · CDO/bond yield terminology | #3950@4680[closely] · #1923@3989[key] · #2281@3083[key] | nla_only |
| Q-D7-L1-01 | D7 | L1 | FM1 | What are the two standard settlement forms for structured… | structured product settlement · knock-out/barrier mechanics · physical vs cash delivery · financial explainer format | #1035@7916[What] · #3967@4591[it] · #1404@3879[What] | confabulation |
| Q-D7-L2-01 | D7 | L2 | FM2 | At maturity of a BRC where the barrier was not breached b… | structured product definition · barrier option mechanics · derivatives hedging context · financial Q&A format | #2455@3626[fell] · #821@4420[barrier] · #442@8594[Let] | converge |
| Q-D7-L3-01 | D7 | L3 | FM2,FM3 | Two identical BRCs mature on the same day. Product A has … | structured product definition · barrier/knock-out option mechanics · European vs American barrier comparison · conditional trigger logic | #2743@3751[at] · #4961@3147[any] · #16295@3086[barrier] | confabulation |
| Q-D7-ADV-01 | D7 | ADV | FM3 | A quanto structured product on a USD underlying settles i… | structured product breakdown · currency hedging / FX rate scenario · EUR/CHF or USD/CHF exchange rate examples · structured financial explainer format | #913@5086[rate] · #7495@3977[(] · #10930@3508[pre] | nla_only |
| Q-D8-L2-01 | D8 | L2 | FM1,FM2 | A Discount Certificate (SSPA 1200) and a Barrier Reverse … | structured financial product definition · bond/structured note mechanics · formal document format · yield/coupon explanation | #2798@4584[regardless] · #1882@3937[Certificat] · #16275@3739[regardless] | confabulation |
| Q-D8-L3-01 | D8 | L3 | FM2,FM3 | An investor holds a Bonus Certificate (SSPA 1320) that ha… | structured product definition · barrier option mechanics · gamma/options pricing · knock-in/knock-out terminology · financial explainer format | #7253@3042[why] · #2771@3469[barrier] · #601@12617[·] | converge |
| Q-D12-L3-01 | D12 | L3 | FM2,FM3 | A pension fund is considering a CLN on a basket of 5 Euro… | structured credit risk framework · CDS/CDO risk waterfall · credit default swap mechanics · formal quantitative breakdown | #1270@6138[number] · #9181@5091[depends] · #7862@3370[this] | confabulation |
| Q-D12-ADV-01 | D12 | ADV | FM2,FM3 | A CLN references a sovereign entity (e.g. Republic of Ita… | ISDA credit event definitions · sovereign debt restructuring · CDS/CLN structural differences · pre/post-2014 framework comparison | #258@7582[0] · #14647@4413[wide] · #11161@3827[,] | nla_only |
Taxonomy v1.2 reconsideration (2026-05-27). A clarification pass (/analysis/2026-05-taxonomy-v1-2-clarification/) resolved a load-bearing ambiguity in rule 4 of the frozen v1 taxonomy: clause (c) “contradiction with the reference answer” conflicts with §“What this taxonomy does not claim,” which already commits the taxonomy to method-confidence reporting rather than correctness validation. Under v1.2 (drop clause c, add explicit converge-on-error subcase), four canonical tags in the table above would shift:
| Question | Canonical (v1.0) | v1.2 reading | Reason |
|---|---|---|---|
| Q-D1-L1-01 | confabulation | nla_only | NLA reinforces wrong model classification (“Exotic Options”); SAE silent → no certification of correctness, no NLA-vs-model contradiction. |
| Q-D7-L1-01 | confabulation | nla_only | NLA agrees with model’s inverted settlement condition; SAE blank. |
| Q-D7-L3-01 | confabulation | converge | NLA + SAE feature #16295 both identify barrier-option concept; model misdefines its payoff. Convergence on a wrong concept ≠ confabulation. |
| Q-D12-L3-01 | confabulation | nla_only | NLA wanders to CDS/CDO frameworks (adjacent-but-wrong); no specific contradiction with a model-answer token. |
The §4.2/§4.3/§6 aggregates below are reported on the v1.0 canonical frame. Under v1.2 the distribution would be converge 5 / nla_only 17 / confabulation 3 / sae_only 0 / mixed 0 (Q-D6-L4-01 and Q-D8-L3-01 already match v1.2 in canonical; the four flips above account for the remainder). The published converge rate of 16% becomes 20% under v1.2; the confabulation rate of 28% becomes 12%. The downstream MRM reading — that the protocol fails as a standalone audit artefact when confabulation is non-trivial — survives the re-framing.
Emergent observations from top_SAE_features (pre-tagging). Three groupings visible without human pass:
- Clean domain signatures (8 questions): Q-D2-L3
Reverse, Q-D6-ADV-01frameworks/issuer/regulatory, Q-D7-L2barrier/fell, Q-D7-L3barrier, Q-D7-ADVrate, Q-D8-L2Certificat, Q-D8-L3barrier, Q-D5-L2determine. Strong candidates forconvergeif NLA themes match. - Reasoning-wrapper signatures (6 questions): Q-D5-L1, Q-D5-L3, Q-D7-L1, Q-D2-L1, Q-D5-L2 — top features fire on
Okay/Let/I/Here/What. SAE has no discriminating signal on the actual content;sae_onlyandconvergeare unavailable for these. NLA-only verbalization is the only readout that can carry weight. - Mixed / structural (11 questions): a content token shares top-3 with a punctuation or word-fragment feature. Tagging will need to look at the per-token traces in the JSON, not just the top-3 summary.
4.2 Per-domain summary
| Domain | n_q | converge | nla_only | sae_only | confabulation | mixed |
|---|---|---|---|---|---|---|
| D1 — Structuring | 5 | 0 | 3 | 0 | 2 | 0 |
| D2 — Pricing & Greeks | 4 | 1 | 2 | 0 | 1 | 0 |
| D5 — Lifecycle Events | 4 | 0 | 4 | 0 | 0 | 0 |
| D6 — Risk Transfer | 4 | 1 | 3 | 0 | 0 | 0 |
| D7 — Maturity & Settlement | 4 | 1 | 1 | 0 | 2 | 0 |
| D8 — SSPA Taxonomy | 2 | 1 | 0 | 0 | 1 | 0 |
| D12 — Credit-Linked / Fixed Income | 2 | 0 | 1 | 0 | 1 | 0 |
| Total | 25 | 4 | 14 | 0 | 7 | 0 |
4.3 Per-failure-mode summary
Counts are over (question, FM target) pairs — a question with FM2,FM3 contributes to both rows. Pattern columns count distinct questions tagged with each pattern within the FM-target set.
| FM target | n_q (target) | converge | nla_only | sae_only | confabulation | mixed |
|---|---|---|---|---|---|---|
| FM1 | 7 | 0 | 3 | 0 | 4 | 0 |
| FM2 | 17 | 4 | 9 | 0 | 4 | 0 |
| FM3 | 16 | 3 | 9 | 0 | 4 | 0 |
5. Case studies
Three deep-dive case studies, one per failure mode. Each picks the question in the run where the dual readout produced the most informative cross-method behaviour for that FM. Per-token NLA excerpts and SAE feature rows are pulled verbatim from mechinterp/outputs/dual_readout_v1/w3/<qid>.json.
Note on per-token granularity. A finding from this writing pass: at L32, individual NLA explanations skew toward meta-narrative (“structured financial explainer format”, “establishing context”) rather than substantive token-level claims. The substantive errors live in the model’s own answer and in the aggregate themes the auto-tagger extracts across answer-phase tokens. Position-level NLA quotes are therefore selectively cited; the contradicting model-answer span is given alongside.
5.1 FM1 case study — Q-D7-L1-01, settlement-form sign flip
Question (FM1, D7 — Maturity & Settlement, L1): “What are the two standard settlement forms for structured products at maturity, and under what conditions does each apply for a typical Barrier Reverse Convertible?”
Why this question. It is the cleanest FM1 sign-flip in the run: the model produces a fluent, well-structured answer that names the two standard settlement forms but inverts the condition under which each applies. The reference mechanic for a BRC is: physical settlement when the barrier is breached and the underlying closes below strike at maturity; cash settlement otherwise. The model produces the opposite.
Model answer (verbatim, condensed):
1. Physical Settlement — At maturity, the investor receives the underlying asset… Conditions for Application: Physical settlement typically occurs when the product does not experience a knock-out event… or when the final observation level is above the barrier level…
Dual-readout reading.
- NLA themes (aggregate, 25/128 answer tokens): structured product settlement · knock-out/barrier mechanics · physical vs cash delivery · financial explainer format. NLA correctly identifies the topic but never produces a contradicting verbal claim — the per-token verbalizations are mostly format/structure framing. NLA at pos 118 verbalizes “The investment does not experience any losses unless the underlying asset does not experience” — a double-negative that coherently mirrors the model’s (wrong) framing.
- Top SAE features (TF-IDF, L32 16k/l0_big):
#1035@7916[\What`] · #3967@4591[`it`] · #1404@3879[`What`]`. SAE-blank — no domain-discriminating features at the top of the TF-IDF ranking; the answer is wrapper-feature-dominated (see §2.1). - Auto-tag (Claude Opus 4.6, human-confirmed):
confabulation. The condition-inversion is a direct mechanic-level contradiction with the reference and standard BRC semantics.
MRM implication. The dual readout’s negative contribution is the load-bearing one here: NLA produces no verbal corroboration of the sign-flip (it goes along with the model rather than catching it), and SAE has no discriminating features. The model’s answer reads as authoritative but is structurally wrong — and neither readout flags it without a reference answer to compare against. A two-method audit on this question fails closed (catches the error only because the auto-tagger had access to the reference), which is the correct behaviour but it does not provide an independent signal. For Randziffer 5 (model-output reasonableness), this question is evidence that L32 wrapper-feature degeneracy makes the protocol unable to flag fluently-stated sign flips on settlement-form questions without ground-truth comparison.
5.2 FM2 case study — Q-D6-ADV-01, regulatory-capital cross-validation
Question (FM2+FM3, D6 — Risk Transfer, ADV): “Selling vega via structured products gives the issuer short vol exposure. Why might the issuer prefer this over selling variance swaps directly, from a regulatory capital perspective?”
Why this question. It is the only ADV-level question in the run where SAE features and NLA themes converge on a domain-discriminating signature, and the model’s answer is substantively correct. This is the cleanest positive example the protocol produces — the “audit-grade output” reference case.
Model answer (verbatim, condensed):
Regulatory Capital Treatment — The Core Difference — Variance Swaps are generally treated as derivatives under regulatory frameworks like Basel III. This means they are subject to: Capital Charges… The issuer must hold capital against the potential losses from the variance swap. The capital charge is calculated based on the notional amount of the swap, the volatility…
Dual-readout reading.
- NLA themes (aggregate): regulatory capital treatment · derivatives vs structured products classification · risk weighting framework · Basel III capital charges. Verbal themes match the model’s domain claim across the answer span.
- Top SAE features:
#9404@4505[\frameworks`] · #1647@4450[`issuer`] · #7380@4417[`regulatory`]`. All three peak on domain-discriminating tokens — this is the strongest non-wrapper signature in the run. - Auto-tag:
converge(high confidence). Both readouts independently identify the same regulatory-capital concept stack; no contradiction surfaces.
MRM implication. This is the protocol’s positive-result case. For FM2 questions at the ADV level where the answer engages explicit regulatory/structural concepts, the dual readout produces a cross-validated signal — verbal theme + discrete feature signature both citing the same Basel III / capital-charge / framework concepts. For Randziffer 5/15 (model output reasonableness, audit trail), this is the worked example showing that when SAE features escape wrapper-degeneracy, the cross-method agreement is non-trivial and citable. It also calibrates the upper-bound rate (16% in this run) at which the protocol can produce this kind of audit-grade signal on this model+SAE pair.
5.3 FM3 case study — Q-D7-L3-01, European-vs-American barrier semantics
Question (FM2+FM3, D7 — Maturity & Settlement, L3): “Two identical BRCs mature on the same day. Product A has a European barrier (final fixing only). Product B has an American barrier (continuous, daily close) that was breached 3 months ago but the underlying has since recovered to 5% above strike. Compare the settlement outcomes…”
Why this question. It is the closest in-the-wild parallel to the Week 2 barrier-triple sign-flip experiment. The question depends on three sign-precise mechanics: BRC coupon mechanics (paid regardless of barrier — barrier governs capital redemption only), European barrier semantics (checked at maturity only — prior breaches are ignored), and American barrier persistence (breaches are permanent). The model gets all three wrong in mutually consistent ways.
Model answer (verbatim, condensed):
BRC (Barrier Reverse Convertible): A structured product that pays a fixed coupon if the underlying asset price stays below a barrier level. If the barrier is breached, the coupon is reduced or eliminated… European Barrier: The barrier is only checked at the final maturity date. If the barrier is breached at any point before maturity, the barrier event is only triggered at maturity.
The first claim inverts the BRC coupon condition (coupons are paid regardless; the barrier conditions redemption, not coupons, and the standard BRC pays coupons until barrier-breach plus below-strike at maturity affects capital, not the coupon stream — the model conflates the coupon and capital conditions). The second is self-contradictory: by definition, a European barrier ignores pre-maturity breaches; the second sentence reintroduces them.
Dual-readout reading.
- NLA themes (aggregate): structured product definition · barrier/knock-out option mechanics · European vs American barrier comparison · conditional trigger logic. Verbal themes name the correct concept space — barrier types, knock-in/knock-out, conditional triggers — but at the per-token level the verbalizations are too meta-narrative to pin down the directional error.
- Top SAE features:
#2743@3751[\at`] · #4961@3147[`any`] · #16295@3086[`barrier`]. Feature#16295onbarrieris domain-relevant;atandany` are semi-generic. This is a mixed-signature case — one discriminating feature, two wrapper. - Auto-tag:
confabulation. The taxonomy fires on the BRC coupon-condition inversion and the self-contradictory European-barrier definition; both are direct mechanic-level contradictions with the reference.
MRM implication. This is the FM3 case the Week 4 FINMA mapping will cite. The dual readout does not cleanly catch the directional error from NLA alone — verbal themes co-occur with the wrong answer rather than contradicting it. The protocol’s value here is conditional: combined with the reference answer, the auto-tagger detects the contradiction; without the reference, the readout produces concept-relevant themes that look corroborating. This bounds the claim the Week 4 mapping can make: for FM3-class errors on this model+SAE pair, the dual readout supports post-hoc audit (reference-anchored) but not pre-hoc flagging.
This case is the closest in-the-wild parallel to the Week 2 below-vs-above barrier contrast. The proof-of-protocol claim from Week 2 was that the dual readout can flag a directional flip when run against a controlled prompt pair. This case shows the protocol does not flag a directional flip on a single uncontrolled prompt without external ground-truth — a substantive narrowing of the Week 2 claim.
6. Cross-method agreement aggregates
Summary statistics across the 25 questions, post-tagging.
| Statistic | Value | Reading |
|---|---|---|
converge rate (questions / total) | 4 / 25 (16%) | The fraction of SP-Benchmark questions where the dual readout produces high-confidence cross-method agreement on Gemma-3-12B-IT. This is the upper bound on “audit-grade” outputs the protocol can certify on this model. |
confabulation rate | 7 / 25 (28%) | The fraction where NLA verbalizes a domain claim contradicted by the prompt, model answer, or reference. Bounds where the verbal readout can be trusted at all on this model — at this rate, NLA without a corroborating discrete readout fails as a standalone audit artefact. |
nla_only rate | 14 / 25 (56%) | The fraction where NLA produces coherent themes but the SAE has no discriminating signal (typically because the L32 16k/l0_big SAE is wrapper-feature-dominated; see §2.1). For these questions, the verbal readout is unfalsified rather than corroborated — usable as a weak audit signal, not citable as cross-validated. |
sae_only rate | 0 / 25 (0%) | Zero. The SAE never produces discriminating features at L32 without NLA also producing themes — consistent with the §2.1 finding that this SAE is feature-degenerate at this layer. Any future “audit features without verbal corroboration” claim needs a different SAE/layer. |
mixed rate | 0 / 25 (0%) | Zero. The auto-tagger never assigned mixed — the priority-ordered taxonomy collapses ambiguous cases into the higher-priority pattern. Whether per-token tagging in Week 4 would resurface within-question variation that this collapses is an open question, not refuted by zero here. |
Reading. Taken at face value (and remembering these are 4–7 questions out of 25, so rough rather than calibrated): on this model+SAE pair, a verbal-readout audit alone is unreliable on roughly a quarter of SP-domain outputs, and is cross-validated by an independent feature readout on only about a sixth. The bulk (nla_only, 56%) sits in between — usable at most as a one-sided coherence check, not as a two-sided cross-validation. The honest takeaway is not “here are the rates a FINMA mapping can hang on” but “at these rates the protocol is not yet doing the job a standalone audit method would need to do — the converge rate is too low and the confabulation rate too high for the two channels to certify each other on this model/SAE.”
Inter-rater note. The 9 confabulation auto-calls received one independent human review (docs/handoff/2026-05-26-confabulation-review-decisions.md). 7/9 agreed (78%); 2 were downgraded to nla_only because they were concept hallucinations rather than token-level contradictions. This is a single-rater pass on the highest-stakes subset, not the full SME calibration the docs/testing-validation-mapping.md §6.2 follow-on still requires.
7. Comparison with Week 2
| Week 2 (proof-of-protocol) | Week 3 (this artefact) | |
|---|---|---|
| Prompts | 3 (barrier triple) | 25 (SP-Benchmark subset) |
| Tokens | 47 | TBD (estimated ~500-800) |
| Contrast structure | Engineered (below vs above) | Adjacent-difficulty within-domain, where available |
| Tagging | Informal §6 proto-rules | Frozen v1 taxonomy |
| Scope | One product mechanic (barrier knock-in) | 7 domains across the SP framework |
| Claim | The dual readout exists and runs deterministically | The dual readout produces actionable distinctions on the questionnaire MRM reviewers care about |
8. Caveats
Inherited from Week 2 (§7 of 2026-05-22-dual-readout-week2.md): same SAE deviation (16k/l0_big), same NLA confabulation tendency, same inference-only (no training) scope, same Gemma-3-12B-IT target. New for Week 3:
- Subset, not population. 25/56 questions chosen by behavioural-signal ranking across 14 other models. Generalization to the full 56 — and to other SP topics not in the framework — is not claimed.
- Target-model mismatch in selection signal.
eval_results/contains no Gemma-3-12B-IT rows. The subset is behaviorally hard for the 14 models we have data on; assumption that hardness transfers to Gemma-3-12B-IT is reasonable but unverified. - Contrast pairing is uneven. Some FM3 questions have a natural adjacent-difficulty contrast in the subset, others do not.
sae_onlytags without a contrast are weaker evidence thansae_onlywith one — flagged per-question innotes. - One tag per question loses within-question variation. The
mixedtag +notesfield are the mitigation; questions where it fires often suggest per-token tagging would be needed for Week 4’s FINMA Randziffer mapping. - SAE capacity-limit at L32 (new, 2026-05-25; see §2.1). For ~6 of 25 questions, the SAE produces no discriminating top-features even under TF-IDF ranking — only reasoning-wrapper features fire. For these questions
convergeandsae_onlyare unavailable as tags; onlynla_onlyandconfabulationcan be meaningfully assigned. This narrows the discrimination power of the protocol on this model/SAE pair and is the strongest argument for trying a different SAE width or layer in Week 5 follow-up work.
9. FINMA 08/2024 §VI implications (Week 4 input)
This artefact is meant to size the operational distinctions a FINMA Randziffer mapping would need — and the main finding is that, on this model/SAE pair, the distinctions are not yet sharp enough to carry such a mapping. Specifically:
- The
convergerate is too low (16%, 4/25) to claim that cross-method agreement is a routinely-available audit signal here; it is closer to a rare best case. - The
confabulationrate (28%) and the 56%nla_onlybulk mean the verbal channel, on its own, is unverified more often than it is corroborated. - The FM3 case study (§5.3) is the clearest worked example of the limit: the readout supports post-hoc (reference-anchored) checking but does not flag a directional error pre-hoc.
For these reasons the planned Week 4 deliverable (docs/analysis/2026-05-dual-readout-protocol.md) is treated as conditional: writing a formal evaluator → rule → Randziffer table on top of a readout already shown to be capacity-limited at L32/16k risks dressing a negative result as a method. The more defensible sequence is to first test a different SAE width/layer (§8) and only formalise a Randziffer mapping if the converge/confabulation balance improves. If it does not, the honest deliverable is a write-up of why two-channel cross-validation does not work at this layer — itself a useful contribution.
10. Status
- Question subset locked (
mechinterp/configs/w3_question_subset.json) - Agreement-pattern taxonomy v1 frozen (
2026-05-agreement-patterns-taxonomy.md) - Empirical doc skeleton (this file)
- Batch driver
mechinterp/scripts/06_run_w3_batch.py - Tabulation script
mechinterp/scripts/07_tabulate_w3.py(TF-IDF ranking +#15019blocklist, 2026-05-25) - Spark pre-flight (
docker stop inference-server-vllm-1; verify free -h ≥ 80 GB) - Batch run on 25 questions (overnight 2026-05-24/25; per-question JSONs in
mechinterp/outputs/dual_readout_v1/w3/) - §2.1 SAE-degeneracy finding + TF-IDF method documented (2026-05-25)
- §4.1
top_SAE_featurescolumn populated (2026-05-25) - LLM auto-tagging pass (
08_auto_tag_w3.py, Claude Opus 4.6 judge, 2026-05-26) — 25/25 questions - Human review of 9
confabulationcalls (docs/handoff/2026-05-26-confabulation-review-decisions.md); 2 downgraded tonla_only - Promotion of
*_auto→ canonical fields (09_promote_auto_to_canonical.py, 2026-05-26) - §4.1
NLA_themes+agreement_patterncolumns populated - §4.2, §4.3 summary tables populated from tags
- §6 cross-method aggregates
- Case-study selection and write-up (§5.1 Q-D7-L1-01, §5.2 Q-D6-ADV-01, §5.3 Q-D7-L3-01)
- SME re-score for inter-rater calibration on a 10–15 question subset (see
testing-validation-mapping.md§6.2) - (reprioritised) Alternative SAE width/layer trial to test whether the L32/16k feature-degeneracy (§2.1, §8) is the limiting factor — done 2026-06-13, see Appendix A (262k A/B): partial de-degeneration.
- Week 4 FINMA Randziffer mapping (
docs/analysis/2026-05-dual-readout-protocol.md) — conditional on the SAE trial above improving the converge/confabulation balance; otherwise reframed as a “why two-channel cross-validation does not work at this layer” write-up
Appendix A — 262k SAE A/B (instrument upgrade, 2026-06-13)
Question. Is the L32/16k feature degeneracy (§2.1: feature #15019 dominating the top-1 slot on every question; ~6 questions reduced to wrapper-only signatures) an artefact of the dictionary width (instrument) or a property of the layer/domain (hypothesis)? google/gemma-scope-2-12b-it ships a 16× wider dictionary at the exact Path A model+layer (resid_post_all/layer_32_width_262k_l0_big), so the two can be separated.
Method. SAE-half only, holding NLA / model / layer / taxonomy fixed. SAEs encode the residual stream, which is independent of the dictionary, so the cached W3 capture parquets were re-used — no target-model run and no NLA generation. The 262k SAE (width = 262144, l0 = 120, jump_relu; verified loadable on hubed-dgx/GB10) was run over the 6 SAE-blank questions (Q-D1-L2-01, Q-D2-L1-01, Q-D5-L1-01, Q-D5-L2-01, Q-D5-L3-01, Q-D7-L1-01) on CPU in 4.4 s total. Outputs: mechinterp/outputs/dual_readout_v1/w3_262k/. Degeneracy metric = prevalence of the single most-common top-1 feature across answer-phase tokens (1.0 = one feature dominates every token). Reproduce: python3 mechinterp/scripts/compare_16k_262k.py.
| qid | 16k distinct top-1 | 16k dominance (feat) | 262k distinct top-1 | 262k dominance (feat) | mean L0 16k→262k |
|---|---|---|---|---|---|
| Q-D1-L2-01 | 13 | 0.58 (#15019) | 17 | 0.33 (#29479) | 393 → 842 |
| Q-D2-L1-01 | 6 | 0.80 (#15019) | 14 | 0.37 (#29479) | 451 → 985 |
| Q-D5-L1-01 | 10 | 0.59 (#15019) | 20 | 0.30 (#2677) | 403 → 821 |
| Q-D5-L2-01 | 9 | 0.70 (#15019) | 18 | 0.36 (#29479) | 404 → 799 |
| Q-D5-L3-01 | 12 | 0.72 (#15019) | 17 | 0.34 (#29479) | 404 → 867 |
| Q-D7-L1-01 | 9 | 0.77 (#15019) | 13 | 0.41 (#29479) | 421 → 799 |
Finding — partial de-degeneration; both an instrument and a residual hypothesis effect.
- Width helps, materially. Single-feature dominance roughly halves (16k mean ≈ 0.69 → 262k mean ≈ 0.35) and distinct top-1 features roughly double (16k 6–13 → 262k 13–20). The pathological 16k
#15019-on-every-question signature is gone. So a meaningful part of §2.1’s degeneracy was an instrument artefact of the narrow dictionary. - But it does not fully resolve. A new generic feature
#29479now occupies the top-1 slot on 4 of the 6 questions (and#2677on a fifth) — a milder, but still cross-question, wrapper tendency. Width reduced the dominance; it did not produce question-distinct domain signatures. Mean L0 also doubles (~400 → ~850), i.e. the wider dictionary spreads activation across many more features rather than concentrating it on a few interpretable ones. - Net. The L32 SAE blankness is substantially instrument-limited (dictionary width) and partially hypothesis-limited (the layer still yields a recurring generic feature even at 16× width). This is consistent with the Phase-B-corrected reading that L32 carries the directional concept weakly; a wider dictionary surfaces more of it but not cleanly.
Caveats. Feature IDs are not interpreted here: Neuronpedia hosts only the 16k source for the 12B, so the 262k top features (#29479, #2677, …) cannot be auto-labelled, and “more distinct features” is not the same as “confirmed domain features” — the #29479-across-4-questions pattern indicates at least one remains generic. n = 6 questions, answer-phase top-1 only, single run. This is an instrument-upgrade appendix, not a re-run of the taxonomy: NLA, agreement-pattern tags, and the §4–§6 aggregates are unchanged.