Gemma-2B 与 Gemma-12B-IT 中的三阶段事实召回回路
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
理解大型语言模型(LLM)如 Google 的 Gemma 系列如何检索事实信息,是机械解释性(Mechanistic Interpretability)研究的核心。针对 Gemma-2B 和 Gemma-12B-IT 内部回路的最新研究揭示了一个复杂的“三阶段事实召回回路”。这一发现为开发者优化 RAG(检索增强生成)系统和微调策略提供了清晰的路线图。对于希望大规模利用这些模型的开发者,n1n.ai 提供了通往最新开源权重模型的高性能网关。
研究方法:激活修补 (Activation Patching)
为了识别这些回路,研究人员使用了一种称为激活修补(也称为因果中介分析)的技术。该过程涉及两个提示词:一个“干净”提示词(例如,“法国的首都是巴黎”)和一个“损坏”提示词(例如,“德国的首都是柏林”)。通过系统地将干净运行中的激活(隐藏状态、注意力头输出或 MLP 输出)替换到损坏运行中,我们可以测量哪些特定组件恢复了正确答案(“巴黎”)。
如果在特定令牌位置修补特定层的残差流(Residual Stream)能够恢复目标令牌的概率,我们就可以得出结论:该组件是事实召回回路的一部分。这种方法使我们能够超越将 LLM 视为“黑盒”的局限,转而绘制信息流经 Transformer 层的路径图。在 n1n.ai 上调用这些模型时,了解这些底层机制有助于编写更高效的 Prompt。
第一阶段:主体识别与属性提取
在第一阶段,模型识别查询的主体。对于像“埃菲尔铁塔位于……”这样的提示,模型必须首先将“埃菲尔铁塔”识别为一个离散实体。
研究表明,在 Gemma-2B 的早期层中,注意力头主要负责从主体令牌中收集信息。这些“主体读取”头将实体的嵌入聚合到残差流中的统一表示中。这一阶段通常发生在模型前 20% 的层中。残差流充当了高速公路,承载着这一实体表示向前传递。
第二阶段:属性映射与关系检索
一旦识别出主体,模型必须将其映射到请求的属性(例如“位置”)。这是最复杂的阶段,涉及多层感知器(MLP)与注意力机制之间的协同作用。
在 Gemma-12B-IT 中,这一阶段更为显著。MLP 充当键值存储器。当残差流将“埃菲尔铁塔”向量带入网络中部的特定 MLP 层时,MLP 会针对“位置”属性进行“激活”。这将表示从“埃菲尔铁塔”转换为“与巴黎相关的上下文”。
开发者专业提示: 当通过 n1n.ai 使用模型时,了解中间层处理这种映射可以帮助设计更好的提示词模板。在提示词中加入清晰的关系标记可以减少属性映射阶段的“噪音”。
第三阶段:对数几率读取与生成
最后阶段发生在后期层。在这里,模型使用“属性提取”头从残差流中提取特定答案,并为反嵌入层(Unembedding layer,将隐藏状态转换为令牌概率的最终线性层)做准备。
在 Gemma-2B 中,这一阶段高度集中在最后 2-3 层。模型本质上是“读取”经过前两个阶段细化的事实信息,并将其投影到词汇空间。有趣的是,残差流在整个过程中保持了极高的保真度,这意味着信息不仅存储在单个神经元中,而且分布在整个向量空间中。
深度对比:Gemma-2B vs. Gemma-12B-IT
| 特性 | Gemma-2B | Gemma-12B-IT |
|---|---|---|
| 召回效率 | 在浅层中效率高 | 分布在中间层 |
| 指令遵循 | 基础水平 | 高级(经过 RLHF 微调) |
| 回路复杂度 | 线性结构 | 多路径 / 冗余结构 |
| 残差流利用 | 对所有阶段至关重要 | 主要信息载体 |
| 处理延迟 | 极低 | 中等(n1n.ai 已优化) |
12B-IT(指令微调)版本表现出更强大的回路。由于它经过了对话数据的训练,其“第二阶段”映射对提示词扰动的敏感度较低。这使其成为复杂企业级应用的更佳选择。
实践实现:使用 Python 测量召回率
如果您使用 TransformerLens 等库,可以可视化这些回路。以下是执行 Logit Lens(对数几率透镜)分析的概念性代码片段,这是激活修补的前置步骤:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
def get_logit_lens(model, tokenizer, text, target_token):
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs, output_hidden_states=True)
# hidden_states 是一个元组 (batch, sequence, hidden_dim)
for i, layer_state in enumerate(outputs.hidden_states):
logits = model.lm_head(layer_state)
probs = torch.softmax(logits[0, -1, :], dim=-1)
target_id = tokenizer.encode(target_token)[-1]
print(f"第 {i} 层: '{target_token}' 的概率为 {probs[target_id].item():.4f}")
# Gemma 示例用法
# model = AutoModelForCausalLM.from_pretrained("google/gemma-2b")
这段代码允许您观察模型在哪个层“决定”了正确答案。在三阶段模型中,您通常会看到概率在从第二阶段过渡到第三阶段时大幅飙升。
为什么残差流是核心?
Gemma 研究中最引人注目的发现是残差流的主导地位。在传统架构中,人们通常认为 MLP 承担了所有繁重的工作。然而,在 Gemma 中,残差流充当了持久的内存缓冲区。注意力头和 MLP 仅对该流进行“增量更新”。
对于开发者来说,这意味着通过激活引导(Activation Steering)或潜空间扰动来“转向”模型是非常有效的。通过稍微修改中间层中的残差流,您可以改变模型的事实输出,而无需重新训练整个网络。这种技术在处理幻觉(Hallucination)问题时展现出巨大潜力。
总结与展望
三阶段回路(主体识别、属性映射、对数几率读取)的发现简化了我们对 LLM “知识”的理解。它证明了事实召回不是一个单一事件,而是一个流水线。对于正在构建下一代 AI 代理的开发者来说,利用像 Gemma-12B-IT 这样表现出清晰且稳健回路的模型,对于提高系统可靠性至关重要。
要在您的生产环境中部署这些先进模型并体验极速推理,请立即访问 n1n.ai。
在 n1n.ai 获取免费 API 密钥。