FuseChat-3.0:隐式模型融合的偏好优化

我们推出了 FuseChat-3.0,一系列旨在通过将多个源LLM的优势整合到更紧凑的目标LLM中来提高性能的模型。为了实现这种融合,我们利用了四个强大的源LLM:Gemma-2-27B-It、Mistral-Large-Instruct-2407、Qwen-2.5-72B-Instruct 和 Llama-3.1-70B-Instruct。对于目标LLM,我们采用了三个广泛使用的较小模型——Llama-3.1-8B-Instruct、Gemma-2-9B-It 和 Qwen-2.5-7B-Instruct——以及两个更紧凑的模型——Llama-3.2-3B-Instruct 和 Llama-3.2-1B-Instruct。隐式模型融合过程涉及一个两阶段训练管道,包括用于缓解目标LLM和源LLM之间分布差异的监督微调(SFT),以及用于从多个源LLM学习偏好的直接偏好优化(DPO)。生成的 FuseChat-3.0 模型在通用对话、指令遵循、数学和编码相关任务中表现出显著改进。值得注意的是,当 Llama-3.1-8B-Instruct 作为目标LLM时,我们的融合方法在14个基准测试中平均提高了6.8分。此外,它在指令遵循测试集 AlpacaEval-2 和 Arena-Hard 上分别显著提高了37.1和30.1分。我们已经在 Huggingface 上发布了 FuseChat-3.0 模型,敬请期待即将发布的数据集和代码。
概述
结合多个大型语言模型(LLM)的优势是一种有前景的方法,可以增强单个模型的能力。模型融合是一种将强大的源LLM的优势整合到目标LLM中的技术。
先前的 FuseChat 系列版本采用源模型生成的概率分布矩阵来向目标模型传输知识。我们将这种方法称为 显式模型融合 (EMF),因为它涉及一个明确定义的知识传输过程。虽然适用于不同架构和大小的模型,并且在推理过程中不增加内存开销,但这种方法存在显著挑战,例如词汇对齐和不同LLM的分布矩阵合并。这些问题使模型融合复杂化,降低了其效率,并可能引入噪声和错误,影响融合结果。
然而,FuseChat-3.0 采取了不同的方法,通过从强大的开源LLM进行隐式学习来增强单个LLM,我们称之为 隐式模型融合 (IMF)。IMF 的概念已被广泛用于提高弱模型性能。例如,可以通过使用更强大的LLM的输出来微调弱模型来增强其能力。此外,可以使用来自各种LLM的输出来训练奖励模型,使其能够学习并捕捉LLM之间的能力差异。Zephyr 进一步收集了来自多个LLM的响应,并使用 GPT-4 对它们进行排名,以获取用于训练策略的偏好数据。受近期对齐技术的启发,我们提出了一种 IMF 方法,通过偏好优化将源LLM的能力转移到目标LLM。
我们的 IMF 方法遵循一个三阶段过程,旨在有效地将源 LLM 的能力转移到目标 LLM。首先,在 数据集构建 阶段,我们从每个源 LLM 中采样 N 个响应,并使用外部奖励模型对这些响应进行标注。其次,在 监督微调 (SFT) 阶段,我们使用最佳响应对目标模型进行微调,这不仅增强了目标模型的能力,还有助于弥合源模型和目标模型之间的分布差距。最后,在 直接偏好优化 (DPO) 阶段,我们通过使用源模型中的最佳和最差响应作为偏好对来优化目标模型,进一步提升目标模型的性能。完整的流程将在以下段落中详细介绍。
数据集
提示词选择
我们的数据集旨在增强模型的指令遵循、通用对话、数学、编码和中文能力。我们从开源社区数据集中选择数据,并应用了有针对性的过滤和预处理。主要数据集和过滤标准包括:
- 指令遵循与通用对话:来自 UltraFeedback、Magpie-Pro-DPO-100K-v0.1 和 HelpSteer2,不包括代码和数学数据。
- 数学:选自 OpenMathInstruct-2,近60,000个独立样本。
- 编码:选自 leetcode 和 self-oss-instruct-sc2-exec-filter-50k,保留带有测试用例的提示。
- 中文语言:整合了 alpaca_gpt4_zh 和 Magpie-Qwen2-Pro-200K-Chinese,过滤掉代码和数学提示,保留约10,000个高质量样本。
响应采样
对于每个数据集的提示,我们主要从四个不同系列的源模型中合成响应,具体是 Gemma-2-27b-It、Mistral-Large-Instruct-2407、Qwen-2.5-72B-Instruct 和 Llama-3.1-70B-Instruct。与 WRPO 中使用多达十个源LLM的原始方法相比,这种精简的选择既确保了实验的代表性,又提高了可访问性。
- 指令遵循与通用对话:我们从所有源模型中对每个提示采样五次。
- 数学:我们保留了原始数据集(OpenMathInstruct-2)中 Llama-3.1-405B-Instruct 生成的响应,并额外使用 Qwen-2.5-Math-72B-Instruct 采样了响应。
- 编码:我们对所有源模型的每个提示采样八次。
- 中文语言:我们只从 Qwen-2.5-72B-Instruct 采样了一个响应。
不同模型的采样参数详见下表。
数据构建
与 WRPO 中从目标模型响应构建偏好对并将源模型响应视为额外正样本的原始方法不同,我们在数学和编码领域的研究表明,从多个源模型采样可以产生更多和更高质量的偏好对数据。基于此洞察,FuseChat-3.0 利用源模型生成的最佳和最差响应对作为偏好对来优化目标模型。这种改进的方法不仅保留了隐式模型融合的核心优势,而且还带来了更精简和实用的实现,使其特别适合开源社区中的实际应用。
- 指令遵循:为了给每个源模型生成的五个响应分配 RM 分数,我们使用 ArmoRM 进行标注。然后,我们以 4:6 的比例将标注数据划分为 SFT 和 DPO 数据集。在 SFT 阶段,我们选择了 RM 分数最高的响应。在 DPO 阶段,我们将来自同一源模型的响应进行配对,将 RM 分数最高的指定为正样本,将 RM 分数最低的指定为负样本。我们确保每对正负样本之间的 RM 分数差在 0.01 到 0.1 之间。
- 数学:我们首先通过与黄金标签进行比较并使用 ArmoRM 提供的 RM 分数进行评估,来标注所有源模型的响应的正确性。然后,我们策略性地将数据集划分为 SFT 阶段和 DPO 阶段。在 SFT 阶段,我们纳入了正确且 RM 分数最高的响应。这种选择确保了微调过程基于与预期结果高度一致的高质量响应。对于 DPO 阶段,我们构建了来自同一源模型的配对样本。正样本由具有最高 RM 分数的正确答案组成,而负样本则由具有最低 RM 分数的不正确答案组成。为了确保优化期间有意义的比较,我们保持正负对之间的 RM 分数差在 0.01 到 0.1 之间。
- 编码:我们采用了由正确性分数和 RM 分数组成的双重评分系统进行编码评估。正确性分数评估代码是否通过静态分析和测试用例,以确保功能准确性。RM 分数用于偏好评估,根据预定义标准衡量响应质量。在 SFT 阶段,我们包含了不仅通过所有测试用例而且达到最高 RM 分数的响应。此选择确保模型在符合正确性和偏好标准的示例代码上进行微调。在 DPO 阶段,我们将正样本(通过测试的高分响应)与负样本(未通过测试的低分响应)进行对比。此比较旨在优化模型在训练期间偏好更高质量代码的能力。我们排除了所有模型响应均未达到测试标准的情况。此排除是必要的,以保持评估过程的完整性,因为此类情况未提供有意义的数据来评估和改进模型的性能。
- 中文:在 SFT 阶段,我们仅使用了从 Qwen-2.5-72B-Instruct 采样的响应,因为它在中文方面表现出色。
我们的最终数据集包含158,784个总条目,其中SFT阶段有94,539个条目,DPO阶段有64,245个偏好对。数据集的总体构成如下所示。
训练
隐式模型融合过程涉及一个两阶段的训练流程,包括用于缓解目标 LLM 和源 LLM 之间分布差异的监督微调(SFT),以及用于从多个源 LLM 学习偏好的直接偏好优化(DPO)。
SFT
我们使用 Llama-Factory 作为我们的微调库。对于所有目标模型,我们微调了3个 epoch,批处理大小为128,最大序列长度为2048个 token。采用了余弦学习率调度和0.1的热身比率。不同模型的学习率如下表所示。
DPO
我们使用 alignment-handbook 作为我们的 DPO 训练库。对于所有目标 SFT 模型,我们训练了1个 epoch,批处理大小为128,最大序列长度设置为2048,使用余弦学习率和0.1的热身比率。我们每100步保存检查点,并从最后两个检查点中选择最佳。对于 Llama-3.1 和 Llama-3.2 系列模型,我们在 DPO 训练中引入了长度归一化,如以下公式所示。
不同模型的超参数如下表所示。
评估
指令微调模型的评估主要关注模型在指令遵循、自然语言理解、通用问答、推理、数学、编码等方面的性能。对于 FuseChat-3.0 的评估,我们包含了14个基准测试并将其分为四类:
- 指令遵循任务:AlpacaEval-2、Arena-Hard、MTbench、AlignBench v1.1(中文)。
- 通用任务:LiveBench-0831、MMLU-Pro、MMLU-redux、GPQA-Diamond。
- 数学任务:GSM8K、MATH、AMC 23。
- 编码任务:HumanEval、MBPP、LiveCodeBench 2408-2411。
我们将在 FuseEval 中提供更多详情并发布我们的评估代码。
五系列融合模型的评估结果如下,显示我们的 FuseChat-3.0 模型在不同目标模型上取得了不同程度的改进。当选择 Llama-3.1-8B-Instruct 作为目标模型时,我们的融合模型 FuseChat-Llama-3.1-8B-Instruct 在14个基准测试中平均性能提升了6.8分。值得注意的是,它在指令遵循测试集 AlpacaEval-2 和 Arena-Hard 上分别显著提升了37.1和30.1分。此外,FuseChat-Llama-3.1-8B-Instruct 在除 GSM8K 和 GPQA-Diamond 之外的所有基准测试中均优于 AllenAI 最近发布的 Llama-3.1-Tulu-3-8B 模型。所有这些结果都证明了 FuseChat-3.0 的有效性和成功。
FuseChat-Llama-3.1-8B-Instruct 性能
FuseChat-Qwen-2.5-7B-Instruct 性能
FuseChat-Gemma-2-9B-Instruct 性能
FuseChat-Llama-3.2-3B-Instruct 性能
FuseChat-Llama-3.2-1B-Instruct 性能
BibTeX
@inproceedings{yang2025weightedreward,
title={Weighted-Reward Preference Optimization for Implicit Model Fusion},
author={Ziyi Yang and Fanqi Wan and Longguang Zhong and Tianyuan Shi and Xiaojun Quan},
booktitle={The Thirteenth International Conference on Learning Representations},
year={2025},
url={https://openreview.net/forum?id=fq24pEb8SL}
}