跳转至

Sparse Feature Coactivation Reveals Causal Semantic Modules in Large Language Models

会议: ACL2026
arXiv: 2506.18141
代码: https://github.com/shanestorks/SAE-Semantic-Modules
领域: LLM可解释性 / 机制解释 / 知识表示
关键词: 稀疏自编码器、特征共激活、语义模块、因果干预、模型控制

一句话总结

论文用少量 prompt 中 SAE 特征的跨层共激活图自动发现 LLM 中表示概念和关系的语义模块,并证明对这些模块进行消融和放大能在最高 98% 的单概念/关系场景、最高 90% 的组合场景中可预测地操控 Gemma 2 2B 的关系推理输出。

研究背景与动机

领域现状:机制可解释性近年常用 sparse autoencoder 提取 LLM 激活中的可解释特征。SAE 能把 dense activation 分解成较稀疏、较单义的 feature direction,使研究者能分析某些概念、实体或行为在模型内部如何激活。

现有痛点:单个 SAE feature 往往仍然 polysemantic 或不稳定;跨层 transcoders 和 circuit tracing 可以画出信息流,但图中节点可能成百上千、连接稠密,需要大量人工理解。另一方面,关系知识推理,例如“中国的首都是北京”,涉及概念 China 与关系 capital city 的组合,单层线性方向或单个 feature 很难解释跨层协同。

核心矛盾:LLM 的知识可能分布在多个 feature 和多个层中,真正起作用的不是孤立特征,而是跨层共同激活的一组功能模块。可解释性方法既要足够细粒度,又要自动化和可干预。

本文目标:作者希望从很少 prompt 的 SAE 激活中构造 inter-layer feature network,自动抽取语义一致、上下文一致、且对输出有因果作用的 component,并测试这些 component 是否可以组合式操控模型输出。

切入角度:如果多个 SAE feature 在相邻层、同一 prompt token 序列上高度相关地激活,它们可能属于同一计算模块。再过滤掉高密度通用 feature,就能得到更稀疏、更可解释的弱连通分量。

核心 idea:把 SAE feature 当作图节点,用跨层共激活相关性连边,再把 connected component 当成概念或关系模块,通过 ablation/amplification 验证其因果功能。

方法详解

整体框架

方法要解决的问题是:LLM 里表示某个概念或关系的,往往不是一个孤立 SAE feature,而是一组跨层协同激活的 feature,怎样自动找出这些功能模块并验证它们真的因果地决定输出。整条 pipeline 从 Gemma 2 2B 的 concept-relation prediction prompts(country facts、word translation、verb transformation)出发,先在前向传播中收集每层 SAE 激活、取每 token 的 top features,按跨层共激活相关性连边构成图,剪掉高密度通用 feature 后用弱连通分量抽出 component;最后对这些 component 做消融、放大与组合干预,以输出 token 分布是否按预期变化反向确认它们的语义。整个过程中 component 不靠人工指定“China feature”或“capital feature”,而是在具体 prompt 下由共激活关系涌现,再用 KL divergence 和 steering success 验证。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    A["Gemma 2 2B + 概念-关系 prompt<br/>国家事实 / 词翻译 / 动词变换"] --> B["前向传播收集每层 SAE 激活<br/>每 token 取 top-k=5 特征"]
    B --> C["跨层共激活图<br/>相邻层特征相关 ρ>0.9 连边"]
    subgraph S2["稀疏剪枝与组件抽取"]
        direction TB
        D["按 density≤0.01 剪掉通用特征<br/>对稀疏图取弱连通分量"] --> E["概念/关系组件<br/>跨多 prompt 取交集保上下文一致"]
    end
    C --> S2
    S2 --> F["因果干预与组合 steering<br/>消融置零 / 放大 / 概念×关系拼装"]
    F --> G["输出 token 分布变化<br/>KL 散度 + steering 成功率验证"]

关键设计

1. 跨层 feature coactivation 图:用“一起激活”而非“描述文本”定义模块

单个 SAE feature 的自动描述并不可靠——论文里 Spain component 的描述未必出现 Spain,translation language component 甚至会被标成 programming,所以纯文本描述无法支撑模块发现。方法转而直接利用模型内部动态:每层取 top activated features,节点记为 \((\ell,i)\);若相邻层两个 feature 在 prompt token 维度上的激活相关系数 \(\rho>0.9\),就建立一条有向边。这样连出来的图捕捉的是“这些 feature 是否在同一语境中一起工作”,从而把离散 feature 组织成可解释的跨层网络。

2. 稀疏性剪枝与 component 抽取:滤掉通用计算,留下任务特异的单义模块

高密度 feature 常承载语法或通用计算,若直接纳入会让 component 不可解释,所以先用 Neuronpedia 的 activation density 只保留 \(d_{\ell,i}\leq0.01\) 的 sparse features 并去掉孤立点,再对稀疏图求弱连通分量。为强调 context consistency,concept component 取同一概念跨多个关系所得 component 的交集,relation component 取同一关系跨多个概念所得 component 的交集——这样 China component 才能在 capital、currency、language 等 prompt 中保持稳定,而不是每个 prompt 各自漂移。

3. 因果干预与组合 steering:只有能被操控并改变输出的才算 causal module

仅仅与任务相关还不够,方法要求 component 能被干预并造成可预测的输出变化。具体做法是对 in-prompt component 做 ablation(将其 SAE feature activation 置零,再用 decoder 重构后继续前向),对 target component 做 amplification(按观测到的最大激活比例提升 activation),成功标准是输出转向目标概念、目标关系或二者的组合。组合 steering 进一步检验概念和关系能否分开操控、自由拼装(如把“中国的首都”改成“尼日利亚的货币”),而不是缠在同一条不可分解的方向上。

损失函数 / 训练策略

论文不训练新模型,直接复用 Gemma 2 2B 与预训练 Gemma Scope JumpReLU SAE。核心超参为每层每 token 选 top-\(k=5\) 激活 feature、跨层相关阈值 \(\tau_{corr}=0.9\)、feature density 阈值 \(\tau_{density}=0.01\)。干预用 TransformerLens 实现,成功率在 zero-shot prompt template 上评估,且评估用的 prompt 与收集激活时的模板不同,以此检验 component 的上下文泛化能力。

实验关键数据

主实验

任务 概念数 / 关系数 模型原始准确率 概念 steering 平均 SR 关系 steering 平均 SR 组合 steering 平均 SR
Country facts 10 countries / 3 facts 100% 96% 93% 90%
Word translation 11 words / 3 languages 100% 75% 98% 64%
Verb transformation 8 verbs / 5 relations 100% 48% 23% 19%
最高单项 若干 relation 100% up to 98% up to 100% up to 100%
论文总体结论 三类任务 100% up to 98% up to 98% up to 90%

消融实验

配置 关键指标 说明
Full component, country facts 概念/关系/组合 SR = 96% / 93% / 90% 操控完整语义模块
Single most causal feature baseline 概念/关系/组合 SR = 83% / 83% / 75% 只干预 KL 最大的单个 feature
Ablate country-fact components 其他 country facts accuracy 1.00,translation 0.93,verb 1.00 模块多数具有任务特异性
Ablate word-translation components country facts 1.00,translation 0.83,verb 1.00 同任务关系之间有少量重叠
Ablate verb-transformation components country facts 0.73,translation 0.64,verb 0.63 verb 模块更不特异,也对应较低 steering 成功率
Transcoder proof-of-concept 约 27% steering success 方法可迁移但仍明显弱于 SAE 设置

关键发现

  • 2-3 个 component 通常对输出 token 分布有显著更高的 causal effect,说明任务相关计算不是均匀分散在所有激活 feature 上。
  • 概念 component 更早出现:8/10 个 country components 从第一层开始,word/verb components 也都从第一层开始;关系 component 更集中在后层,常跨最后 1/4 到 1/2 层。
  • country facts 和 translation 的 component 可组合性较强,能把“中国的首都”干预成“尼日利亚的货币”这类复合反事实输出;verb transformation 的 synonym、antonym、past tense 较难,因为答案依赖词义、词性和上下文。
  • 完整 component 明显优于单 feature,支持“概念不是一个 feature,而是一组分布式功能方向”的观点。

亮点与洞察

  • 论文最有意思的地方是从“找 feature”推进到“找 feature module”。这更符合神经网络分布式表示的直觉,也比单 feature steering 更稳。
  • 共激活图是一个轻量但有效的中间层表示。它不需要完整 circuit tracing,也不需要训练新 probing model,就能把跨层 SAE 激活组织成可干预结构。
  • 概念早层、关系后层的发现很有启发,暗示实体/词项信息可能较早被建立,而抽象关系或操作在后层组合。
  • 组合 steering 对知识编辑和安全控制都有意义。如果概念和关系能分开操控,就可能实现更细粒度的事实修正、风格控制或行为约束。

局限与展望

  • 实验只覆盖 3 类小规模多关系任务,并且要求模型原始任务准确率为 100%。对开放问答、长文本推理、多跳事实和非客观关系的泛化仍未知。
  • component 选择仍有人工启发式。抽取 connected component 是自动的,但选择哪些 component 代表某个概念/关系,以及是否取并集或交集,仍依赖任务经验。
  • 模型主要是 Gemma 2 2B,附录仅有 Gemma 2 9B 的补充。不同架构、不同规模、不同 SAE 质量下是否稳定,还需要验证。
  • 只保留 low-density features 会排除一些关键通用计算。作者也观察到 ablate high-density features 会导致语法和语义崩坏,说明这些 feature 可能承担重要但未解释的功能。
  • 对 transcoders 的迁移只有约 27% steering success,说明“共激活 component”不是可直接套用到所有字典/电路工具的成熟方案。

相关工作与启发

  • vs 单 feature SAE 分析: 单 feature 更容易解释但不够完整;本文强调跨层 feature group,能更全面捕捉概念和关系。
  • vs circuit tracing / cross-layer transcoders: circuit tracing 更细但图复杂、成本高;本文用 feature coactivation 得到更轻量的模块级解释。
  • vs knowledge neurons / causal tracing: 知识神经元关注局部神经元或层,本文关注 SAE feature component,并能做组合式反事实 steering。
  • vs function vectors / relation vectors: function vector 常把关系作为线性方向或 attention head 中的功能表示,本文给出 feature-level 模块视角,可解释为何某些关系如 synonym/antonym 更难被模块化。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 从 SAE 共激活自动抽取 causal semantic modules,非常漂亮。
  • 实验充分度: ⭐⭐⭐⭐ 干预、组合、特异性和层分布分析完整,但任务和模型规模偏小。
  • 写作质量: ⭐⭐⭐⭐ 方法线清晰,实验表充分,部分 component 选择启发式解释还可更系统。
  • 价值: ⭐⭐⭐⭐⭐ 对机制解释、模型编辑和可控生成都有强启发,代码公开提升复现价值。