用途:本技能为使用 TransformerLens 开展机制可解释性研究提供指导,帮助检查并操控 transformer 模型的内部结构。TransformerLens 是面向 GPT 类语言模型的机制可解释性标准库,通过 HookPoint 提供简洁接口来检查和操控模型内部激活。
主要能力:
- 加载 HookedTransformer 模型:通过 pip install transformer-lens 安装;开发版使用 pip install git+https://github.com/TransformerLensOrg/TransformerLens。
- 支持 50 多个模型,包括 GPT-2 系列、LLaMA、EleutherAI(pythia、gpt-neo、gpt-j-6b)、Mistral、phi、qwen、opt、gemma 等;对于有访问限制的模型,需要设置 HF_TOKEN。
- 使用 run_with_cache 缓存所有中间激活,并通过 names_filter 过滤,以减少内存占用。
- 缓存键包括 resid_pre、resid_mid、resid_post、attn_out、mlp_out、pattern、q、k、v 等。
使用方式(三套工作流):
- 激活补丁(因果追踪):准备干净和损坏的提示词,定义度量(如对数几率差),缓存干净激活,对每个层和位置组合进行补丁,最后可视化为热图并识别因果热点。
- 电路分析(间接宾语识别 IOI):构建 IOI 任务,计算基线对数几率差,按注意力头分解贡献,识别关键电路组件,并用消融实验验证。
- 归纳头检测:构造重复序列 [A][B][A],检查最终 [A] 对首个 [B] 的注意力分数,找出归纳头。
适用场景:逆向工程训练中习得的算法,进行激活补丁和因果追踪实验,研究注意力模式和信息流,分析电路(如归纳头、IOI 电路),缓存并检查中间激活,以及直接对数几率归因。
限制与注意事项:
- 不适用于非 transformer 架构;此类需求可考虑 nnsight 或 pyvene。
- 训练和分析稀疏自编码器应使用 SAELens;大规模模型的远程执行应使用 nnsight 与 NDIF;更高层因果干预抽象应使用 pyvene。
- 调试后必须调用 model.reset_hooks() 重置钩子,避免旧钩子残留。
- 注意分词差异:例如 “Neel” 可能被拆成两个 token。
- 分析中不要忽略 LayerNorm。
- 大模型注意内存:可用 names_filter 选择性缓存,并指定 device="cpu"。
- 该技能还介绍了与 SAELens 的集成方式,以及 FactoredMatrix、HookedTransformerConfig 等类;详细 API 和教程见 references 目录。