零训练成本优化LLM: 11种LLM权重合并策略原理与MergeKit实战配置

本文涉及的产品
Elasticsearch Serverless检索通用型,资源抵扣包 100CU*H
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: 随着大语言模型快速发展,如何优化性能同时降低计算成本成为关键问题。本文系统介绍了11种零训练成本的LLM权重合并策略,涵盖线性权重平均(Model Soup)、球面插值(SLERP)、任务算术、TIES-Merging等方法,通过MergeKit工具提供实战配置示例。无论研究者还是开发者,都能从中找到高效优化方案,在有限资源下实现模型性能显著提升。

随着大语言模型的快速发展,如何在不消耗大量计算资源的情况下优化模型性能成为业界关注焦点。模型权重合并技术提供了一种零训练成本的高效解决方案,能够智能整合多个专业微调模型的优势,无需额外训练即可显著提升性能表现。本文系统剖析11种前沿权重合并策略的理论基础与数学原理,从简单的线性插值到复杂的几何映射方法,并通过开源工具MergeKit提供详细的实战配置示例。无论您是AI研究人员寻求最优参数组合,企业开发者追求成本效益的模型优化方案,还是对LLM内部机制感兴趣的技术爱好者,本文都将为您提供全面且实用的技术指南,助您在资源受限条件下实现大语言模型的高效优化与融合。

1、线性权重平均:Model Soup

Model Soup技术基于一个简洁而有效的思想:对多个微调模型的权重进行加权平均。该方法的核心假设是,从相同预训练骨干网络(针对相关任务或领域)微调的模型在参数空间中处于"连通"区域,因此它们的线性组合可以产生具有更强泛化能力的模型。

对于一组模型,给定一组非负系数 (α₁, α₂, …, αₙ),且这些系数的总和为 1,合并后的模型可表示为:

参数配置

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
     models:
      - model: meta-llama/Llama-3.1-8B-Instruct
        parameters:
          weight: 0.5
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.15
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.35
    merge_method: linear
     dtype: float16
AI 代码解读

2、Spherical Linear Interpolation - SLERP

SLERP 方法在归一化权重向量球面上的大圆弧上执行插值计算。与直线(欧几里得)插值不同,它保留了向量间的角度关系。当权重向量经过归一化处理时,这一特性尤为重要,能够确保插值生成的模型仍然"保持在流形上"。

对于两个权重向量 (a) 和 (b) 以及插值参数 (t∈[0,1]),SLERP 的计算公式为:

参数配置

  • t (插值因子) — 控制在两个模型之间大圆弧上的插值位置
     models:
       - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
     merge_method: slerp
     base_model: meta-llama/Llama-3.1-8B-Instruct
     parameters:
       t: 0.5
     dtype: float16
AI 代码解读

3、近邻交换 (Nearswap)

Nearswap 技术旨在识别并利用参数空间中两个模型在"接近"(即相似度高)区域的特性进行合并。该方法首先对模型参数(或层)进行分区处理,然后仅对差异值在指定阈值范围内的参数执行"交换"或平均操作。

其实现过程包括:

计算距离:

基于阈值 τ 执行参数合并:

参数配置

  • t (相似度阈值) — 定义参数被视为"接近"并符合交换条件的距离阈值
     models:
       - model: meta-llama/Llama-3.1-8B-Instruct
       - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
     merge_method: nearswap
     base_model: meta-llama/Llama-3.1-8B-Instruct
     parameters:
       t: 0.5
     dtype: float16
AI 代码解读

4、任务算术 (Task Arithmetic)

任务算术技术基于一个关键见解:模型参数通常会编码与特定任务相关的"方向性信息"。通过减去共同(共享)表示并添加特定于任务的组件,可以构建出能更有效执行复合任务的模型。

参数配置

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: task_arithmetic
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
     dtype: float16
AI 代码解读

5、修剪、选择符号和合并 (TIES-Merging)

TIES-MERGING 算法通过三步处理流程解决了合并多个特定任务模型时的参数干扰问题:修剪、选择符号和不相交合并。该方法旨在创建一个有效整合各个特定任务模型知识的合并模型,同时减轻冲突参数更新的负面影响。

具体实现步骤:

  1. 对每个任务向量,保留幅度最高的前 k% 参数,并将其余(底部 (100−k)%)置零,形成修剪后的任务向量。
  2. 对每个参数位置,计算所有修剪后任务向量中正负符号的总幅度,将具有较大总幅度的符号分配给合并模型的符号向量。
  3. 对每个参数,定义一个包含修剪后任务向量中符号与所选符号一致的任务索引集合,通过求取参数均值计算不相交平均值。

参数配置

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
  • density (k) — 与基础模型差异中需保留的权重比例
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: ties
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      density: 0.7
     dtype: float16
AI 代码解读

6、丢弃和重新缩放 (DARE)

DARE(丢弃和重新缩放)算法旨在减少大型语言模型增量参数(从预训练到微调的变化)中的冗余信息。该方法随机将一部分增量参数置零,并将剩余参数按 1/(1-p) 倍重新缩放,其中 p 表示丢弃率,然后将处理后的参数加回预训练参数中。

实现流程:

  1. 给定预训练模型(权重为 W_PRE)和针对任务 t 微调的模型(权重为 W_SFT_t),计算增量参数 Δ_t
  2. 使用伯努利分布,随机将 p 比例的增量参数置零。对 Δ_t 中的每个元素,从 Bernoulli(p) 抽取随机变量 m_t
  3. 将保留的非零增量参数按因子 1/(1−p) 进行重新缩放,以补偿丢弃值造成的影响。
  4. 最后,将重新缩放的增量参数 Δ̂_t 加回预训练权重 W_PRE,得到 DARE 适应后的权重 W_DARE_t

DARE 技术可以与 TIES 的符号共识算法结合使用 (dare_ties),也可以独立使用 (dare_linear)。

参数配置 (dare_ties)

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
  • density (k) — 与基础模型差异中需保留的权重比例
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: dare_ties
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      density: 0.7
     dtype: float16
AI 代码解读

参数配置 (dare_linear)

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7

    merge_method: dare_linear
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5

     dtype: float16
AI 代码解读

7、Model Breadcrumbs

Model Breadcrumbs是任务算术的扩展技术,它通过丢弃与基础模型差异中既小又极大的部分来优化合并效果。该算法可以与 TIES 的符号共识算法结合使用 (breadcrumbs_ties),也可以独立使用 (breadcrumbs)。

实现过程包括四个主要步骤:

  1. 任务向量创建:对于每个针对特定任务微调的模型,计算其权重与原始预训练基础模型权重之间的差异,构成任务向量。
  2. 异常值和可忽略扰动移除:定义两个百分比阈值,β(左尾)和 γ(右尾)。在每层排序权重中屏蔽(置零)底部 β% 和顶部 (100-γ)% 的权重,以消除大异常值和可忽略扰动。
  3. 组合任务向量:通过求和聚合所有任务的屏蔽任务向量。
  4. 缩放与整合:将聚合后的任务向量按强度参数 (α) 缩放,然后添加至原始预训练模型的权重中。

参数配置

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
  • density — 与基础模型差异中需保留的权重比例
  • gamma — 要移除的最大幅度差异的比例

注意:gamma 参数对应论文中描述的参数 β,而 density 表示稀疏化张量的最终密度(通过 density = 1−γ−β 与 γ 和 β 相关)。

     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: breadcrumbs
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      density: 0.9
      gamma: 0.01

     dtype: float16
AI 代码解读
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: breadcrumbs_ties
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      density: 0.9
      gamma: 0.01

     dtype: float16
AI 代码解读

8、Model Stock

Model Stock算法提供了一种经济高效的权重合并方法,旨在通过使用预训练模型作为锚点和少量微调模型来近似权重分布的中心 (μ),从而提高模型性能。该技术利用权重向量的几何特性,特别是各向量间的角度关系,来确定最佳合并比例。

主要实现步骤:

  • 平面定义:使用预训练模型的权重向量 (w0) 和两个微调模型的权重向量 (w1 和 w2) 定义一个平面,该平面构成了合并权重的搜索空间。
  • 垂足计算:算法寻找该平面上最接近权重分布中心 (μ) 的点 (wH),即 μ 到该平面的垂足。

其中:

  • θ 表示两个微调模型权重向量(w1 和 w2)之间的角度
  • wH 表示合并后的权重向量
  • w0 表示预训练模型的权重向量
  • (w1 + w2)/2 表示两个微调权重向量的平均值,对应原文中的 w12
  • 插值比例计算:插值比例 t = 2 * cos(θ) / (1 + cos(θ)) 决定了平均微调权重与预训练权重对合并权重的贡献比例。该比例仅取决于角度 θ,角度越小,对预训练模型的依赖性越低。
  • 扩展到 N 个微调模型

其中 t = N cos(θ) / (1 + (N−1) cos(θ)),θ 表示预训练模型与 N 个微调模型之间的角度,w(N)H 表示合并后的权重向量。

参数配置

  • filter_wise:若设为 true,权重计算将按行而非按张量进行(不推荐)
     models:
       - model: NousResearch/Hermes-3-Llama-3.1-8B
       - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
     merge_method: model_stock
     base_model: meta-llama/Llama-3.1-8B-Instruct
     dtype: float16
AI 代码解读

9、归一化球面线性插值 (NuSLERP)

NuSLERP 通过在执行插值前显式归一化权重向量,对标准 SLERP 方法进行了改进。当模型使用不同缩放系数进行训练时(例如,由于自适应归一化层),这种"归一化"版本尤为有用,可避免插值过程中混合不兼容的尺度问题。

参数配置

  • weight:指定张量的相对权重
  • nuslerp_flatten:设为 false 可执行逐行/逐列插值,而非将张量作为整体向量处理
  • nuslerp_row_wise:对行向量而非列向量应用 SLERP 算法
     models:
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.5
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.5
    merge_method: nuslerp
    base_model: meta-llama/Llama-3.1-8B-Instruct
     dtype: float16
AI 代码解读

10、通过幅度采样进行丢弃和重新缩放 (DELLA)

DELLA 方法可以与 TIES 的符号选择步骤结合使用 (della),也可以独立使用 (della_linear)。该方法包含以下核心步骤:

丢弃 (Drop):采用基于幅度的创新修剪方法 MAGPRUNE:

  • 根据神经网络中每个节点增量参数的幅度(绝对值)进行排序
  • 为每个参数分配一个与其幅度成反比的丢弃概率 (Pd),幅度较大的参数被丢弃的概率较低,由超参数 ∆ 控制概率步长
  • 超参数 'p' 控制平均丢弃概率,'ϵ' 影响最小丢弃概率 (pmin = p−ϵ/2)
  • 根据分配的概率随机丢弃增量参数,丢弃的参数被置零
  • 将剩余(未丢弃)的增量参数重新缩放 1/(1−pi),其中 pi 是第 i 个参数的丢弃概率,以补偿丢弃参数的影响,确保模型输出嵌入得以保留

选择 (Elect):通过计算所有专家对应增量参数之和的符号,确定每个参数位置的主导方向,仅选择与主导方向符号相同的增量参数。

融合 (Fuse):计算每个位置选定增量参数的平均值。

获取合并模型:将融合后的增量参数(按因子 λ 缩放)添加到基础模型的参数中。

参数配置

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
  • density — 与基础模型差异中要保留的权重比例
  • epsilon — 基于幅度的丢弃概率的最大变化范围。分配的丢弃概率将在 density−epsilon 到 density+epsilon 的范围内变化(选择 density 和 epsilon 值时,请确保概率范围在 0 到 1 之内)
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: della
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      density: 0.7
      epsilon: 0.01
     dtype: float16
AI 代码解读
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: della_linear
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      density: 0.7
      epsilon: 0.01
     dtype: float16
AI 代码解读

11、选择、计算和擦除 (SCE)

SCE(选择、计算、擦除)是一种用于合并多个目标 LLM 的技术,这些 LLM 共享相同的架构和规模,但已使用来自不同源 LLM 的知识分别进行了微调。该方法作用于"融合向量",即表示枢轴 LLM 和每个目标 LLM 在成对知识融合阶段后的权重差异。

实现过程包含以下四个步骤:

  1. 对于融合向量集中的每个参数矩阵,选择在不同目标 LLM 之间具有最高方差的前 k% 元素。
  2. 对于每个参数矩阵,计算每个目标 LLM 的合并系数,即其对应过滤融合向量中所选元素的平方和,并按该矩阵所有目标 LLM 的总平方和进行归一化。
  3. 对于过滤融合向量中的每个参数,对所有目标 LLM 的值求和。如果给定参数的和为正(或负),则将该参数的所有负(或正)值置零,以消除冲突的更新方向。
  4. SCE 处理后,最终合并 LLM 的参数矩阵通过任务算术方法计算得出。

参数配置

  • weight (α) — 指定张量的相对权重(若 normalize=False 则为绝对权重)
  • normalize — 若设为 true,所有模型的权重贡献将被归一化,这是默认行为
  • lambda — 应用于任务向量加权和之后的缩放因子
  • select_topk — 要保留的增量参数中具有最高方差的元素比例
     models:
      - model: NousResearch/Hermes-3-Llama-3.1-8B
        parameters:
          weight: 0.3
      - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
        parameters:
          weight: 0.7
    merge_method: sce
    base_model: meta-llama/Llama-3.1-8B-Instruct
    parameters:
      lambda: 0.5
      select_topk: 0.7
     dtype: float16
AI 代码解读

总结

本文系统介绍了11种先进的LLM权重合并策略,从简单的线性权重平均到复杂的几何映射方法,全面揭示了如何在零训练成本下优化大语言模型性能。这些方法各具特色:Model Soup通过简单加权平均实现模型融合;SLERP保持角度关系确保插值质量;任务算术聚焦方向性信息;TIES-Merging通过修剪减轻参数干扰;Model Stock利用几何特性寻找最佳合并比例;而SCE则专注于消除冲突更新方向。MergeKit工具让这些先进算法变得触手可及,通过简明的YAML配置即可实现复杂的权重融合。在算力资源受限、无法进行完整微调的情况下,权重合并技术为研究人员和开发者提供了一种经济高效的方案,让模型优化更加灵活高效,为LLM生态系统的发展提供了新的可能性。

引用

  • Model Soups: Averaging Weights of Multiple Fine-Tuned Models Improves Accuracy Without Retraining 2203.05482
  • Editing Models with Task Arithmetic 2212.04089
  • TIES-Merging: Resolving Interference When Merging Models 2306.01708
  • Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch 2311.03099
  • Model Breadcrumbs: Scaling Multi-Task Model Merging with Sparse Masks 2312.06795
  • Model Stock: All we need is just a few fine-tuned models 2403.19522
  • DELLA-Merging: Reducing Interference in Model Merging through Magnitude-Based Sampling 2406.11617
  • FuseChat: Knowledge Fusion of Chat Models 2408.07990

https://avoid.overfit.cn/post/161535f4639f41809589f36b57b16bc7

目录
打赏
0
10
10
0
546
分享
相关文章
CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
英伟达提出的CLIMB框架,是一种自动化优化大型语言模型(LLM)预训练数据混合的创新方法。通过语义嵌入与聚类技术,CLIMB能系统地发现、评估并优化数据混合策略,无需人工干预。该框架包含数据预处理、迭代自举及最优权重确定三大阶段,结合小型代理模型与性能预测器,高效搜索最佳数据比例。实验表明,基于CLIMB优化的数据混合训练的模型,在多项推理任务中显著超越现有方法,展现出卓越性能。此外,研究还构建了高质量的ClimbMix数据集,进一步验证了框架的有效性。
56 0
CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
TurboAttention:基于多项式近似和渐进式量化的高效注意力机制优化方案,降低LLM计算成本70%
**TurboAttention**提出了一种全新的LLM信息处理方法。该方法通过一系列优化手段替代了传统的二次复杂度注意力机制,包括稀疏多项式软最大值近似和高效量化技术。
174 5
TurboAttention:基于多项式近似和渐进式量化的高效注意力机制优化方案,降低LLM计算成本70%
X-R1:3090也能训7B模型!开源框架X-R1把训练成本打下来了:10美元训出企业级LLM
X-R1 是一个基于强化学习的低成本训练框架,能够加速大规模语言模型的后训练开发。仅需4块3090或4090 GPU,1小时内完成训练,成本低于10美元。
164 5
X-R1:3090也能训7B模型!开源框架X-R1把训练成本打下来了:10美元训出企业级LLM
仅7B的模型数学推理能力完虐70B?MIT哈佛推出行动思维链COAT让LLM实现自我反思并探索新策略
Satori 是由 MIT 和哈佛大学等机构联合推出的 7B 参数大型语言模型,专注于提升推理能力,具备强大的自回归搜索和自我纠错功能。
155 6
仅7B的模型数学推理能力完虐70B?MIT哈佛推出行动思维链COAT让LLM实现自我反思并探索新策略
基于Dify +Ollama+ Qwen2 完成本地 LLM 大模型应用实战
尼恩,一位拥有40年经验的老架构师,通过其丰富的行业经验和深入的技术研究,为读者提供了一套系统化、全面化的LLM大模型学习圣经。这套学习资料不仅帮助许多从业者成功转型,还助力多位工程师获得了高薪工作机会。
端到端优化所有能力,字节跳动提出强化学习LLM Agent框架AGILE
【10月更文挑战第23天】字节跳动研究团队提出AGILE框架,通过强化学习优化大型语言模型(LLM)在复杂对话任务中的表现。该框架将LLM作为核心决策模块,结合记忆、工具和专家咨询模块,实现智能体的自我进化。实验结果显示,AGILE智能体在ProductQA和MedMCQA数据集上优于GPT-4。
467 4
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
【8月更文挑战第5天】LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
LLM-05 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(微调实战1) 官方案例 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
LLM-05 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(微调实战1) 官方案例 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
180 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等