返回 G01~G90 教材库
G65 · 总 Day 245教材已备 ≠ 学习已完成

G65:Toy Transformer 与 Activation Cache:建立可干预的最小实验台

最小可解释性实验台是一个任务机制已知、前向计算可缓存、内部状态可替换且运行可重放的 Toy Transformer,而不是一套只会画 attention 的仪表盘。

2027-04-27

内容类型:预习教材(不代表已完成)
日期:2027-04-27
阶段:P3 · AGI Foundations 90
总路线:Day 245
周次节奏:W10 · 周二最小机制
状态:教材已备;学习未完成

一句话定义

最小可解释性实验台是一个任务机制已知、前向计算可缓存、内部状态可替换且运行可重放的 Toy Transformer,而不是一套只会画 attention 的仪表盘。

学习目标

  1. 从 embedding、attention、MLP、residual stream 到 logits 追踪一条完整前向路径。
  2. 设计 activation cache 与 hook 接口,使观察和干预使用同一坐标、版本和输入。
  3. 通过已知规则任务建立 ground-truth mechanism,识别模型可能学到的 shortcut。

核心知识

可解释性实验不一定需要大模型。两层、少量 head、短序列和小词表足以学习重复、括号深度、有限状态机或排序规则。关键是任务生成器能给出结构变量,例如“当前状态”“匹配位置”“目标前驱”,从而比较神经 activation 与真正算法变量。

Transformer 的 residual stream 可看成多个组件共同读写的通信通道。对第 (l) 层,简化写为 r_l' = r_l + Attn_l(LN(r_l))r_{l+1}=r_l' + MLP_l(LN(r_l'))。Attention head 计算 query、key 相似度后加权 value;MLP 则在位置内变换。缓存应至少区分 layer、component、head、position、batch、dtype,并关联 input id 与 model hash,否则两个运行的同名 activation 可能不可比。

“缓存所有东西”并非目标。Attention pattern 适合观察路由,value/output 适合分析写入内容,residual stream 适合追踪累积表示,logit attribution 适合形成候选,但真正机制仍需 patch 或 ablation。缓存过多会引起显存、序列化和敏感数据风险;toy 台应先只保留支持假设的节点。

训练本身也可能制造混杂。若数据生成器泄漏标签位置,模型会学 shortcut;若训练/测试序列模板相同,所谓算法泛化可能只是记忆。应设置结构 OOD:更长序列、不同符号重命名、规则组合变化,并把成功限定在对应区间。

机制与推导

单个 head 在位置 (i) 的计算为:

q_i=W_Q r_i, k_j=W_K r_j, v_j=W_V r_j

p_ij=softmax_j(q_i·k_j/√d_k + mask_ij)

o_i=W_O Σ_j p_ij v_j

观察 (p_{ij}) 只能说明从哪里读取权重;实际写入 residual 的是经 (W_O) 变换的 value 组合。即使 head 始终关注目标位置,若 value 不含行为相关信息,它也不构成充分解释。

缓存协议可写为 CacheKey=(run_id, model_hash, input_hash, layer, hook, position, head),值还应含 shape、dtype 和 transformation。干预协议必须验证 shape 与版本,并从干净 run 复制 activation 到污染 run。可重放条件是任务 seed、模型参数、tokenizer、输入、hook 代码和 scorer 固定;浮点细微差异只在确实运行后报告。

对 toy 任务可定义行为指标 margin = logit(correct)-max logit(incorrect),比只看 accuracy 更适合 patch,因为 patch 可能改善 margin 但未跨越 argmax。仍需同时报告 accuracy,避免连续指标的微小变化被写成成功恢复。

最小练习或观察步骤

  1. 选择 8~16 个符号和长度 6~20 的重复规则任务,明确训练 IID、长度 OOD 和符号置换 OOD。
  2. 画出两层 Transformer 的张量形状,尤其是 batch、position、head、d_head 和 d_model。
  3. 定义 cache schema,仅计划保存 attention pattern、head output、residual pre/post 与 logits。
  4. 手算一个两位置单头例子:给定 q、k、v,算 softmax 权重与输出,确认“关注”与“写入”不同。
  5. 写一个 planned patch:把 clean 的某位置 head output 放入 corrupt run,并定义 margin 恢复和随机 head 对照;不运行时不填写结果。

常见误区与边界

  • 使用真实大模型却不了解 tokenization、层结构和缓存含义,得到不可控图像。
  • 混淆 attention probability、value content 与 residual contribution。
  • 缓存键缺少模型和输入 hash,跨运行比较错位。
  • 数据生成器泄漏标签,随后把 shortcut 解释为算法 circuit。
  • Toy 模型出现清晰机制不代表大模型使用同一机制,也不代表机制在 OOD 保持。

研究/系统场景连接

研究 registry 应把任务生成器版本、模型初始化、训练配置和每次干预绑定;系统诊断可只在批准的测试集缓存内部状态,避免默认记录用户原文。在金融规则 toy 中,可将“交易序列触发规则”设为有限状态机,观察模型是否真正跟踪状态,还是依赖某个高频 token;未来具身 P4 中相应变量会变成 belief state 与传感器历史,缓存还要面对连续时间和隐藏状态。

自检问题

  1. Attention pattern 与 head output 分别回答什么?
  2. 一个可重放 cache key 为什么必须包含 model/input hash?
  3. 为什么 logit margin 和 accuracy 应一起看?
  4. 如何设计结构 OOD 来排除模板记忆?

专业课程对齐

深入学习提示

先让一张纸上的两位置单头例子完全清楚,再写 hook。若实验工具自动提供几十种 activation 名称,只选择能回答当前假设的四种;解释性来自问题和干预,而不是缓存规模。

学后填写区

  • Toy 任务与 ground truth:
  • 模型和张量形状:
  • CacheKey 设计:
  • Planned patch 与 scorer:
  • 当前 shortcut 风险:
本页是未来 P3 的预习教材。等 P1、P2 完成并正式进入 P3 后,再填写真实理解、实验现象与不确定项;现在阅读不会改变P1 唯一进度账本