Ch11 模型微调修订于 二〇二六年七月六日

深挖-模型合并 (Model Merging)

一句话理解

模型合并 (Model Merging) 是将多个针对不同任务微调的模型(或 LoRA 适配器)的权重参数进行数学组合,生成一个同时具备多种能力的单一模型,整个过程无需任何额外训练或数据,是开源社区在 2024-2026 年间最活跃的技术方向之一。

零基础理解

假设你有三个 LoRA 适配器:

  • LoRA-A:让模型擅长写 Python 代码
  • LoRA-B:让模型擅长写唐诗宋词
  • LoRA-C:让模型擅长中英翻译

传统做法是:你需要哪个能力就加载哪个 LoRA,每次切换能力都要重新加载权重。模型合并的思路是:把这三个 LoRA “调成一杯鸡尾酒”——用数学方法将它们的权重按一定比例混合,得到一个同时擅长写代码、写诗、做翻译的单一模型。

类比:三个独立的 LoRA 就像三个独立的乐器演奏者,各奏各的;模型合并就像一位”指挥家”,把三种乐器的声音按照一定比例混合成一首和谐的交响乐。如果混合比例合适,你可以得到一个”全才”;如果比例不当,得到的可能是一个”什么都会一点但什么都不精”的平庸模型。

模型合并之所以有效,有赖于两个关键前提:

  1. 线性模式连接 (Linear Mode Connectivity):在同一预训练 base model 上微调的多个模型,其权重空间中的参数变化往往沿着相近的方向,线性插值不至于破坏模型的基础能力。
  2. 任务向量的可加性 (Task Vector Additivity):Fine-tuned 模型减去 base model 的差值(即”任务向量”),在不同任务之间具有某种正交性,可以通过加减操作来组合。

核心方法

1. Linear / Weighted Average (简单加权平均)

最朴素的方法。对于 个模型(或 LoRA 权重),按给定权重系数直接对参数做逐元素加权平均:

其中 。这是 MergeKit 中 linear 方法的实现。

优点:简单、快速、不需要任何计算。缺点:不同模型的参数可能存在方向冲突,简单平均会相互抵消,导致合并后的模型各方面能力都平庸。

2. SLERP (Spherical Linear Interpolation, 球面线性插值)

仅适用于两个模型的合并。SLERP 在权重空间的球面上做插值,而非在欧几里得空间中做线性插值:

其中 是 和 之间的夹角, 是插值参数( 为纯模型 A, 为纯模型 B)。

SLERP 的优势在于保持了权重向量的范数,避免了线性插值在高维空间中常见的”向原点收缩”问题,使得合并后的模型参数保持在合理的数值范围内。

3. TIES (TIming, Electing, and Sign consolidation, 2023)

TIES 是目前最受关注的”多模型合并”算法,由三步骤组成:

Step 1: Trim (裁剪/剪枝) 对每个模型,计算其相对于 base model 的任务向量 。只保留每个任务向量中绝对值最大的 top- 的参数变化,其余置零。这一步去除了微调过程中的噪声,保留每个任务最核心的参数变化。

Step 2: Elect Signs (选举符号) 不同模型对同一参数的变化方向可能相反(一个正、一个负)。TIES 对所有模型在同一参数位置上的变化方向进行”多数投票”——以加权总和的符号为最终方向。如果该参数的总变化量 为正,最终方向为正;否则为负。

Step 3: Disjoint Merge (不相交合并) 只在”选举出的符号方向”上合并参数。对于每个参数,只合并那些符号与选举结果一致的模型的任务向量,符号冲突的模型在该参数上的贡献被丢弃。

4. DARE (Drop And REscale, 2024)

DARE 的核心思想与 Dropout 类似:随机丢弃 + 重新缩放。

Step 1: Drop 对每个任务向量 ,以概率 (通常 甚至 )随机将某些参数的变化量置零(即该参数恢复为 base model 的值)。

Step 2: Rescale 将保留的参数变化量乘以 进行缩放,以保持任务向量的期望幅度不变。

Step 3: Merge 使用 TIES 或 Linear 方法对 rescale 后的任务向量进行合并。

DARE 的惊人发现:即使丢弃 90% 甚至 99% 的任务向量参数,模型在目标任务上的性能几乎不下降。这意味着微调过程中大部分参数变化是冗余的,只有少数关键参数承载了任务的”核心知识”。DARE 与 TIES 结合使用(先 DARE 再 TIES),在多项 benchmark 上取得了最优的合并效果。

合并策略对比

方法适用模型数核心机制解决冲突计算复杂度合并效果代表工具
Linear (加权平均)任意数量逐参数加权平均无(冲突参数直接抵消)极低 基础,常有”平庸化”问题MergeKit linear
SLERP2 个球面线性插值无(规避了范数收缩)低 两模型合并效果好,范数稳定MergeKit slerp
Task Arithmetic任意数量无(简单加减)低 可做”加法”(加能力)和”减法”(去能力)MergeKit task_arithmetic
TIES任意数量剪枝 + 符号选举 + 不相交合并有(符号冲突通过投票解决)中等 多模型合并效果显著优于线性MergeKit ties
DARE + TIES任意数量随机丢弃 90%+ 参数变化 + TIES有(DARE 减少冲突 + TIES 解决剩余冲突)中等当前最优,4-5 个模型合并后仍保持各任务能力MergeKit dare_ties
DARE + Linear任意数量随机丢弃 + 线性平均有限低-中比纯 Linear 好,比 TIES 差MergeKit dare_linear
Passthrough2 个保留模型 A 的某些层(如前 20 层),换为模型 B 的其余层结构级别混合低适合不同架构间的层混合MergeKit passthrough
Breadcrumbs任意数量按训练时间线合并多个 checkpoint无低恢复训练轨迹中的中间能力—

工具:MergeKit

MergeKit 是当前最主流的模型合并工具,由 Arcee AI 开发。它提供:

  • YAML 配置文件:通过声明式配置指定合并策略、模型路径、权重系数
  • 多种合并方法:linear, slerp, ties, dare_ties, dare_linear, task_arithmetic, passthrough, breadcrumbs
  • 层级别控制:可以为不同层设置不同的合并策略(如 attention 层用一种方法,MLP 层用另一种)
  • HuggingFace 集成:直接从 HuggingFace Hub 加载模型,合并后自动推送到 Hub

示例 MergeKit 配置(DARE + TIES 合并 3 个模型):

models:
  - model: mistralai/Mistral-7B-v0.1
    # Base model, no weight needed
  - model: jan-hq/instruction-model
    parameters:
      weight: 1.0
      density: 0.9  # DARE: keep 90% of task vector
  - model: cognitivecomputations/dolphin-model
    parameters:
      weight: 0.5
      density: 0.85
  - model: garage-bAInd/platypus-model
    parameters:
      weight: 0.3
      density: 0.95
merge_method: dare_ties
base_model: mistralai/Mistral-7B-v0.1
parameters:
  int8_mask: true  # 节省显存
dtype: bfloat16

2026 年定位:开源社区的”杀手级”技术

模型合并是开源 LLM 社区在 2024-2026 年最具影响力的技术之一,它改变了模型开发的分工模式。

改变了什么

  • 分工专业化:不再需要一个人/团队训练一个”全能模型”。不同团队可以专注训练各自擅长的 LoRA(代码、数学、创意写作、翻译…),然后通过合并组装成全能模型。
  • 降低门槛:LoRA 训练仅需消费级 GPU(如 RTX 4090),模型合并甚至不需要 GPU——这使得个人开发者也能参与”大模型能力组装”。
  • 快速迭代:无需重新训练,调整合并权重即可快速实验不同的能力组合。HuggingFace 的 Open LLM Leaderboard 上,合并模型(如”∞-Boros-Maschine”、“Bagel”等)曾多次登顶。

核心挑战

  • 结果不可预测:合并后的模型在某个 benchmark 上表现好,不意味着在真实场景中表现好。合并是一个”黑盒”过程,缺乏理论保证。
  • 评估困难:如何衡量合并后的模型”是否真的同时具备了所有源模型的能力”?现有的自动化 benchmark 无法完全替代人工评估。
  • 冲突不可控:随着合并模型数量增加,参数冲突呈指数增长,合并效果可能急剧下降。DARE 通过大比例丢弃缓解了这一问题,但本质矛盾仍未解决。
  • 安全风险:恶意微调的模型(如去除了安全对齐的模型)通过合并可以”污染”正常模型,且合并后的安全检查尚未建立统一标准。

2026 年实践建议

  • 合并 2-3 个 LoRA 的效果通常可靠,5 个以上需谨慎评估
  • 优先使用 DARE + TIES 组合,density 参数建议从 0.5 开始调参
  • 合并后务必进行多维度评估(不仅是 benchmark,还包括人工红队测试)
  • 关注 Open LLM Leaderboard 和 LMSYS Chatbot Arena 上合并模型的表现

相关笔记

来源

关联9

知识图谱

局部图谱 · 点节点跳转