[ PROMPT_NODE_22644 ]
transformer-lens-interpretability
[ SKILL_DOCUMENTATION ]
# TransformerLens:Transformer 的机械可解释性
TransformerLens 是用于 GPT 类语言模型机械可解释性研究的事实标准库。由 Neel Nanda 创建并由 Bryce Meyer 维护,它提供了简洁的接口,通过每个激活点上的 HookPoints 来检查和操作模型内部结构。
**GitHub**: [TransformerLensOrg/TransformerLens](https://github.com/TransformerLensOrg/TransformerLens) (2,900+ 星标)
## 何时使用 TransformerLens
**在以下情况使用 TransformerLens:**
- 逆向工程训练过程中学习到的算法
- 执行激活修补 (activation patching) / 因果追踪实验
- 研究注意力模式和信息流
- 分析电路(例如:归纳头、IOI 电路)
- 缓存并检查中间激活值
- 应用直接 Logit 归因 (direct logit attribution)
**在以下情况考虑替代方案:**
- 需要处理非 Transformer 架构 → 使用 **nnsight** 或 **pyvene**
- 想要训练/分析稀疏自编码器 (Sparse Autoencoders) → 使用 **SAELens**
- 需要在超大规模模型上进行远程执行 → 使用带有 NDIF 的 **nnsight**
- 想要更高层级的因果干预抽象 → 使用 **pyvene**
## 安装
bash
pip install transformer-lens
开发版本安装:
bash
pip install git+https://github.com/TransformerLensOrg/TransformerLens
## 核心概念
### HookedTransformer
这是核心类,它将 Transformer 模型包装起来,并在每个激活点设置 HookPoints:
python
from transformer_lens import HookedTransformer
# 加载模型
model = HookedTransformer.from_pretrained("gpt2-small")
# 对于受限访问模型 (LLaMA, Mistral)
import os
os.environ["HF_TOKEN"] = "your_token"
model = HookedTransformer.from_pretrained("meta-llama/Llama-2-7b-hf")
### 支持的模型 (50+)
| 系列 | 模型 |
|--------|--------|
| GPT-2 | gpt2, gpt2-medium, gpt2-large, gpt2-xl |
| LLaMA | llama-7b, llama-13b, llama-2-7b, llama-2-13b |
| EleutherAI | pythia-70m 到 pythia-12b, gpt-neo, gpt-j-6b |
| Mistral | mistral-7b, mixtral-8x7b |
| 其他 | phi, qwen, opt, gemma |
### 激活缓存
运行模型并缓存所有中间激活值:
python
# 获取所有激活值
tokens = model.to_tokens("The Eiffel Tower is in")
logits, cache = model.run_with_cache(tokens)
# 访问特定激活值
residual = cache["resid_post", 5] # 第 5 层残差流
attn_pattern = cache["pattern", 3] # 第 3 层注意力模式
mlp_out = cache["mlp_out", 7] # 第 7 层 MLP 输出
# 过滤激活值