权重平均与Model Soup

1. 概述

权重平均是最直接的模型合并方法,包括简单平均、加权平均和Model Soup。其核心思想是将多个模型的参数向量进行算术平均。

2. 简单权重平均

2.1 方法定义

给定 个模型参数 ,简单平均定义为:

2.2 理论基础

模式连接 的假设下,如果各极小值在同一个「盆地」内,简单平均应该接近盆地中心,从而获得良好的泛化性能。

然而,参数干扰可能导致平均点落在高损失区域。

2.3 实践问题

  1. 幅度归一化:需要考虑不同模型权重幅度的差异
  2. 对称性处理:置换对称性可能导致平均结果不稳定
  3. 任务冲突:多任务场景下性能下降明显

3. Model Soup

3.1 核心思想

Model Soup 1 是一种在微调过程中进行权重平均的方法。通过对不同超参数下微调的模型进行平均,可以获得更鲁棒的模型。

3.2 方法分类

均匀 Soup

所有模型等权重:

贪婪 Soup

按验证集性能逐步添加模型:

def greedy_soup(models, val_scores, X_val, y_val):
    theta = models[0]
    best_score = val_scores[0]
    
    for i in range(1, len(models)):
        candidate = (theta * i + models[i]) / (i + 1)
        score = evaluate(candidate, X_val, y_val)
        
        if score >= best_score:
            theta = candidate
            best_score = score
    
    return theta

3.3 理论分析

Model Soup的理论优势在于:1

  1. 超参数探索的集成:不同超参数对应不同的学习动态
  2. 隐式正则化:平均操作引入额外的平滑效果
  3. 模式连接的利用:好极小值倾向于聚集在一起

4. SLERP:球面线性插值

4.1 动机

简单线性插值在参数空间中可能穿过高损失区域。SLERP(Spherical Linear Interpolation)通过在超球面上进行插值来缓解这一问题。

4.2 数学定义

对于两个单位化的参数向量

其中 是夹角。

4.3 PyTorch实现

import torch
import torch.nn.functional as F
 
def slerp(theta1, theta2, t):
    """球面线性插值"""
    # 归一化
    theta1_norm = theta1 / theta1.norm()
    theta2_norm = theta2 / theta2.norm()
    
    # 计算夹角
    cos_omega = (theta1_norm * theta2_norm).sum()
    omega = torch.acos(cos_omega.clamp(-1, 1))
    
    # 避免除零
    sin_omega = torch.sin(omega)
    sin_omega[sin_omega < 1e-7] = 1e-7
    
    # SLERP
    w1 = torch.sin((1 - t) * omega) / sin_omega
    w2 = torch.sin(t * omega) / sin_omega
    
    return w1 * theta1 + w2 * theta2

4.4 局限性

  • 计算复杂度较高(需计算反三角函数)
  • 仅适用于两模型合并,多模型需链式调用
  • 归一化可能丢失幅度信息

5. RegMean与统计合并

RegMean 2 利用权重的统计特性进行合并:

其中 是各模型参数的标准差,反映其置信度。

6. 实践指南

6.1 方法选择

场景推荐方法
快速实验简单平均
超参数微调后Model Soup
两模型插值SLERP
多任务场景TIES/DARE

6.2 注意事项

  1. 权重幅度:合并前进行幅度归一化
  2. 对称性处理:使用权重匹配算法对齐置换对称性
  3. 验证集评估:贪婪Soup策略需要验证集

7. 扩展阅读

参考资料

Footnotes

  1. Wortsman, M., et al. (2022). Model soups: averaging weights of multiple fine-tuned models improves accuracy without increasing inference time. ICML 2022. 2

  2. Jin, X., et al. (2024). RegMean++: Enhancing Effectiveness and Generalization of Regression Mean for Model Merging. arXiv:2508.03121.