在人工智能快速发展的格局中,像 GPT-4 和 LLaMA-2 这样的大型语言模型 (LLM) 已成为现代自然语言处理 (NLP) 的基石。标准的工作流程大家都很熟悉: 采用一个大规模的预训练基座模型,然后针对特定任务 (无论是编程、数学还是创意写作) 进行微调。这种方法能产生高性能的模型,但也带来了巨大的后勤挑战。对于每一种新能力,你都需要部署一个独立的、庞大的模型。

理想情况下,我们需要多任务学习 (Multi-Task Learning, MTL) : 一个精通所有任务的单一模型。然而,在所有任务上同时训练一个十亿参数级的模型不仅计算成本极高,而且由于数据隐私限制 (许多数据集所有者不愿共享原始数据) ,这往往是不可能的。

这导致了模型合并 (Model Merging) ——特别是任务算术 (Task Arithmetic) ——的兴起。这个想法非常优雅: 计算微调模型与基座模型之间的差异 (即“任务向量”) ,并将这些向量加在一起以创建一个超级模型。

但这里有一个陷阱。正如“MetaGPT”这篇论文的作者所指出的,现有的方法面临着一个“三难困境 (Trilemma) ”。通常你只能三选二: 最佳性能计算效率数据隐私

图 1: 现有的方法面临着性能、数据隐私和计算成本的三难困境,这阻碍了其在 LLM 上的应用。我们的 MetaGPT 可以在精心近似下解决这些问题,从而扩展到 GPT3 规模的 LLM。

在这篇文章中,我们将探讨 MetaGPT , 这是一篇提出解决这一三难困境新方法的研究论文。通过利用 LLM 的数学特性,MetaGPT 提供了一个闭式解,无需任何数据点即可实现模型的最佳合并。

问题: 为什么合并很难

要理解 MetaGPT,我们首先需要了解任务算术的机制。

当你针对特定任务微调一个预训练模型 (\(\theta_0\)) 时,你会得到一组新的权重 (\(\theta_t\))。 任务向量 (\(\tau_t\)) 简单来说就是权重的变化量:

()\n\\tau _ { t } = \\theta _ { t } - \\theta _ { 0 } .\n[

为了将多种技能 (如数学和编程) 合并到一个模型中,我们将这些任务向量按比例系数 (\(\lambda_i\)) 加回基座模型:

]\n\\theta _ { \\mathrm { f i n a l } } = \\pmb \\theta _ { 0 } + \\sum _ { i = 1 } ^ { T } \\lambda _ { i } \\tau _ { i }\n[

关键的挑战在于确定缩放系数 (\(\lambda\))。你应该添加多少“数学”向量,又该添加多少“编程”向量?

当前现状

如下图 2 所示,现有的方法难以有效地找到这些系数:

  1. 网格搜索 (G-Task Arithmetic): 你尝试所有系数组合。这能产生最佳性能,但对于 LLM 来说在计算上是不可能的。想象一下,为了调整几个数字,需要运行一个十亿参数的模型数千次。
  2. 简单平均 / 固定缩放: 你只需将所有 \(\lambda\) 值设置为一个固定数字 (例如 0.3) 。这既快速又保护隐私,但性能通常不是最优的。
  3. AdaMerging: 这种方法从未标记的测试数据中学习系数。它很准确,但需要同时将多个巨型模型加载到内存中并运行优化循环——这是巨大的内存和计算成本。

图 2: 当前基于任务算术的方法面临着次优性能、巨大的计算和内存成本、维度灾难和数据隐私等问题,这使得其难以扩展到 LLM。我们的方法解决了上述问题,并为将任务算术扩展到 LLM 提供了一条途径。

MetaGPT 旨在处于面板 (d) 所示的最佳平衡点: 最佳性能、隐私保护且高效。

核心方法: MetaGPT

研究人员提出了一种称为模型独占任务算术 (Model Exclusive Task Arithmetic, MetaGPT) 的方法。“模型独占”意味着它依赖于模型权重,而不依赖于训练或验证数据。

定义目标

合并的目标是创建一个最终模型 (\(\theta_{\text{final}}\)),使其在各自的任务上表现得与单个微调模型 (\(\theta_t\)) 一样好。

研究人员通过试图最小化平均损失差 (Average Loss Difference, ALD) 从数学上形式化了这一点。ALD 衡量的是合并模型的损失与特定微调模型的损失之间的差距,并对所有任务取平均值。

]\n\\mathrm { A L D } ( \\lambda _ { 1 } , \\cdots , \\lambda _ { T } , \\tau _ { 1 } , \\cdots , \\tau _ { T } ) = \\frac { 1 } { T } \\sum _ { t = 1 } ^ { T } \\left( \\mathcal { L } _ { t } ( \\theta _ { \\mathrm { f i n a l } } , \\pmb { x } ) - \\mathcal { L } _ { t } ( \\theta _ { t } , \\pmb { x } ) \\right) .\n[

如果我们能找到最小化该方程的 \(\lambda\) 值,我们就解决了合并问题。然而,计算损失 (\(\mathcal{L}\)) 通常需要数据 (\(x\))。为了使其“数据无关”,作者利用了大型语言模型的两个迷人特性。

特性 1: NTK 线性化

第一个见解来自“神经切线核” (Neural Tangent Kernel, NTK) 理论。它指出,随着神经网络变得无限宽 (LLM 可以被认为接近这种情况) ,它们在初始化附近的表现是线性的。

这意味着如果你稍微移动权重 (就像在微调中所做的那样) ,模型的输出会线性变化。

图 3: NTK 线性化的验证。我们随机采样了 Llama- \\({ \\cdot 2 \\cdot 7 \\mathrm { b } }\\) -chat-hf 在不同 \\(\\alpha\\) 下的输出。我们可以看到,采样输出如预期的那样与 \\(\\alpha\\) 呈线性关系。

如图 3 所示,作者在 Llama-2 上验证了这一点。当他们插值权重时,输出几乎呈现完美的线性变化。这使得他们可以用更简单的二次展开来近似复杂的损失函数。

特性 2: 任务向量正交性

第二个见解是,针对不同技能 (例如数学与西班牙语) 的任务向量往往是正交的 。 它们在高维参数空间中指向完全不同的方向。

图 4: 正交性验证。我们计算了六个不同任务向量之间的余弦相似度,发现它们的余弦相似度接近于 0。

图 4 可视化了不同任务向量之间的余弦相似度。对角线是 1.0 (自相似) ,但非对角线元素接近 0。这在几何上意味着,改变权重以提高数学能力并不会显著干扰为提高西班牙语能力而改变的权重。

在数学上,这将不同任务之间的交互项简化为零:

]\n\\tau _ { i } ^ { \\top } \\tau _ { j } = ( \\pmb { \\theta } _ { i } - \\pmb { \\theta } _ { 0 } ) ^ { \\top } ( \\pmb { \\theta } _ { j } - \\pmb { \\theta } _ { 0 } ) = 0 .\n[

闭式解

通过结合损失的泰勒展开 (利用线性特性) 和向量的正交性,研究人员能够在数学上将数据项权重项分离开来。

他们推导出了平均损失差的一个上界,该上界主要取决于任务向量的大小。由于该方程变成了一个关于 \(\lambda\) 的二次函数,他们可以直接求解最优极小值,而无需任何迭代训练或网格搜索。

结果是一个令人惊讶地简单的闭式方程,用于计算任务 \(t\) 的最优缩放系数 \(\lambda_t\):

]\n\\lambda _ { t } = \\frac { | \\pmb { \\theta } _ { t } - \\pmb { \\theta } _ { 0 } | ^ { 2 } } { \\sum _ { k = 1 } ^ { n } | \\pmb { \\theta } _ { k } - \\pmb { \\theta } _ { 0 } | ^ { 2 } } .\n()

这个方程告诉了我们什么? 特定任务的最佳权重取决于该任务向量的范数平方 (大小) 除以所有任务向量范数平方的总和。

直观地说,如果对某项任务的微调需要权重大幅改变 (一个“更长”的向量) ,这表明该任务在最终合并模型中需要更大的影响力。MetaGPT 会自动为这些“更重”的任务分配更高的权重。

实验与结果

这个优雅的理论在实践中站得住脚吗?作者使用 LLaMA-2 和 Mistral 模型在各个领域 (包括通用知识、数学和代码生成) 测试了 MetaGPT,并与最先进的方法进行了对比。

LLaMA-2 上的性能

表 1 将 MetaGPT 与标准方法进行了比较,如权重平均 (Weight Averaging) 、任务算术 (固定缩放) 、Ties Merging 和 DARE。

表 1: 合并不同 LLaMA-2-7B 微调模型在不同数据集上的性能比较。

从数据中得出的关键结论:

  • 一致性: MetaGPT 取得了最高的“归一化平均 (Normalized Average) ”得分 (1.31)。虽然它没有赢得每一列 (DARE 在 HumanEval 上获胜) ,但它在差异巨大的任务之间提供了最佳的整体平衡。
  • 优越性: 它显著优于标准的任务算术 (1.12),证明了计算出的 \(\lambda\) 值优于启发式常数。

与其他方法的集成

MetaGPT 最强大的方面之一是它与从其他优化技术是正交的 (兼容的)

  • Ties-Merging: 专注于通过修剪冗余参数来解决干扰。
  • DARE: 随机丢弃增量参数以减少冗余。

由于 MetaGPT 提供了一种计算缩放系数 (\(\lambda\)) 的方法,它可以与 Ties 或 DARE (它们修改任务向量的结构) 相结合。

表 4: MetaGPT 可以与 DARE 和 Ties-Merging 集成,从而带来进一步的改进。

表 4 显示,将 MetaGPT 添加到 Ties 或 DARE 中能持续提升性能。例如,“Ties + MetaGPT”的得分 (31.57 avg) 高于单独使用 Ties (30.20 avg)。这表明 MetaGPT 可以成为模型合并流程中的一个通用“插件”。

泛化能力

最后,一个好的合并模型应该能处理它以前没见过的数据。作者在“分布外 (Out of Distribution) ”数据集上测试了模型——这些考试和问题并不包含在微调数据集中。

表 5: 分布外泛化

如表 5 所示,MetaGPT 取得了最高的平均分 (31.78),这表明与其他合并策略相比,它更好地保留了 LLM 的通用推理能力。

结论与启示

论文“MetaGPT”在使多任务学习在 LLM 上变得可行方面迈出了重要一步。通过在数学上形式化合并问题并推导出一个仅依赖于权重大小的解决方案,作者消除了对昂贵的网格搜索或私有训练数据的需求。

其启示直接而有力:

  1. 效率: 我们可以在几秒钟内而不是几天内合并大规模模型。
  2. 隐私: 组织可以在不共享底层数据集的情况下合并模型。
  3. 可扩展性: 线性近似在大型模型上仍然有效,这表明随着模型变得更大,该技术将保持相关性。

尽管存在局限性——特别是依赖于共享的预训练基座以及正交性假设 (这在 LLM 中很有效,但在较小的网络中可能并非如此) ——MetaGPT 为模型合并的未来提供了一个稳健且有理论依据的基准。它将任务算术的“艺术”变成了一门精确的科学。