跳转至

AdaptiveK: Complexity-Driven Sparse Autoencoders for Interpretable Language Model Representations

会议: ACL 2026
arXiv: 2508.17320
代码: https://github.com/hiyukie/adaptiveK
领域: 模型可解释性 / Sparse Autoencoder
关键词: 稀疏自编码器, 机制可解释性, 线性探针, 自适应稀疏, 表征复杂度

一句话总结

AdaptiveK 提出一种由输入语义复杂度驱动的 Sparse Autoencoder,让简单文本激活更少特征、复杂文本激活更多特征,在 8 个自回归 LLM 和附加架构实验上改善重构质量、概念解耦与训练效率,并减少固定 TopK 需要反复调参的问题。

研究背景与动机

领域现状:Sparse Autoencoder(SAE)已经成为解释 LLM 内部表征的重要工具。它把模型激活分解到一个更高维但稀疏的 latent dictionary 中,希望每个 latent 对应更单义、更可理解的概念,从而缓解 polysemanticity 和 superposition 带来的解释困难。近年的 TopK SAE、BatchTopK、Gated SAE、JumpReLU、P-anneal、Matryoshka SAE 等方法主要围绕“如何在重构 fidelity 和稀疏性之间取平衡”改进。

现有痛点:这些 SAE 大多给所有输入施加统一的稀疏约束。例如 TopK 固定每个样本只保留同样数量的 active features,L1 / Gated / P-anneal 类方法也给不同输入施加相似的稀疏压力。问题是文本复杂度并不相同:一个简单短概念可能只需要少量特征就能解释,而专业长上下文、包含多实体和复杂逻辑的文本需要更多表示容量。统一稀疏约束会让简单样本浪费特征,也会让复杂样本被迫欠表示。

核心矛盾:SAE 训练通常把稀疏度当作全局超参数,但真实输入对表示容量的需求是局部变化的。固定 \(k\) 为了照顾复杂样本会牺牲简单样本的稀疏性;为了保持整体稀疏又会让复杂样本重构不足。更麻烦的是,研究者往往要训练多个 \(k\) 或多个 sparsity penalty 设置,才能找到合适的 Pareto trade-off。

本文目标:作者想解决三个具体问题:第一,LLM 激活中是否线性编码了“上下文复杂度”;第二,能否用这个复杂度信号动态决定 SAE 的 active feature 数量;第三,这种自适应稀疏是否在重构、可解释性和训练效率上优于固定稀疏基线。

切入角度:论文借鉴线性探针研究中的一个观察:很多高层属性,如 sentiment、政治立场、时空信息、truthfulness 等,都可以在 LLM 激活空间中用线性方向读出。作者进一步假设,文本复杂度虽然是多维属性,但也会被 LLM 表征线性编码;如果能用低成本 probe 读出复杂度,就可以把它转化成 SAE 的动态 \(k\)

核心 idea:用线性探针预测输入复杂度,再把复杂度映射成每个样本自己的 TopK 值,从而用“复杂输入多给特征、简单输入少给特征”替代“一刀切固定稀疏度”。

方法详解

AdaptiveK 的方法可以看成在普通 TopK SAE 外面加了一个“复杂度控制器”。这个控制器不是直接读原文本,而是读 LLM 的 hidden activation;它输出一个连续复杂度分数,再通过 sigmoid 映射成当前样本应该保留多少个 SAE latent。这样,SAE 的 dictionary、encoder、decoder 仍然是熟悉的架构,但激活函数从固定 TopK 变成了 sample-adaptive TopK。

整体框架

整个 pipeline 分为四步。第一步,把输入上下文送入待解释的 LLM,抽取选定层的最后 token hidden state,作为上下文级激活 \(x\)。第二步,用一个经过预训练的线性 probe 预测复杂度 \(c\)。第三步,把 \(c\) 映射为自适应稀疏度 \(k_{adp}\),范围由 \(k_{min}\)\(k_{max}\) 控制。第四步,SAE encoder 产生 latent pre-activation 后,只保留当前样本的 top-\(k_{adp}\) 激活,再由 decoder 重构原始激活。

论文的关键直觉是:最后 token representation 已经聚合了前文上下文信息,因此可以作为“上下文复杂度”的读出点。主实验在 pile-uncopyrighted 上构造 250,000 个训练上下文和 10,000 个测试上下文,并用 GPT-4.1-mini 给上下文做多维复杂度评分。作者在正文实验设置中称每个上下文为 2048 tokens,附录又描述为 1024 tokens;这属于论文中一个需要注意的细节不一致,但不影响方法主线。

关键设计

  1. 用线性 probe 读出上下文复杂度:

    • 功能:为每个输入激活预测一个 0 到 10 的复杂度分数,作为 AdaptiveK 的控制信号。
    • 核心思路:作者用 GPT-4.1-mini 从词汇复杂度、句法复杂度、概念密度、领域专门性、逻辑结构等维度给文本标注复杂度,再用 ridge regression 从 LLM hidden state 预测这个分数。训练目标可以写作 \(L(w,b)=\frac{1}{n}\sum_i(y_i-(w^Tx_i+b))^2+\frac{\lambda}{2}\|w\|_2^2\)
    • 设计动机:如果复杂度只能靠复杂非线性模型预测,AdaptiveK 会引入额外黑盒;而线性 probe 几乎和现有 mechanistic interpretability 里的“线性方向”假设兼容,也能让复杂度信号更容易解释。
  2. 把复杂度映射成自适应 TopK:

    • 功能:让每个输入拥有自己的 active feature budget,而不是所有输入共享一个固定 \(k\)
    • 核心思路:复杂度 \(c\) 经过 sigmoid 变换后落在 \([k_{min}, k_{max}]\) 范围内:\(k_{adp}=k_{min}+\sigma(s((c-c_{min})/(c_{max}-c_{min})-0.5))(k_{max}-k_{min})\)。其中 \(s\) 控制曲线陡峭度,默认配置使用 \(k_{min}=20\)、base \(k=80\)\(k_{max}=320\)
    • 设计动机:线性映射可能对极端复杂度过于敏感,固定 TopK 又完全忽略复杂度。sigmoid 映射提供了平滑但有上下界的容量分配,既避免简单样本激活过多 latent,也避免复杂样本无限扩张。
  3. 三阶段训练稳定 probe 与 SAE 的耦合:

    • 功能:避免 SAE 重构目标把复杂度 probe 学歪,同时让 probe 和 SAE 最终能协同优化。
    • 核心思路:第一阶段只训练复杂度 probe;第二阶段冻结 probe,只训练 SAE,损失为 \(L_{SAE}=L_{recon}+\alpha L_{sparsity}+\beta L_{aux}\),其中 \(L_{recon}\) 是重构误差,\(\alpha=0.005\)\(\beta=1/32\);第三阶段联合微调 probe 和 SAE,并用 deviation penalty 约束 probe 不要偏离预训练参数。
    • 设计动机:如果一开始就联合训练,probe 可能为了迎合 SAE 的重构误差而偏离原来的复杂度语义;如果永远冻结 probe,又可能错过和 SAE latent 空间共同适配的机会。三阶段训练是在语义稳定性和任务适配之间折中。

损失函数 / 训练策略

训练分为 probe 预训练、冻结 probe 的 SAE 训练、联合微调三步。probe 采用 ridge regression,并通过 5-fold cross-validation 在 \(\{0.001,0.01,0.1,1.0,10.0,100.0,1000.0\}\) 中选择正则强度,最终选择 \(\lambda=100.0\)

SAE 阶段的重构目标是让 decoder 输出 \(\hat{x}\) 接近原激活 \(x\),稀疏正则使用归一化 \(L_1\)\(\|z\|_1/\|x\|_2\),并加入辅助 loss 处理 dead features。联合微调阶段的目标为 \(L_{joint}=L_{SAE}+\gamma(L_{probe}+\delta L_{deviation})\),其中 \(\gamma=0.9\)\(\delta\) 初始为 0.2,并在 0.01 到 0.5 之间动态调整,防止 probe 参数偏离预训练值过远。优化器使用 Adam,学习率 \(1e^{-3}\),warm-up 15 steps,并在 70% 训练进度后做线性衰减。

实验关键数据

主实验

论文主实验覆盖 8 个 decoder-only LLM:Pythia-70M、Pythia-160M、Gemma-2-2B、Gemma-2-9B、Llama-3.1-8B、Qwen-3-8B、Qwen-3-14B、Phi-4-14B。所有 SAE 的 dictionary size 都是 16,384,对比 7 类基线:ReLU、ReLU_new、TopK、BatchTopK、Gated、P-anneal、Matryoshka。正文的 Pareto 曲线显示 AdaptiveK 在同等 sparsity 下整体获得更低 L2 loss、更低 unexplained variance 和更低 \(1-\cos\),但论文没有在主文表格中给出每个模型的逐点数值,因此这里不编造“提升百分比”。

线性复杂度 probe 的第一组可复核数字来自 Pythia-70M 上的 250,000 训练上下文和 10,000 测试样本。线性模型虽然比 MLP 略低,但与非线性模型非常接近,支持“复杂度可线性读出”的前提。

复杂度预测器 RMSE ↓ Pearson ↑ Spearman ↑ 结论
Linear probe 1.41 0.72 0.76 已接近非线性模型,且可解释性更好
MLP 1.37 0.74 0.77 数值略优,但引入额外非线性黑盒
XGBoost 1.42 0.71 0.74 没有超过线性 probe

自适应容量分配的代表性现象也很清楚:固定 TopK 在所有复杂度样本上保持同一个 \(k\),而 AdaptiveK 会随复杂度升高增加 active features。论文 Fig. 1 中,TopK 以固定 80 features 为例,AdaptiveK 则可从约 103 features 扩展到约 394 features。

消融实验

作者重点消融了复杂度到 \(k\) 的映射范围、sigmoid 陡峭度、probe 权重和 mapping function。一个核心结果是:扩大 \(k_{max}\) 会稳定改善重构,但平均激活数也会上升,说明 AdaptiveK 仍服从常见的容量-稀疏 trade-off。

\(k\) 范围设置 测试集 min \(k\) 测试集 max \(k\) 平均 \(k\) Explained Var ↑ Cosine Sim ↑ L2 Ratio
\(k_{min}=20,k_{max}=320\) 96 291 214 0.743 0.909 0.921
\(k_{min}=20,k_{max}=480\) 132 435 313 0.768 0.919 0.926
\(k_{min}=20,k_{max}=640\) 170 579 415 0.789 0.926 0.935

sigmoid 陡峭度 \(s\) 的消融显示方法对该超参数不敏感。以 Gemma-2-2B 为例,\(s=2.0\)\(s=12.0\) 会把 \(k\) 的动态范围从 143-225 扩大到 58-315,但 explained variance 只在 0.738-0.743 间变化,cosine similarity 基本保持在 0.908-0.909。

\(s\) min \(k\) max \(k\) avg \(k\) Explained Var ↑ Cosine Sim ↑ L2 Ratio
2.0 143 225 188 0.738 0.908 0.911
6.0 96 291 214 0.743 0.909 0.921
12.0 58 315 232 0.742 0.909 0.917

关键发现

  • 复杂度确实能被线性 probe 读出:在 Pythia-70M 上,Linear probe 的 RMSE 为 1.41、Pearson 为 0.72、Spearman 为 0.76,与 MLP / XGBoost 接近;Gemma-2-2B 的 layer-wise 分析中,probe 在第 22 层达到 Pearson 0.814、RMSE 1.18。
  • AdaptiveK 在 Pareto frontier 上优于固定稀疏:论文在 L2 loss、unexplained variance、cosine similarity 三组曲线中都报告 AdaptiveK 在同等 sparsity 下更优;少数基线需要 10 倍以上的更高 sparsity 才能追上部分重构指标。
  • 跨架构扩展可行:BERT-340M 的 cosine similarity 为 0.89、L2 ratio 为 0.8225;T5-small encoder 的 explained variance / cosine similarity / L2 ratio 分别为 0.97 / 0.98 / 1.0093,decoder 为 0.74 / 0.97 / 1.0139。
  • 训练效率有现实意义:Gemma-2-2B 上 AdaptiveK 总训练时间为 11,084 分钟,单个固定稀疏 TopK 为 13,955 分钟;如果传统方法为了调参训练 6 个 sparsity level,总耗时会超过 AdaptiveK 的 6 倍。
  • 可解释性指标也支持 AdaptiveK:RAVEL 上 AdaptiveK 的 disentanglement / cause / isolation 分数约为 0.62 / 0.60 / 0.65;Sparse Probing 中 SAE Full / LLM Full 约为 0.997,Top-1 latent 能捕获约 82% 的 SAE full representation 信息。

亮点与洞察

  • 把“输入复杂度”从直觉变成了训练信号:很多 SAE 工作都默认样本难度不同,但仍用全局稀疏超参数处理。AdaptiveK 的关键价值在于把这个直觉落到可训练、可测量的线性 probe 上。
  • 自适应稀疏比单纯扩大 dictionary 更优雅:固定 TopK 想改善复杂样本,只能整体增大 \(k\),这会让简单样本也激活更多特征。AdaptiveK 不是简单加容量,而是让容量跟随样本移动,因此更贴近解释任务里“只激活必要概念”的目标。
  • 线性 probe 的选择很克制:作者没有用一个复杂 controller 网络去决定 \(k\),而是用 ridge regression。这让方法更容易和 mechanistic interpretability 的线性方向叙事连接,也降低了“用另一个黑盒解释黑盒”的尴尬。
  • 实验把 reconstruction 和 human-understandable interpretability 分开看:论文不仅看 L2、variance、cosine,还用 MaxAct、VocabProj、SAEBench 风格指标检查 latent 是否更语义集中。尤其是 MaxAct 中 AdaptiveK 对 biomedical 例子更聚焦专业术语,而 TopK 会混入较多语义弱的功能词,这个分析比单纯报重构误差更有说服力。

局限与展望

  • 复杂度标注依赖 GPT-4.1-mini,成本和偏差都需要进一步验证:作者承认由于 API 标注成本,训练数据远小于 SAEBench 的 500,000,000 tokens。虽然 250,000 contexts 已经表现不错,但复杂度评分本身可能携带模型偏好,也可能对非英语、代码、数学文本不稳定。
  • 上下文长度描述存在不一致:正文实验设置称每个 context 为 2048 tokens,方法和附录多处又写 1024 tokens。这不一定改变结论,但会影响复现者对 buffer、last-token representation 和 token-level evaluation 的理解。
  • 主结果大量依赖曲线而非表格:Pareto frontier 图展示了 AdaptiveK 相对基线的优势,但缺少逐模型、逐 sparsity 的完整数值表。对于需要严格比较提升幅度的读者,复现实验或源码日志仍然必要。
  • 复杂度不等于所有解释难度:文本复杂度可以解释“需要多少特征”的一部分,但某些概念可能语义简单却机制上复杂,例如安全拒答方向、特定事实编辑、稀有 token 行为。未来可以把复杂度 probe 扩展为多种 capacity signals,而不是单一分数。
  • 更大规模训练仍需检验:作者强调 AdaptiveK 用较小数据就能达到强表现,但它在真正超大规模 SAE、token-level 全量训练、跨语言语料和 frontier LLM 上的稳定性还需要进一步实验。

相关工作与启发

  • vs TopK SAE / BatchTopK SAE:TopK 和 BatchTopK 直接限制 active latent 数量,优点是简单稳定,缺点是 \(k\) 对所有输入固定。AdaptiveK 保留 TopK 的清晰稀疏机制,但把 \(k\) 从全局超参数变成样本级变量,因此更适合复杂度差异大的上下文。
  • vs Gated SAE / P-anneal SAE:Gated 和 P-anneal 通过正则或门控缓解 L1 shrinkage 和稀疏控制问题,但稀疏压力仍主要是全局设定。AdaptiveK 的区别在于稀疏度本身由输入内容决定,而不是只由训练配置决定。
  • vs Matryoshka SAE:Matryoshka 关注多层级 dictionary 和 feature hierarchy,能处理 feature splitting / absorption 相关问题。AdaptiveK 则从“每个样本该用多少 latent”入手,两者并不冲突;未来可以考虑把自适应 \(k\) 与层级 SAE 结合。
  • vs 线性探针可解释性工作:Gurnee & Tegmark 等工作证明 LLM 中存在时空等线性方向,本文把类似思想用于“复杂度”这一更综合的属性。启发在于:很多解释工具的超参数,也许可以由模型激活中的线性可读属性自动控制。
  • 对后续研究的启发:AdaptiveK 提醒我们,SAE 的可解释性不只取决于 dictionary 学得好不好,还取决于激活预算如何分配。对于多模态模型、代码模型、agent trajectory 等长上下文任务,可以尝试用任务复杂度、信息密度、步骤数或不确定性来动态控制 SAE 容量。

评分

  • 新颖性: ⭐⭐⭐⭐☆ 从输入复杂度自适应决定 SAE 稀疏度是清晰且有用的创新,虽然核心部件仍是线性 probe + TopK SAE 的组合。
  • 实验充分度: ⭐⭐⭐⭐☆ 覆盖 8 个 decoder LLM、7 类 SAE 基线、多个附录指标和消融;不足是主 Pareto 结果缺少完整数值表,部分设置描述也不够一致。
  • 写作质量: ⭐⭐⭐⭐☆ 动机链条清楚,方法和训练策略讲得完整;但个别维度描述重复、上下文长度不一致、表格与曲线信息分散,影响复现友好性。
  • 价值: ⭐⭐⭐⭐⭐ 对 SAE 可解释性实践很有启发,尤其适合需要减少固定 \(k\) 调参成本、同时希望保持 latent 语义集中度的研究场景。