引言
当前的人工智能领域被一种“越大越好”的思维模式所主导。我们在数万亿个 Token 上训练海量的大语言模型 (LLM) ,希望它们能学会从 Python 编程到法语诗歌的一切内容。然而,这种单体式的方法有一个缺点: 当我们希望模型学习一项新任务时,通常不得不重新训练或微调整个系统——或者至少是其中的很大一部分。这不仅计算成本高昂,而且缺乏灵活性。
这就引入了模块化深度学习 (Modular Deep Learning) 的概念。与其依赖一个巨大且不可变的大脑,不如将 LLM 想象成一个核心处理器,它可以根据手头的任务插入不同的“卡带”或模块。需要解决数学问题?插入数学模块。需要翻译成德语?插入德语模块。
这种模块化的愿景依赖于零样本迁移 (Zero-Shot Transfer) ——即将一个在某组任务上训练好的模块,成功应用于一个完全陌生的新任务,且无需额外训练的能力。然而,在这种架构中存在一个隐蔽的问题: 纠缠 (Entanglement) 。
当我们训练一个专用模块 (例如用于新闻摘要) 时,该模块不仅学会了“摘要”,还不可避免地重新学习了基础的英语语法、句子结构和常识——而这些是基础 LLM 已经知道的内容。这种“通用知识”变成了冗余的噪音。它使模块变得臃肿,并让系统更难判断哪个模块最适合解决特定的问题。
在这篇文章中,我们将深入探讨 GenKnowSub (General Knowledge Subtraction,通用知识减法) ,这是由德黑兰大学的研究人员提出的一项新技术。他们假设,通过数学方法从任务特定模块中减去这些冗余的通用知识,我们可以创建出更清晰、更有效的工具,从而显著提升性能。
背景: 模块化 LLM 的现状
在解析新方法之前,让我们先建立 GenKnowSub 所基于的基础概念。
PEFT 和 LoRA 的兴起
微调一个 700 亿参数的模型对 GPU 显存来说是一场噩梦。为了解决这个问题,业界采用了参数高效微调 (PEFT) 。 其中最流行的形式是 LoRA (低秩适应) 。
可以将 LoRA 想象成一组轻量级的“差异”权重。LoRA 不会改变模型的原始大脑,而是在其上训练一个微小的适配层。它相当于在说: “对于这个任务,请将神经元的激活向这个方向稍微调整一下。” LoRA 体积小、可移植且易于交换。
路由问题
如果你有一个包含 50 个不同 LoRA 模块的库——一个用于科学,一个用于历史,一个用于编程等等——模型如何知道针对特定的提示词 (Prompt) 该使用哪一个?
这就是路由 (Routing) 发挥作用的地方。路由算法会分析输入 (通常是逐个 Token 分析) 并动态选择最佳模块。我们要讨论的这篇论文使用了一种最先进的路由方法,称为 Arrow 。
- Arrow 路由: 该算法查看输入 Token,并将其与可用模块的“签名”进行比较。它会选择前 \(k\) 个最相关的模块并组合它们的输出。
问题: 纠缠的知识
这也是作者要解决的核心问题。当你在“历史”数据集上训练 LoRA 时,LoRA 学到了两件事:
- 任务特定知识: 战役日期、国王名字、历史因果关系。
- 通用知识: 如何写出通顺的句子,像“the”或“and”这样的常用词,以及一般推理能力。
基础模型 (如 Phi-3 或 Llama-3) 已经知道第 2 点。让 LoRA 重新学习这些内容会造成冗余。当路由器试图挑选模块时,这些通用知识就像静态噪音一样。如果每个模块都包含通用英语知识,它们在路由器看来都会有点相似,从而使挑选独特的“历史”专家变得更加困难。
核心方法: GenKnowSub
研究人员提出了 GenKnowSub 方法来解耦这两种类型的知识。其直觉非常优雅: 如果我们能捕捉到“通用知识”的表征,并将其从我们的“任务专家”中减去,剩下的应该就是纯粹、浓缩的任务专长。
让我们分解一下这个架构,如下图所示。

如图 1 (a) 所示,该过程始于两条并行的训练轨道。
第一步: 训练模块
- 任务特定 LoRA (\(LoRA_{ts}\)): 模型在特定的任务集群 (如 Flan 数据集) 上进行微调。这些是我们想要使用的标准专家模块。
- 通用知识 LoRA (\(LoRA_g\)): 这是一个巧妙的新增部分。研究人员在一个通用语料库——具体来说是 Wikipedia——上训练了一个单独的 LoRA。这里的目标是创建一个代表“通用语言和事实能力”且不绑定于特定推理任务的模块。
第二步: 减法 (通过否定来遗忘)
一旦两种类型的模块都训练完成,作者就会对神经网络的权重进行算术运算。他们应用了一个被称为“通过否定来遗忘” (forgetting via negation) 的原则。
他们将 残差 LoRA (Residual LoRA, \(LoRA_{res}\)) 定义为从任务特定 LoRA 中减去通用知识 LoRA 的结果。

在这个公式中:
- \(LoRA_{ts}^i\) 是在任务 \(i\) 上训练的模块。
- \(LoRA_g\) 是通用的 Wikipedia 模块。
- \(LoRA_{res}^i\) 是新的、经过提炼的模块。
通过执行这种减法,研究人员有效地移除了任务模块重新学习到的“平均”语言信息。\(LoRA_{res}\) 中剩余的权重代表了增量——即该特定任务所需的、不仅仅是通用语言能力的独特信息。
第三步: 使用 Arrow 进行动态适应
现在我们有了一个由这些“清理后”的残差 LoRA 组成的库,我们需要使用它们。这发生在推理阶段 (图 1b) 。
系统使用 Arrow 路由算法来决定激活哪些模块。对于输入序列中的每个 Token (例如,你提示词中的每个单词) ,模型会计算可用残差模块的加权和。

这里:
- \(c_t^{i,l}\) 是 Arrow 路由器为 Token \(t\) 计算的系数 (重要性得分) 。
- \(LoRA_{res}^{i,l}\) 是我们清理后的残差模块。
由于残差模块中通用知识的“噪音”较少,假设是路由器可以做出更精确的决策,并且模块的组合冗余度也会降低。
实验与结果
为了验证这一理论,作者将 GenKnowSub 与几个基线进行了广泛的测试。他们主要使用 Phi-3-mini (一个 38 亿参数的模型) 作为基础模型,该模型以强大的推理能力而闻名。
基线模型:
- Phi-3 Base: 没有任何模块的原始模型。
- Shared: 在所有任务上训练的单个 LoRA (非模块化) 。
- Arrow: 不进行减法的标准模块化方法。
- Mean Norm: 一种简单的消融实验,他们减去的是所有任务模块的平均值,而不是专用的通用知识模块。
英语推理基准测试的表现
第一个测试场是一套包含 9 个标准英语推理数据集的组合,涵盖物理 (PIQA) 、逻辑 (BoolQ) 和常识 (HellaSwag) 。

表 1 的关键结论:
- 模块化胜出: Arrow 和 GenKnowSub 都击败了“Shared”基线。专用模块优于一个通才适配器。
- 减法有效: GenKnowSub (特别是使用平均通用 LoRA 时) 的平均得分达到 67.17% , 而标准 Arrow 为 65.56% 。 虽然 1.6% 听起来可能不多,但在固定基准的零样本泛化领域,这是一个一致且有意义的提升。
- 专用 vs. 平均: 注意“Mean Norm”这一行 (62.25%) 。简单地减去专家的数学平均值实际上损害了性能。这证明你不能只是减去随机权重;你必须减去一个专门代表通用知识的模块 (Wikipedia LoRA) 。
多语言泛化
当观察跨语言迁移时,结果变得更加有趣。一个主要在英语任务上训练的模型能否使用这些模块来解决德语或法语的问题?
作者训练了英语 (\(En\))、德语 (\(De\)) 和法语 (\(Fr\)) 的通用知识 LoRA,并尝试减去不同的模块。

表 2 分析:
- 稳健的提升: 在德语和法语中,GenKnowSub 均显著优于基线。对于德语,平均准确率从 42.09% (标准 Arrow) 跃升至 45.15% (使用德语减法的 GenKnowSub) 。
- 特定语言减法的力量: 有趣的是,减去英语通用知识对德语任务帮助不大。但是减去德语通用知识 (源自德语 Wikipedia) 提供了巨大的提升。
- 解释: 这表明当模型试图使用英语训练的模块解决德语任务时,这些模块的“英语特性”会产生干扰。通过减去通用的德语语言特征 (或其他设置中的英语特征) ,我们留下了一个更加语言无关的“推理核心”,它能更好地跨语言迁移。
方法的局限性: Phi-2 实验
为了了解该方法的边界,研究人员还在 Phi-2 上进行了测试,这是一个比 Phi-3 稍旧且较弱的模型。

观察表 4: 在这里,收益微乎其微甚至不存在。为什么? 作者将其归因于 Phi-2 的基础能力。Phi-2 侧重于英语,缺乏 Phi-3 那样的潜在多语言能力。GenKnowSub 依赖于基础模型在 LoRA 引导被精炼后本身具备处理任务的潜在知识。如果基础模型根本就不太懂德语,那么无论多少模块减法都无法弥补这一点。
这凸显了一个关键约束: GenKnowSub 就像透镜一样聚焦模型现有的能力;它无法创造不存在的能力。
结论与启示
“GenKnowSub” 论文为模块化 AI 的未来提供了一个引人入胜的叙事。它挑战了训练模块纯粹是一个加法过程的假设。有时,为了学习一项特定技能,我们必须显式地“遗忘”或减去围绕它的通用背景。
主要贡献总结:
- 解耦: 论文成功证明了任务特定知识和通用知识在 LoRA 模块中是纠缠在一起的,分离它们是有益的。
- GenKnowSub 算法: 一种简单、计算成本低廉的方法 (权重的线性减法) ,可以在训练后应用,无需复杂的联合优化。
- 跨语言提升: 该方法在通过去除特定语言的通用噪音将推理技能迁移到新语言方面表现尤为出色。
更广泛的意义: 对于学生和从业者来说,这项研究表明我们构建适配器库的方式可能会发生转变。我们可能会走向这样一个未来: 我们从中心下载一个“干净”的推理模块,由于它已经洗去了原始训练偏差 (通用知识) ,它可以无缝地插入到我们的特定工作流中——无论我们使用的是英语、法语还是 Python。
通过将通用知识视为一个独特的、可减去的组件,我们离真正的乐高积木式、可组合的人工智能又近了一步。
](https://deep-paper.org/en/paper/2505.10939/images/cover.png)