The ANM framework
One response protocol: push a source, measure the state and the readout apart, and test which state is enough. Shown on physics, on AI workflows and on TEDDY’s workflow.
一套响应协议:推动一个源,分别测状态和读出,再检验哪个状态够用;用在物理、AI 工作流和 TEDDY 的工作流上。
- Colours
- ANM · retained state
- TEDDY
- measured protein
- B
- T
- myeloid
- NK
- pass
- failure
The idea
1.1 · The idea
A score says it failed, not where
Pipelines are usually judged by one final score. A wrong answer tells you something failed, not where: which input caused it, whether the information was lost in the carried state or ignored at the output, and whether the system is degraded or broken.
只看最终分数,只知道错了,不知道错在哪:是哪个输入,信息丢在中间状态还是读出没用上,是变差了还是已经坏了。
Sources
- Paper (8f8c7780) ·
sections/introduction.tex3–10, 20–25
1.2 · The idea
Push, follow, read, compare
ANM measures a response chain. Push one source by a known amount, measure separately how a candidate retained state and a declared output move (follow source → state, read source → output), and compare the output with a boundary declared in advance: ‘still works’ and the stricter ‘exactly right’. The push is an intervention, so the source → output response is interventional; that the output change passes through the state is a hypothesis the paper does not establish.
ANM 测的是一条响应链:给源一个已知大小的推动,分别测候选保留状态和声明的读出怎么变(源 → 状态,源 → 读出),再把读出和事先声明的边界(还能用 / 完全正确)比较。推动是干预,所以源 → 读出的响应是干预性的;但读出的变化经由该状态传递,论文只当作假设,没有证明。
Sources
- Paper (8f8c7780) ·
sections/introduction.tex20–25 (state and readout responses measured separately) - Paper (8f8c7780) ·
sections/protocol.tex65–74 - Paper (8f8c7780) ·
sections/conditions.tex1–31 (operating boundaries; nested readouts) - Paper (8f8c7780) ·
sections/introduction.tex121–122 (“the dashed state-to-readout relation is a hypothesis, not an established causal path”);sections/protocol.tex122 (“State measurement and causal intervention answer different questions”);sections/discussion.tex112–114 (causal mediation requires separate evidence)
1.3 · The idea
Forward: where lost. Inverse: is it enough?
Forward: if the state moves but the output stays flat, the information arrived and the readout does not use it, or cancels it. Inverse: if two inputs reach the same state but give different outputs, the state is missing something the output depends on. For a declared observer the same test also selects: within a candidate set declared in advance, keep the candidates with no such violation and take the one with the fewest states (4.3).
正向:状态动了、输出不动,说明信息到了,但读出没用上(或被抵消)。逆向:两个输入到了同一个状态却给出不同输出,说明状态漏了输出所依赖的东西。声明观测者之后,同一检验还能做选择:在事先声明的候选集合里,保留没有这种违例的候选,取状态数最少的那个(见 4.3)。
Sources
- Paper (8f8c7780) ·
sections/introduction.tex24–35 - Paper (8f8c7780) ·
sections/protocol.tex157–191 - Paper (8f8c7780) ·
appendix/theory.tex158–163 (a state change with no endpoint change can mean cancellation or robustness; an association is not mediation) - Paper (8f8c7780) ·
abstract.tex7–9 (resolved readout differences between histories assigned the same state constrain the representation);sections/worked_example.tex110–112 (selection keeps candidates with no observed same-state violation and chooses the fewest states)
The maths
2.1 · The maths
The response along the real run
Along the actual run, a small push at step t enters through Bt, is carried forward by each later step’s A, and is read at the end. The output change is the sum of every push, each carried to the end. No equilibrium needed.
沿着系统真实的运行轨迹,第 t 步的小推动经 B_t 注入,被之后每一步的 A 传下去,最后被读出。输出变化是所有推动各自传到终点后的和,不需要平衡态。
Sources
- Paper (8f8c7780) ·
sections/protocol.tex76–98 (finite-graph linear response; finite-window endpoint response) - Paper (8f8c7780) ·
sections/physics.tex84–117 (a stationary susceptibility is only the special case that needs closure and stability) - Paper (8f8c7780) ·
appendix/theory.tex89–102 (full tangent recursion, with the initial-history term)
2.2 · The maths
Two checks: linearity and nested readouts
Linearity is checked, not assumed: the slope measured with a push ε must match the slope with ε/2. The readouts are nested: ‘exactly right’ can only happen inside ‘still works’, so losing the first while keeping the second separates degraded from broken.
线性是检验出来的,不是假设的:用 ε 和 ε/2 测得的斜率必须一致。读出是嵌套的:“完全正确”只能发生在“还能用”之内,所以前者丢了而后者还在,就能区分“变差”和“坏了”。
Sources
- Paper (8f8c7780) ·
sections/protocol.tex113–115 (step refinement) - Paper (8f8c7780) ·
appendix/empirical.tex143–145, 191–196 (ε = 0.1 on baseline 0.5, ε/2 = 0.05; slopes must agree within 25%) - Paper (8f8c7780) ·
sections/conditions.tex11–31 (nested observables)
2.3 · The maths
A step is any real processing order
Step t can be clock time, an iteration, an evidence arrival or a network layer, if it is the real processing order. Memory, feedback and delay live in the state and in At. A made-up order biases results; our old panel order did.
步 t 可以是物理时间、迭代、证据到达或网络层,只要是真实的处理顺序;记忆、反馈、延迟都放进状态和 A_t。编造的顺序会带来偏差,旧桥接的面板顺序就是这样。
Sources
- Paper (8f8c7780) ·
sections/physics.tex47–57 (with delay, keep the history segment);sections/protocol.tex81–83 - ANM ·
active_neural_matter/field/finite_field_runner.py882 (every value is multiplied by the retention factor each tick) - teddy_mm ·
bridge_anm/export_cite_events.py36–47, branchfix/anm-bridge-corrections(all panel events at t = 0)
Physics
3.1 · Physicscalibration
Physics I: a delayed ring, measured vs theory
64 sites on a ring, each coupled to four neighbours with delay τ, are driven by a sine. The retained state must include the history. Over 13 delays, measured amplitude and phase stayed within 2.51×10⁻³ (relative) and 0.74° of theory: a calibration of the measurement.
64 个位点的环,每个与 4 个邻居以延迟 τ 耦合,受正弦驱动,保留状态必须包含历史。13 个延迟上,测得的幅度和相位与解析解相差不超过 2.51×10⁻³(相对)和 0.74°。这是对测量本身的校准。
Sources
- Paper (8f8c7780) ·
sections/physics.tex121–145, 199–202, table rows 230–231 - Paper (8f8c7780) ·
sections/physics.tex140–141;appendix/physical_measurements.tex25–30 (a = 1, K = 0.40, F = 0.25, Ω = 0.35, σ = 0.015, τ ∈ [0.43, 0.46]) - Paper (8f8c7780) ·
sections/physics.tex216–219 (maxima of 100-seed means over 13 delays, including finite-window estimator bias)
3.2 · Physics
Physics II: two flock readouts fail apart
256 particles align with neighbours and a field while angular noise η rises. Alignment within 30° of the field is first below one half at η = 0.35, polarization only at 0.60. Alignment fell first at all three tested tolerances; the readouts are not nested.
256 个粒子与邻居和外场对齐,角噪声 η 逐渐升高。30° 以内的对齐比例在 η=0.35 首次低于一半,极化到 0.60 才低于一半。三种测试容差下都是对齐先跌;两个读出不是嵌套的。
Sources
- Paper (8f8c7780) ·
sections/physics.tex274–321, 349–353 - Paper (8f8c7780) ·
sections/physics.tex279–284 (N = 256, box L = 8, field h = 0.6 at 0°) - Paper (8f8c7780) ·
appendix/physical_measurements.tex328–332 (tolerances 20°/30°/45° give 0.25/0.35/0.50 against 0.60 for polarization; the order can reverse near 45.5°)
AI workflows
4.1 · AI workflows
AI step 1: write the question down
First declare the observer: what is read, which answers are allowed, and the boundary. ‘Still works’ = an allowed answer cleared the bar; ‘exactly right’ = it matches the key. The key grades only after the readout and never enters the evidence.
先写下观察者:读什么、允许哪些答案、边界在哪里。“还能用”是有答案过了门槛,“完全正确”是答案与答案标准一致。答案标准只在读出之后打分,从不进入证据。
Sources
- ANM ·
active_neural_matter/field/finite_field_runner.py925–975 (the best action is the call if it clears the threshold, otherwise no call), 978–998 (verify: P_f, Q_f, r_f) - teddy_mm ·
bridge_anm/schemas/cite_lineage_finite_field_v0.json51–74 (no-leakage rule), 93–102 (observables, verifier) - Paper (8f8c7780) ·
appendix/history_decision.tex11–29
4.2 · AI workflows
AI step 2: build the typed event graph
Each record becomes a typed event (time, target answer, type, sign, value, provenance), admitted, repaired or rejected by a schema. Event nodes link to answer nodes; fixed updates retain and spread values at each step, and a separate model or program reads the resulting state. In the paper’s words, these graph dynamics are “prescribed and open-loop, without readout feedback”. States are specified from outside; no live multi-agent claim.
每条记录变成一个类型化事件(时间、目标答案、类型、符号、数值、来源),由模式接收、修复或拒绝。事件节点连到答案节点;固定的更新规则每一步保留一部分值并沿边扩散,再由另一个模型或程序读取所得状态。论文原文说这些图动力学 “prescribed and open-loop, without readout feedback”(预先规定、开环,读出不反馈)。状态由外部指定,不声称是在线多智能体形成的状态。
Sources
- ANM ·
active_neural_matter/field/finite_field_runner.py220–227 (signed amplitude), 234–353 (schema: admitted / repaired / rejected), 818–848 (graph weights), 851–900 (linear update) - Paper (8f8c7780) ·
sections/ai_evidence.tex4–17 (a model extracts events, a numerical graph retains them, separate model calls read a table derived from its state), 91–92 (“The dynamics are prescribed and open-loop, without readout feedback”);sections/cross_domain.tex64–68;sections/introduction.tex39–46 - Paper (8f8c7780) ·
sections/ai_evidence.tex62–75 (the graph study uses its own settings: α = 0.72, β = 0.45, four updates)
4.3 · AI workflows
AI step 3: test candidate states, then select one
The retained state is a candidate declared before the run; its choice is an experimental hypothesis, not established sufficiency. It is enough only if equal states always give equal readouts. With delay, two histories with the same present value but different pasts evolve differently, so the present value is not enough. A same-state violation shows what the state must separate.
For a declared observer the responses also select the state. Fix the readout, the pushes and the window. A candidate is rejected when identical states give resolved differences in output distributions. Then, within a candidate set declared in advance, the candidates with no observed same-state violation are kept, the one with the fewest states is selected, and it is fixed and validated on new comparisons. In the paper’s exact construction this gives the coarsest sufficient representation, 2 states. Limits: the candidate set is given, so this selects rather than discovers new variables, and such tests “constrain adequacy without uniquely identifying a missing variable”.
A model-based instance. The v2 draft has one model-based instance of this test, with the downstream model and its interface fixed. On recipient A only, 768 new calls (512 base + 256 control) reject a snapshot description: histories with the same snapshot but opposite routing differ by at least 0.8358 (largest probability difference). An association description chosen from declared candidates gets bounded support on four new histories and two continuation combinations: at most 0.0821, below the fixed margin 0.15. The broader development screen selected none, and the recipient-A scope was chosen after it. All 768 answers matched the reference, so support there coincides with the model answering correctly (our observation). The model is unchanged: this supports the analyst’s description, not a repair of the model.
The inverse loop, in the paper’s words. “Exactly equal retained states give a readout difference beyond measurement error” → “Reject sufficiency for these histories under the declared conditions” → “Separate the violating histories in a revised representation; test it with system and interface unchanged”. “Selection is within a supplied library, not discovery of a unique hidden variable”. In its broader development comparison “No candidate qualifies”; the restricted follow-up then gives each candidate its own outcome: the snapshot descriptions have rejected comparisons, every association-matched comparison has an upper bound below the margin, and “Full history has no matched-history comparison and remains uninformative”.
On TEDDY: E7 (registered, final). We registered the same three steps at TEDDY’s layer-11 cut, with the downstream component fixed (TEDDY’s layer 12, gene-mean pooling and our frozen head) and the same kind of rule (keep a candidate whose development differences stay within the tolerance; take the smallest); the third was not reached. The histories are exact mean-preserving state interventions. The declared library holds the layer-11 gene-mean, the gene-mean plus the six marker genes’ token states, and all token states. In the paper’s terms, the outcome is a rejection, as for its snapshot descriptions, together with a development comparison in which no candidate qualifies. Histories with the same layer-11 gene-mean gave readouts that differ beyond the tolerance on fresh site4 comparisons (median 0.125 [0.090, 0.161] of the measured NK–T gap, tolerance 0.05), and the marker-token augmentation was rejected too (0.122). No candidate passed in development, so no revised representation was validated. E7 →
保留状态是运行前声明的候选坐标,声明本身是实验假设,不等于充分。候选状态只有在“同一状态必给同一读出”时才够用。有延迟时,当前值相同但过去不同的两段历史会走向不同结果,所以只看当前值不够。一旦出现“同状态、不同读出”,就知道状态必须区分什么。
声明观测者之后,同样的响应还能选择保留状态:固定读出、推动和时间窗;同一状态下输出分布有可分辨差异的候选被否决;在事先声明的候选集合里,保留没有违例的候选,选出状态数最少的那个,固定后用新的比较验证。论文的精确构造由此得到最粗的充分表示,2 个状态。局限:候选集合是给定的,所以这是选择而不是发现新变量;这些检验“只约束充分性,不唯一确定缺失的变量”。
基于模型的实例:v2 草稿中有一项基于模型的此类检验,下游模型及其接口固定。仅针对接收者 A,768 次新调用(512 次基础 + 256 次对照)否决了快照描述:快照相同、路由相反的历史,最大概率差至少 0.8358。从声明候选中选出的关联描述,在四个新历史和两个后续组合上获得有界支持:至多 0.0821,低于固定容差 0.15。较广的开发筛选未选出任何候选,“仅接收者 A” 的范围在那之后确定。768 个回答全部答对,所以那里的“支持”与模型答对重合(我们的观察)。模型不变,支持的是分析者的描述,不是对模型的修复。
论文对逆向闭环的表述:若“完全相同的保留状态给出超出测量误差的读出差异”,就“在声明条件下否决这些历史的充分性”,再“用修订后的表示区分违反的历史,并在系统与接口不变的情况下检验”;选择只在给定的候选库内进行,不是发现唯一的隐藏变量;较广的开发比较中“没有候选合格”,限定后的后续比较再对每个候选分别给出结果:快照类描述有被否决的比较,每个关联匹配比较的上界都低于容差,全历史没有匹配历史的比较、无信息。TEDDY 上的 E7(预注册,已完成)在第 11 层切点、下游组件固定时按这三步、用同类规则(开发阶段差异不超过容差的候选保留,取最小者)预注册(第三步未进行):历史是精确的保均值状态干预;gene-mean 在新的 site4 比较上被否决(中位差异 0.125 [0.090, 0.161],容差 0.05),加六个标记基因 token 状态的候选也被否决(0.122);开发阶段没有候选通过,因此没有验证任何修订后的表示。
Sources
- Paper (8f8c7780) ·
sections/protocol.tex3–14, 157–191 - Paper (8f8c7780) ·
abstract.tex7–9 (resolved readout differences at the same assigned state constrain the representation);sections/introduction.tex23 (the choice of representation is an experimental hypothesis), 34–35 (tests constrain adequacy without uniquely identifying a missing variable), 95–96 (the exact routing construction identifies a sufficient association state);sections/worked_example.tex4–11 (select a revision from a specified candidate set, check it on new deterministic executions), 74 (the coarsest sufficient representation has two states), 110–112 (no observed same-state violation, fewest states) - teddy_mm ·
registration/addenda/E7.json(selection rule: the minimal retained candidate, ties by declared order) - Paper (8f8c7780) ·
appendix/theory.tex72–156 (retained-state criterion; delayed-history example 128–132), 189–199 (inverse use);sections/physics.tex59–72 (a present-value description omits a delayed response) - Paper (8f8c7780) ·
sections/inverse_model.tex3–10 (fixed downstream model; refinement changes only the description being tested), 42–48 (broader development comparison: no candidate qualifies), 53–56 (recipient A, chosen after the broader development observations), 68–78 (four new histories, two continuation combinations, 768 new calls), 138–150 (512/512 base and 256/256 control answers match the reference; bounds 0.0821 and 0.8358; margin 0.15), 152–158 (separate outcome per candidate), 160–165 (recipient A only; selection within a supplied library);sections/protocol.tex240–243 (the inverse-loop row);sections/introduction.tex96–98 (support for a recipient-specific readout selected after a broader comparison supported no candidate) - teddy_mm ·
docs/reports/V3_REGISTERED_RESULTS.md§ E7; numbers indocs/reports/v3_numbers.json(keysE7.*)
4.4 · AI workflows
AI step 4: measure the response
Push one event’s value up and down by ε, then by ε/2, and measure how far the state moved and how far the readout moved, separately. In the graph study, fresh model readouts changed in 9 of 12 directions; only 2 passed the step-halving check. The paper’s words: “Thus imposed state motion need not yield a resolved or step-consistent model response”; its graph dynamics are “prescribed and open-loop, without readout feedback”. What ANM outputs here is the response chain: which pushes move the state and which move the readout. That the readout change passes through the state is not established: “the dashed state-to-readout relation is a hypothesis, not an established causal path” (PR #16).
把一个事件的值上下各推 ε,再推 ε/2,分别测状态移动了多少、读出移动了多少。在图研究中,新鲜模型读出在 12 个方向里有 9 个发生变化,只有 2 个通过步长减半检验。论文原文:“Thus imposed state motion need not yield a resolved or step-consistent model response”(强加的状态移动不一定带来可分辨、步长一致的模型响应);其图动力学 “prescribed and open-loop, without readout feedback”(预先规定、开环,读出不反馈)。ANM 在这里输出的是响应链:哪些推动让状态动、哪些让读出动;读出的变化是否经由状态传递,论文没有证明(PR #16:状态到读出的虚线关系是假设,不是已确立的因果路径)。
Sources
- Paper (8f8c7780) ·
sections/ai_evidence.tex127–165 (state change 12/12, readout change 9/12, slope agreement 2/12: 154–158; quoted sentence 159–160), 91–92 (open-loop) - Paper (8f8c7780) ·
appendix/empirical.tex143–145, 182–199 (ε = 0.1 on baseline 0.5, ε/2 = 0.05; 25% tolerance) - Paper (8f8c7780) ·
appendix/theory.tex158–163 - Paper (8f8c7780) ·
sections/introduction.tex121–122;sections/protocol.tex122
4.5 · AI workflowsexploratory
AI case: a missing response, restored
Swapping two requests’ warehouses should move the answer 14→9; the model stayed 9→9. A request–return join, fixed in advance, restored 14→9; three controls stayed 9→9. Exploratory, one known case; calibration missed (21/24 vs 22/24); ordinary diagnosis picks the same join.
交换两个请求的仓库,答案应从 14 变成 9,模型却一直是 9→9。按事先固定的规则把每个请求与它的返回结果连接起来后,恢复为 14→9;三个对照仍是 9→9。这是探索性结果:一个已知案例,校准未达标(21/24 对 22/24),普通诊断也会选同一个连接。
Sources
- Paper (8f8c7780) ·
appendix/history_decision.tex23–29 (case 3: 14→9) - Paper (8f8c7780) ·
appendix/history_decision.tex31–43 (calibration 21/24, below the fixed 22/24; ordinary and response-based diagnostics select the same join), 65–96 (paired follow-up) - Paper (8f8c7780) ·
sections/discussion.tex70–76 (exploratory; ordinary diagnosis selects the same operation)
5.1 · TEDDYofficial rerun
TEDDY embeds, our head predicts, ANM’s engine decides
Each CITE-seq cell’s RNA goes through frozen TEDDY-G 70M, an RNA model, giving a 512-number embedding. Our own small head, trained on training sites’ measured proteins, predicts 134 surface proteins (held-out site4 mean Pearson 0.603). ANM reads 9 of them (v2; the registered v3 tests read 12, three each for B, T, NK and myeloid, chosen on validation, and divide each prediction by the training 95th percentile of the head’s own predictions, so no measured protein enters the evidence). Measured protein only grades. Numbers come from the official TEDDY-G preprocessing (counts / total × 10⁴, divided by TEDDY’s gene medians, top 2,048 rank tokens, mean over gene tokens); the earlier non-official preprocessing gave the same phase-1 Pearson.
每个 CITE-seq 细胞的 RNA 经过冻结的 TEDDY-G 70M(一个 RNA 模型)得到 512 维嵌入。我们自己训练的小 head 用训练 site 的实测蛋白学习,预测 134 个表面蛋白(留出 site4 平均 Pearson 0.603)。ANM 只读其中 9 个(v2;v3 为 12 个,证据中不含实测蛋白),实测蛋白只用来打分。TEDDY 本身不预测蛋白。数字来自 TEDDY-G 官方预处理(计数/总数×10⁴、除以 TEDDY 基因中位数、取前 2,048 个基因排序 token、基因 token 平均);此前的非官方预处理给出相同的 phase-1 Pearson。
Sources
- teddy_mm ·
scripts/03_embed_rna.py42–53 (total-count scaling to 1e4, rank encoding, frozen TEDDY forward) - teddy_mm ·
teddy_mm/teddy_encoder.py32–37 (mean over real tokens), 68–90 (rank encoding) - teddy_mm ·
scripts/04_train.py91–135 (MLP + negative-binomial decoder; flow-matching variant) - teddy_mm ·
bridge_anm/lib/lineage_panels.py63–72 (the 9 panel proteins) - Overview page · size factor 0.92663; test Pearson 0.603 (MLP)
5.2 · TEDDY
The same four steps on TEDDY’s workflow
- Question
- a written lineage question (soft, strict or B/T-priority in v2; Q1, Q2, Q3 on five classes in v3).
- Sources
- the head-predicted panel proteins (9 in v2, 12 in v3), all entering at t = 0.
- Retained state
- a declared candidate: TEDDY’s gene-mean embedding, tested rather than assumed sufficient (v3 E5-M: inconclusive for the one observer tested; E7 ran the reject → select → validate test at the layer-11 cut and selected nothing). Mode B works on the head’s outputs; Mode A steps through TEDDY’s layers (v3 E5).
- Readout
- call or no call, graded by measured protein.
问题:写下的谱系问题(v2 为宽松、严格、B/T 优先;v3 为五类上的 Q1、Q2、Q3)。源:head 预测的面板蛋白(v2 为 9 个,v3 为 12 个),都在 t = 0 进入。保留状态:声明的候选状态,即 TEDDY 的基因均值嵌入,需要检验而非假定充分(v3 E5-M:对所测的一个观察者判定为不确定;E7 在第 11 层切点运行了“否决 → 选择 → 验证”检验,什么也没选出);Mode B 作用在 head 的输出上,Mode A 以 TEDDY 的层为步(v3 E5)。读出:判或不判,由实测蛋白打分。
Sources
- teddy_mm ·
bridge_anm/lib/lineage_panels.py1–72, branchfix/anm-bridge-corrections(one scoring function for the three questions) - teddy_mm ·
bridge_anm/export_cite_events.py36–47 (all panel events at t = 0) - teddy_mm ·
bridge_anm/schemas/cite_lineage_finite_field_v0.json84–92 (finite_graph_scalar, 4 steps, retention 0.82, diffusion 0.16, bar 0.12)
5.3 · TEDDYconfirmed in v3 E1
Finding: ANM’s calls equal the fixed rule
All nine markers enter at once into a linear graph with uncoupled lineages, so each ANM score is a fixed multiple of the rule’s. On all 16,750 held-out cells and three questions, calls are identical: a check that the engine computes the rule, not better accuracy.
v3 · registeredThe same holds on the 11,294 unseen-donor test cells and the three v3 questions: 0 mismatches (E1.1a), with G(3) = 0.370041 the field’s gain for a class with 3 events. None of ANM’s readouts (top action score, closure readout, leave-one-out) beat TEDDY’s margin, the mean rule or a trained classifier, and a classifier trained on the old question’s labels answered a new question better than the zero-label rule (−0.078 [−0.134, −0.028], loss). On 40,000 external PBMC cells (E6; RNA possibly seen by TEDDY in pretraining) the engine again made the declared rule’s call in every donor. E1 → · E6 →
九个标记同时进入一个线性、谱系之间互不耦合的图,所以 ANM 的分数正好是规则分数的固定倍数。在 16,750 个留出细胞、三个问题上,判定完全相同:这只是核对引擎算的就是规则,不是更高的准确率。v3 在 11,294 个未见供体细胞上再次确认(0 不一致),且 ANM 的读出均未胜过 TEDDY 的分数差或训练分类器;E6 在外部 PBMC 数据的每个供体上同样 0 不一致。
Sources
- teddy_mm ·
bridge_anm/lib/lineage_panels.py12–47 (shared scoring), 453–487 (field gain G; ANM bar = G·c·rule bar), branchfix/anm-bridge-corrections - ANM ·
active_neural_matter/field/finite_field_runner.py851–900 (linear update) - Overview page · 16,750 cells, all three questions, identical calls
5.4 · TEDDYofficial rerunsuperseded by v3 E3
Finding: NK and T nearly merge
v2 prototype of a sufficiency test, with TEDDY’s embedding as the declared candidate state: for 453 NK–T pairs that TEDDY’s embedding nearly merges, our head’s predicted gaps are a quarter to a third of the measured ones (CD335 0.88), right in direction. Random NK–T pairs: 0.8–1.5. Lost in the embedding, or unused by our head? Mode A probes on the frozen embedding: a linear probe keeps about as much as our head, but an MLP probe keeps about twice as much for CD56, CD94 and CD3, and gene-token states keep more than the gene-mean. v2 read this as: part of the loss is in our head’s readout and in mean pooling; part may not be in the detected RNA.
Superseded by v3 E3The registered test rejected “the NK–T loss is in the readout or pooling and is repairable on frozen TEDDY”: a layer-mean MLP (R1) and attention pooling over layer-12 gene tokens (R2) both told NK from T less accurately than our head (−0.0409 and −0.1925 at coverage 0.9, losses). On 253 within-donor pairs the head’s gap ratio is 0.1169 on flagged vs 0.3985 on unflagged pairs, with overlapping intervals and mostly from gdT CD158b+ pairs in the donor with the weak answer key; without them 0.4729 vs 0.5137. E5-M then tested the gene-mean against a token observer: inconclusive, for that one observer. E3 →
near-matched states: a violation rejects the readout class, here our head, not the state alone
充分性检验:在 TEDDY 嵌入里几乎重合的 453 对 NK–T 细胞中,我们的 head 预测的差距方向正确,但只有实测差距的四分之一到三分之一(CD335 为 0.88);随机 NK–T 对为 0.8–1.5。是嵌入丢了差别,还是 head 没用上?冻结嵌入上的 Mode A 探针:线性探针保留的与 head 相当,但 MLP 探针对 CD56、CD94、CD3 约保留两倍,基因 token 状态又比基因平均保留更多。v2 的解读是:一部分损失在 head 的读出和平均池化,一部分可能不在检出的 RNA 里。v3 E3(预注册)拒绝了“损失位于读出/池化并可在冻结 TEDDY 上修复”:两种读出的 NK/T 准确率均不如 head;头部在近邻配对上压缩更甚只是描述性结果。
Sources
- Paper (8f8c7780) ·
appendix/theory.tex172–187 (approximate match and sensitivity bound);sections/protocol.tex196–209, 245–248 - Overview page · Look-alike cells (453 pairs; ratios CD3 0.27, CD56 0.24, CD94 0.31, CD335 0.88; random non-neighbour pairs 0.8–1.5)
- teddy_mm ·
outputs/mode_a_official/mode_a_results.json(linear layer probes on the same pairs; head reference),mode_a_nonlinear_results.json(MLP / kNN),token/mode_a_token_results.json(token level)
5.5 · TEDDYprototypeofficial rerun
Finding: a response to sequencing depth
Push the source down: keep a fraction of each cell’s RNA counts, re-embed, and follow it to the call. At 5% of counts, panel-protein Pearson falls 0.936 → 0.855 and lineage accuracy 0.983 → 0.959 on 1,500 validation cells (prototype): a graceful decline, gentler than with the earlier preprocessing (0.805 and 0.917 at 5%).
v3 E2 · unseen donorsOn the five-class key the decline is steeper: decision accuracy falls by 0.022 with 80% of UMIs kept, 0.162 with 20% and 0.140 with 5% (baseline 0.716). See 5.6.
把源往下推:只保留每个细胞一部分 RNA 计数,重新嵌入,一直跟到判定。保留 5% 计数时,面板蛋白 Pearson 从 0.936 降到 0.855,谱系准确率从 0.983 降到 0.959(1,500 个验证细胞,原型):下降平缓,比此前的预处理(5% 时为 0.805 和 0.917)更稳。v3 E2 在未见供体、五类答案键上下降更明显:保留 20% 时决策准确率下降 0.162。
Sources
- Overview page · Experiment 2 redesign prototype (5% of counts, median 305 UMIs; 1,500 validation cells, donor 18303; held-out site not used). Experiment 2 itself stays withdrawn.
5.6 · TEDDYv3 E2 · registered · final
E2: push the RNA, follow it to the call
Test cells, primary key · decision-accuracy loss [95% CI]
| Push | Loss | Lost calls: representation / head / decision |
|---|---|---|
| 80% of UMIs kept | 0.022[0.004, 0.042] | 0.000 / 1.000 / 0.000 (25) |
| 20% kept | 0.162[0.121, 0.194] | 0.069 / 0.931 / 0.000 (112) |
| 5% kept | 0.140[0.112, 0.172] | 0.281 / 0.719 / 0.000 (125) |
| one gene masked | 0.012[0.001, 0.024] | 0.000 / 1.000 / 0.000 (20) |
Criterion (ii): AUROC of the small-ε response minus TEDDY’s margin −0.092 [−0.125, −0.057], loss. Criterion (i): 0 qualifying pairs. Verdict: adds nothing beyond the curve (falsified).
The forward question on TEDDY’s workflow: thin each cell’s UMIs or scale one gene among its tokens, re-embed with the official preprocessing, and follow the change through our frozen head and the evidence to the Q1 call (1,000 unseen-donor cells, 23,116 cases; ANM’s engine matched the rule in every case). Each lost call was labelled representation if a probe on the perturbed embedding was wrong, else head, else decision. Registered rule: the split must tell more than the plain accuracy curve. It did not.
Nonlinear at the input. TEDDY reads genes as rank tokens, and thinning reorders them, so even small pushes change the input in jumps. The response is not linear at these sizes: at most 0.098 of cells pass the step-halving check at any stage, and the embedding is the least linear stage (median slope ratio 0.667, cosine 0.564 between the ε = 0.1 and ε = 0.05 responses, where linear would give 1 and 1). The rank-token reading is an interpretation, not separately tested.
Losses are labelled “head”, partly by construction. Most lost calls are labelled head (0.931 at 20% kept). But the embedding probe is near-perfect on validation (0.9977) and is checked first, so “representation” rarely fires; and no lost call fell below the bar (“decision” 0.000), while coverage rose under thinning (0.961 at 80% kept, 1.000 at 20%). So this does not show that the information is lost in our head.
E2(预注册,已证伪):稀释 RNA 或缩放一个基因,经 TEDDY、head、证据一直跟到判定;按阶段给丢失的判定贴标签,并不比普通的准确率曲线多提供信息。响应在输入端就不是线性的(TEDDY 读取的是基因排序 token);“头部”占多数部分源于标签顺序的构造。
Sources
- teddy_mm ·
docs/reports/V3_REGISTERED_RESULTS.md§ E2; numbers indocs/reports/v3_numbers.json(keysE2.*) - teddy_mm ·
scripts/e2_response_decomposition.py,bridge_anm/lib/e2_response.py - Registration · addenda/E2.json, amendments A1.7 and A2.3
5.7 · TEDDYv3 E5 · registered · final
E5: the NK–T push through TEDDY’s layers
Registered gate: finite differences vs JVP
| Check | Cases | Pass share |
|---|---|---|
| float32, ε = 1e-3 (registered) | 2,671 | 0.854 < 0.95 |
| float32, ε = 1e-2 | 571 | 1.000 |
| float64, both ε (secondary) | 79 | 1.000 |
Verdict: JVP not validated, E5 stops. Computed anyway: l* = 11 vs the probe’s layer 9 (no agreement within 1 layer); specificity vs random directions 0.115 [−0.007, 0.174], inconclusive. Secondary: an NK − T input push keeps a median 0.285 of its NK–T component by layer 5 and 0.503 at layer 12.
TEDDY’s layers are a real processing order, so a push can be followed layer by layer (Mode A). E5 pushed each panel or NK/T gene’s input token along its own embedding on 478 unseen-donor cells (7,862 cases), carried the exact first-order change through each of the 12 post-norm layers with Jacobian-vector products, and projected it on the training NK-minus-T direction. The registered question: in which layer does the NK–T component shrink most, and is it the layer where a linear NK–T probe’s gap ratio drops most?
The registered gate failed in float32; float64 passes. Before any layer is read, finite differences must agree with the JVP in at least 95% of cases. In float32 at ε = 1e-3 they agreed in 0.854; the float64 version of the same check passes in all 79 cases, so the registered verdict attributes the failure to float32 rounding. No amendment adopting the float64 path was committed before site4, so the verdict stands: no layer is localised.
Descriptive only: for a push along the training NK − T input direction, the largest single-layer drop of its NK–T component is at layer 2 (median step −0.217 [−0.229, −0.197]); look-alike cells do not damp it more than random NK/T cells, and the head does not pass less of it than the layer-12 state.
E5(预注册):沿基因输入 token 推动,用 Jacobian-向量积跟着 TEDDY 的 12 层走,看 NK–T 分量在哪一层收缩最多。注册的有限差分检验在 float32、ε = 1e-3 下通过率 0.854 < 0.95(float64 全部通过),按规则停止,未定位任何层;次要分析仅为描述性。
Sources
- teddy_mm ·
docs/reports/V3_REGISTERED_RESULTS.md§ E5; numbers indocs/reports/v3_numbers.json(keysE5.*) - teddy_mm ·
scripts/mode_a_layer_dynamics.py(explicit attention arithmetic for the JVP; fused kernels have no forward-mode derivative) - Registration · addenda/E5.json (deviations: Apple-GPU float32 instead of the CPU)
5.8 · TEDDYv3 E5-M · registered · final
E5-M: is the gene-mean enough for another observer?
Registered verdict
inconclusive
| Declared observer · median clamp residual | Pair cells | Random cells |
|---|---|---|
| O_tok · E3’s frozen R2 on the layer-12 token states (tested) | 0.085[0.071, 0.096] | 0.127[0.098, 0.142] |
| O_rand · random token observer of R2’s form (negative control) | 0.067 | 0.068 |
| O_head · our head on the gene-mean (positive control) | 0.000 | 0.000 |
Δ_tok (pair − random, R2) −0.043 [−0.062, −0.011]: the opposite sign to H5M; not a loss (the point does not reach −0.05) and not equivalent (the interval passes −0.05). The pair-cell level 0.085 is above 0.05, so PASS_SUFFICIENT is not reached. Derivative gate: pass share 1.000 for every target; positive control passed. 195 test cells (60 pair and 40 random per primary donor, fixed before site4; 5 contain none of the 7 genes).
The one v3 test that uses ANM’s own sufficiency machinery on TEDDY. The declared candidate retained state is the gene-mean of TEDDY’s layer-12 token states, which our head reads. It was tested, at first order, against declared observers (E3’s attention-pooling readout R2 on the layer-12 token states, a random token observer and our head as a positive control), on NK–T look-alike pair cells and matched random cells. Addendum E5M.json (sha256 65ab9efe…) was committed 07:39:16 and pushed 07:57:00 UTC, before the site4 run started at 10:43:09.
What it found. For R2, a median 0.085 of its first-order response on look-alike pair cells flows through what gene-mean pooling discards, against 0.127 on random cells: smaller, not larger, on look-alikes. The random observer shows no such gap (0.067 vs 0.068). The registered verdict is inconclusive: neither “pooling loses the look-alike difference” nor “the gene-mean state is sufficient” is established, and the measurement holds for this one observer only. R2’s attention is nearly uniform (a median 1,141.957 effective of 1,368 tokens, E3), and an observer that attends almost uniformly departs little from the gene-mean by construction.
How it decided. ANM’s clamp estimator H = Λ·pinv(Γ) is computed from clamps of the candidate alone, never fitted on the tested responses. The per-cell residual is the share of an observer’s response that flows through what gene-mean pooling discards. H5M needed the pair-minus-random difference for R2 to reach 0.05 under the common win rule and to exceed the random-observer null. The readout-visible quotient is a diagnostic only, never the state: R2’s response has rank 4 in 128 cells, 3 in 62, 2 in 4 and 1 in 1, with a median participation ratio of 1.221 on pair and 1.388 on random cells, so it is effectively one- or two-dimensional.
ANM’s own factorization check. analyze_factorization at rtol 1e-4 rejects the gene-mean as an exact first-order retained state for R2 in 195 of 195 cells; any relative residual above 1e-4 rejects, so it says nothing about size. Its source-kernel test is not informative in all 195, as the paper predicts: with at most 21 push columns against 512 coordinates, K_z has full column rank in every cell, so first-order kernel inclusion holds automatically. The informative quantity is the clamp residual of an H fixed without the tested responses.
It tests one declared candidate against declared observers, with no selection step: for the observer tested it can reject that candidate or support it within a margin, but it cannot select among candidates or identify TEDDY’s minimal degrees of freedom. E7 adds the selection step.
E5-M(预注册,判定为“不确定”):把 TEDDY 的基因均值作为声明的候选保留状态,用 ANM 自身的钳制估计量(只用候选状态的钳制计算,不拟合被检验的响应)检验它对独立 token 观察者是否充分。对 E3 的 R2,一阶下其响应流经池化丢弃部分的中位份额在相似配对细胞上为 0.085,在随机细胞上为 0.127,方向与假设相反;未达到损失边界,也不等价;0.085 高于 0.05,故也不能说基因均值充分。ANM 的分解检验在 rtol 1e-4 下全部拒绝精确分解,源核检验不提供信息(与论文预期一致)。读出可见商只作诊断。结论只针对这一个注意力近乎均匀的观察者。它只检验一个声明的候选、没有选择步骤:对所测的观察者,它能否决这个候选或在容差内支持它,但不能在候选之间做选择,也不能确定 TEDDY 的最小自由度;E7 加上了选择步骤。
Sources
- teddy_mm ·
docs/reports/V3_REGISTERED_RESULTS.md§ E5-M; numbers indocs/reports/v3_numbers.json(keysE5M.*, fromoutputs/v3/E5M/E5M_results.json) - teddy_mm ·
scripts/mode_a_observer_sufficiency.py,bridge_anm/lib/v3_e5m.py - Registration · addenda/E5M.json
- Paper (8f8c7780) ·
sections/protocol.tex3–8 (a candidate retained state; response comparisons test whether it preserves the distinctions the readout needs);sections/introduction.tex23
5.9 · TEDDYv3 E7 · registered · final
E7: the inverse loop at TEDDY’s layer-11 cut
Registered verdict
rejected · no revision
| Declared candidate · median D | Site4 (fresh) | Val, 95th pct |
|---|---|---|
| layer-11 gene-mean | 0.125[0.090, 0.161] | 0.276 |
| gene-mean + the 6 marker genes’ token states | 0.122[0.086, 0.153] | 0.256 |
| all token states (no matched pair) | — | — |
D: a cell’s largest readout difference between histories with the same candidate state, in units of the measured val NK–T gap; tolerance 0.05. Both candidates are rejected (every lower end above 0.05; donors 0.094 and 0.153 for the gene-mean), and none passed in development or in the declared follow-up (0.236 and 0.236). Positive control 0.261 and detectability witness 0.260 detected; G witness 0.013 not detected. External (secondary): 0.112 [0.097, 0.136].
The ANM paper’s inverse loop (4.3), run on TEDDY. The downstream component is fixed and never trained: the token states leaving TEDDY’s layer 11 → TEDDY’s own layer 12 → the mean over real tokens → our frozen head, read on CD56, CD94, CD335 and CD3. Layer 12 has no positional input, so it sees only the set of token states. The histories are exact mean-preserving state interventions: disjoint pairs of tokens other than the six marker genes (G: NCAM1, KLRD1, NCR1, CD3E, CD3D, CD3G) have their states replaced by their average, for 1/32, 1/8 or 1/2 of those tokens, plus a fresh 1/4 in confirmation. Addendum E7.json version 2 (sha256 c35e91c5…) was pushed at 22:25:53 UTC, before any development run. The selection records were pushed at 22:40:19, and the site4 confirmation started at 22:40:20 by the local clock.
Step 1, reject: done. On fresh site4 cells, fresh pairs and a fresh size, histories with exactly the same layer-11 gene-mean give readouts that differ beyond the tolerance. The median is 0.125, and in both donors the interval lies above 0.05. Holding the six marker genes’ token states fixed as well does not remove the difference (0.122). Changing only the marker states, at a fixed gene-mean, moves the readout by a median 0.013. So for this downstream component and these interventions, what layer 12 and the head use is spread over the other tokens’ states: it is not held by the gene-mean, nor by the marker tokens. The controls show the comparisons could see a change. Clamping the gene-mean by the training NK − T difference moves the readout by 0.261, and delivering that shift through the patched tokens alone moves it by 0.260.
Step 2, select: no revision. On the validation donor, a candidate is kept if the 95th percentile of D is at most 0.05. The gene-mean scored 0.276 and the marker-token augmentation 0.256. The declared follow-up, with the NK–T score as readout, scored 0.236 for both. None was selected. In the paper’s terms this parallels its broader development comparison, in which “No candidate qualifies”; in the paper, a recipient-A scope chosen afterwards then led to a supported description, which E7 did not attempt. Step 3, validate: not reached. No revised representation is validated.
Secondary. The difference grows with the patch size: the site4 median is 0.022 at 1/32 (below the tolerance), 0.046 at 1/8, 0.073 at 1/4 and 0.125 at 1/2. It is larger in NK cells (0.141) than in T cells (0.091). Limits. The patches are exact state interventions at one cut, off the data manifold, not biological variation. The test covers one downstream component, a small declared library and 2 primary donors. It does not explain the NK–T loss or say what the RNA contains. The design was revised twice after code tests on training cells and once after a val smoke-pool check, all disclosed in the addendum.
E7(预注册,判定 REJECTED_NO_REVISION):在 TEDDY 第 11 层切点运行论文的逆向闭环,下游组件固定(第 12 层 + gene-mean 池化 + 冻结 head),历史是精确的保均值状态干预。第一步(否决)完成:gene-mean 相同的历史在新的 site4 比较上读出差异超过容差(中位数 0.125 [0.090, 0.161]),固定六个标记基因的 token 状态也不能消除差异(0.122);只改变标记基因状态时读出几乎不动(0.013)。第二步(选择)没有得到修订:开发阶段 95 分位数为 0.276、0.256,事先声明的后续为 0.236、0.236。第三步(验证)没有进行,没有验证任何修订后的表示。差异随补丁幅度增大,NK 大于 T。局限:切点上的状态干预(偏离数据流形),不是生物学变异;一个下游组件、一个小的候选库、2 个主要供体;不解释 NK–T 损失。
Sources
- teddy_mm ·
docs/reports/V3_REGISTERED_RESULTS.md§ E7; numbers indocs/reports/v3_numbers.json(keysE7.*, fromoutputs/v3/E7/E7_results.jsonandregistration/addenda/E7_selection.json) - teddy_mm ·
scripts/mode_a_inverse_e7.py,bridge_anm/lib/v3_e7.py - Registration · addenda/E7.json, E7_REGISTRATION.md
- Paper (8f8c7780) ·
sections/protocol.tex240–243;sections/inverse_model.tex42, 152–158, 163–165;sections/introduction.tex96–98
5.10 · TEDDY
What we do not claim
Not claimed (the registered list is the v3 claims ledger):
- that ANM makes calls more accurate: in v3 its engine equals a declared rule on every test cell, and none of its readouts beat TEDDY’s margin or a trained classifier
- that TEDDY predicts proteins
- that a readout of frozen TEDDY repairs the NK–T gap (v3 E3 rejected), or that a TEDDY layer localises it (v3 E5 not validated)
- that gene-mean pooling loses the NK–T look-alike difference, or that TEDDY’s gene-mean state is sufficient for it: E5-M was inconclusive for the one observer tested
- that a revised TEDDY representation is validated, or that E7 explains the NK–T loss: E7 rejected the layer-11 gene-mean and the marker-token augmentation for one fixed downstream component, with no revision selected, using state interventions that are not biological variation
- that ANM found a sufficient TEDDY state or TEDDY’s minimal degrees of freedom: the response test selects only within a candidate set declared in advance, and on TEDDY (E7) it selected none
- ANM’s field dynamics on TEDDY: every event enters at t = 0, so the field is a constant gain per class
Numbers now use the official TEDDY-G preprocessing (gene-median normalisation, top 2,048 rank tokens, mean over gene tokens); our earlier non-official preprocessing (no gene-median normalisation, 512 tokens) gave the same phase-1 Pearson.
不声称:ANM 让判定更准(v3 中与声明规则逐细胞相同);TEDDY 预测蛋白;冻结 TEDDY 的读出能修复 NK–T 差距(v3 E3 拒绝),或某一层定位了它(v3 E5 未验证);基因均值池化丢失了 NK–T 相似细胞的差异,或基因均值状态对其充分(E5-M 对所测的一个观察者判定为不确定);TEDDY 的某个修订表示已被验证,或 E7 解释了 NK–T 损失(E7 对一个固定下游组件否决了第 11 层 gene-mean 及标记基因 token 增广,未选出修订,且用的是状态干预而非生物学变异);ANM 找出了充分的 TEDDY 状态或其最小自由度(响应检验只在事先声明的候选集合内选择,E7 在 TEDDY 上什么也没选出);场动力学(所有事件在 t = 0)。数字现已改用 TEDDY-G 官方预处理(基因中位数归一化、前 2,048 个排序 token、基因 token 平均);我们此前的非官方预处理(没有基因中位数归一化,512 个 token)给出相同的 phase-1 Pearson。
Sources
- teddy_mm ·
scripts/03_embed_rna.py42–53 (earlier preprocessing: total-count scaling to 1e4, then rank; no per-gene median division) - teddy_mm ·
teddy_mm/teddy_encoder.py36–37 (mean over real tokens) - Official TEDDY ·
preprocess.py284–300 (the gene-median step, skipped earlier and now applied)
Next
6.1 · Nextv2 probesv3 E5 · E5-M · E7 final
Next: TEDDY’s layers as the steps
Mode A treats TEDDY’s transformer layers as the steps. The per-gene residual stream (and its gene-mean, which our head reads) is a candidate retained state, to be tested against a declared readout (and, within a declared candidate set, selected), not assumed sufficient; attention couples genes. v2 probes, on the frozen embedding: a linear NK-vs-T probe separates NK from T at every layer (held-out AUC 0.991–0.997). On the 453 look-alike pairs our head keeps 0.24 / 0.31 / 0.88 / 0.27 of the measured CD56 / CD94 / CD335 / CD3 gap and a linear probe on z about the same (0.28 / 0.40 / 0.40 / 0.28), but an MLP probe on the same z keeps about twice as much (0.47 / 0.59 / 0.74 / 0.61; MLP − head interval above 0 for CD56, CD94 and CD3 at every depth). At token level (probes fit on 990 other site4 NK/T cells, scored on the 483 pair cells), the states of 13 NK/T gene tokens keep more than the gene-mean of the same forward pass (layer 12, MLP, tokens + gene-mean 0.58 / 0.62 / 0.72 / 0.56 vs gene-mean 0.41 / 0.43 / 0.49 / 0.45), and about as much already at the input layer: the information is mostly which genes are detected and at what rank; the gene-mean keeps less of it, and TEDDY’s layers neither add nor remove much of it. Even the best probe keeps only about half to three-quarters, and key genes are often not detected (CD3E among the tokens in 45% of the NK and 60% of the T pair cells). v2 read this as: part of the loss is in our head’s readout and in mean pooling, and part may not be in the detected RNA (caveats: one site; probes are not the head’s objective; within-site protocol for the token probes; some intervals overlap; the pairs were chosen for closeness in z).
v3 · registeredE3 tested the repair reading and rejected it: a layer-mean MLP and attention pooling over layer-12 gene tokens both told NK from T less accurately than our head. E5 followed a push through the layers with Jacobian-vector products and stopped at its derivative check (float32; float64 passes). E5-M, the sufficiency test of the gene-mean, was inconclusive for the one observer tested. E7 ran the paper’s inverse loop at the layer-11 cut with the downstream component fixed: the layer-11 gene-mean was rejected, and no revision was selected. Gene perturbations beyond E2’s are not done.
Mode A 把 TEDDY 的 transformer 层当作步:按基因的残差流(及 head 读取的基因均值)是候选保留状态,需要用声明的读出检验(并在声明的候选集合内选择),而非假定充分;注意力让基因之间相互耦合。目前冻结嵌入上的探针:线性 NK/T 探针在每一层都能区分 NK 与 T(留出 AUC 0.991–0.997)。在 453 对相似细胞上,我们的 head 保留实测 CD56 / CD94 / CD335 / CD3 差距的 0.24 / 0.31 / 0.88 / 0.27,z 上的线性探针大致相同(0.28 / 0.40 / 0.40 / 0.28),而同一 z 上的 MLP 探针约为两倍(0.47 / 0.59 / 0.74 / 0.61;CD56、CD94、CD3 的 MLP − head 区间在每一层都大于 0)。在 token 层面(探针在另外 990 个 site4 NK/T 细胞上拟合,在 483 个配对细胞上打分),13 个 NK/T 基因 token 的状态比同一次前向的基因平均保留更多(第 12 层 MLP,token + 基因平均 0.58 / 0.62 / 0.72 / 0.56,基因平均 0.41 / 0.43 / 0.49 / 0.45),在输入层就已相当:信息主要是检出了哪些基因、排在第几;基因平均保留得更少,TEDDY 的各层既不明显增加也不明显减少。最好的探针也只保留约一半到四分之三,关键基因常常没有检出(CD3E 只出现在 45% 的 NK 和 60% 的 T 配对细胞的 token 中)。v2 的解读是:一部分损失在 head 的读出和平均池化,一部分可能不在检出的 RNA 里(单一 site;探针不是 head 的训练目标;token 探针在 site4 内部拟合;部分区间重叠;这些对按 z 中的接近程度选出)。v3:E3 拒绝了“可在冻结 TEDDY 上修复”;E5 用 Jacobian-向量积跟踪各层,停在导数检验;E5-M(基因均值的充分性检验)对所测的一个观察者判定为不确定;E7 在第 11 层切点、下游组件固定时运行了论文的逆向闭环,否决了第 11 层 gene-mean,且未选出修订。
Sources
- teddy_mm ·
teddy_mm/teddy_encoder.py13–37 (norm_first = cfg.get('pre_norm', False): post-norm blocks; mean over real tokens) - TEDDY-G 70M ·
config.json(12 layers, d_model 512, 8 heads, no pre_norm key); official TEDDYmodel.py72, 119 - Paper (8f8c7780) ·
sections/protocol.tex81–83 (transition on a declared grid) - teddy_mm ·
outputs/mode_a_official/mode_a_results.json(layer probes, head reference),mode_a_nonlinear_results.json(MLP / kNN),token/mode_a_token_results.json(token level, gene presence)