跳到正文

10 模型合并:不重新训练地组合能力

原始课件:merging (v7).pptx(25 页)

1. 基本思想:任务向量

设基础模型参数为 θ0\theta_0,在任务 A 上微调得到 θA\theta_A。任务向量定义为:

τA=θAθ0.\tau_A = \theta_A - \theta_0.

若有多个任务向量,可以直接组合:

θmerge=θ0+ατA+βτB.\theta_{\mathrm{merge}} = \theta_0 + \alpha \tau_A + \beta \tau_B.

整个过程不需要访问原始训练数据,也不需要重新进行完整训练。合并的直觉是:微调增量记录了模型为某个任务学到的方向,组合这些方向就可能得到多能力模型。

2. Task Arithmetic

Editing Models with Task Arithmetic 展示了任务向量的加、减和类比操作:

  • 加上分类任务向量,获得对应分类能力。
  • 减去某个风格或属性向量,削弱该行为。
  • 用向量差异表达任务之间的迁移关系。

方法简单、计算便宜,但线性叠加只是近似。不同任务可能修改同一组参数,导致干扰、符号冲突或能力相互抵消。

3. 能力、语言与对齐的迁移

课件用中文模型和对齐模型说明,合并可以把语言能力、任务能力和安全行为组合到同一模型中。实际效果取决于:

  • 任务向量是否在相近的参数坐标中表达。
  • 合并系数是否经过验证。
  • 不同模型的基础检查点是否一致。
  • 能力和安全向量是否互相冲突。

一个重要教训是:合并成功不代表所有行为都能无损叠加。安全拒答、风格控制和事实知识可能共享参数,因此需要单独回归测试。

4. 跨领域案例

课件列出若干应用:

  • 语言模型:把中文能力、指令跟随和安全对齐向量合并。
  • 奖励模型:合并不同偏好或不同奖励目标的模型,研究行为权衡。
  • 语音模型:Synthesized2Real 使用模型向量把合成数据训练的能力迁移到真实语音场景。
  • 持续学习:用合并避免多任务顺序微调带来的遗忘,相关研究包括 arXiv:2412.19512arXiv:2502.12672

5. 解决参数干扰

5.1 TIES-Merging

TIES-Merging 观察到微调向量中包含大量小幅噪声,且不同任务对同一参数的更新符号可能冲突。其主要步骤是:

  1. 截断幅度较小的更新,减少噪声。
  2. 对同一参数的更新符号进行冲突处理。
  3. 只聚合与共识符号一致的有效更新。

5.2 DARE

DARE 随机丢弃部分任务向量元素,再对保留部分进行重缩放,减少更新密度和相互干扰。它与稀疏化的直觉相似:很多微调增量并非都必须保留。

5.3 系数和层选择

也可以按层或参数块设置不同合并系数,或仅合并被认为与目标能力相关的模块。层选择需要实验验证,不能仅凭参数位置推断语义。

6. 合并的失败模式

  • 基础模型不同:参数坐标不一致,直接相减失去意义。
  • 任务冲突:同一参数需要相反更新,简单平均会抵消能力。
  • 尺度不匹配:某个向量幅度远大于其他向量,导致结果被单一任务支配。
  • 过度合并:加入过多能力后,模型在所有任务上都变得中等。
  • 安全回退:能力合并覆盖掉拒答或风险控制行为。
  • 评估缺失:只在合并目标任务上测试,忽略通用能力和局部性。

7. 实践流程

  1. 选择相同基础检查点派生的模型。
  2. 计算并统计每个任务向量的范数、稀疏度和方向相似度。
  3. 从简单加权和开始,记录每个系数的结果。
  4. 对参数冲突使用 TIES、DARE 或按层合并。
  5. 同时评估各目标任务、通用能力、事实性、格式遵循和安全性。
  6. 保存基础模型、所有派生模型、合并系数和评估结果,确保可复现。

8. 方法与研究索引

方法 核心机制 对应研究
任务向量 用微调模型减基础模型得到能力增量 Task Arithmetic
线性合并 对多个能力增量加权求和 Task Arithmetic 及后续工作
TIES-Merging 截断噪声并解决符号冲突 TIES
DARE 随机稀疏化并重缩放任务向量 DARE
奖励模型合并 组合不同偏好或奖励目标 arXiv:2407.01470
语音能力合并 将合成域能力迁移到真实语音 Synthesized2Real

9. 本章结论

  1. 任务向量让模型合并成为低成本的能力组合方法。
  2. 合并效果依赖共同基础模型、向量尺度和任务冲突。
  3. TIES 和 DARE 通过去噪、解决符号冲突和稀疏化降低干扰。
  4. 合并后必须测试能力、局部性和安全性,不能只看目标任务得分。

你可能还想看