[ PROMPT_NODE_22638 ]
Mechanistic Interpretability Saelens 说明文档
[ SKILL_DOCUMENTATION ]
# SAELens 参考文档
本目录包含 SAELens 的综合参考资料。
## 内容
- [api.md](api.md) - SAE、TrainingSAE 及配置类的完整 API 参考
- [tutorials.md](tutorials.md) - 训练和分析 SAE 的分步教程
- [papers.md](papers.md) - 关于稀疏自编码器的关键研究论文
## 快速链接
- **GitHub 仓库**: https://github.com/jbloomAus/SAELens
- **Neuronpedia**: https://neuronpedia.org (浏览预训练的 SAE 特征)
- **HuggingFace SAEs**: 搜索标签 `saelens`
## 安装
bash
pip install sae-lens
要求:Python 3.10+, transformer-lens>=2.0.0
## 基础用法
python
from transformer_lens import HookedTransformer
from sae_lens import SAE
# 加载模型和 SAE
model = HookedTransformer.from_pretrained("gpt2-small", device="cuda")
sae, cfg_dict, sparsity = SAE.from_pretrained(
release="gpt2-small-res-jb",
sae_id="blocks.8.hook_resid_pre",
device="cuda"
)
# 将激活编码为稀疏特征
tokens = model.to_tokens("Hello world")
_, cache = model.run_with_cache(tokens)
activations = cache["resid_pre", 8]
features = sae.encode(activations) # 稀疏特征激活
reconstructed = sae.decode(features) # 重构激活
## 关键概念
### 稀疏自编码器
SAE 将稠密的神经激活分解为稀疏、可解释的特征:
- **编码器**: 映射 d_model → d_sae (通常为 4-16 倍扩展)
- **ReLU/TopK**: 强制稀疏性
- **解码器**: 重构原始激活
### 训练损失
`Loss = MSE(原始, 重构) + L1_系数 × L1(特征)`
### 关键指标
- **L0**: 平均激活特征数 (目标: 50-200)
- **CE Loss Score**: 恢复的交叉熵与原始模型对比 (目标: 80-95%)
- **死特征 (Dead Features)**: 从不激活的特征 (目标: <5%)
## 可用的预训练 SAE
| 版本 | 模型 | 描述 |
|---------|-------|-------------|
| `gpt2-small-res-jb` | GPT-2 Small | 残差流 SAE |
| `gemma-2b-res` | Gemma 2B | 残差流 SAE |
| 各种 | 搜索 HuggingFace | 社区训练的 SAE |