始智AI wisemodel.cn开源社区
始智AI wisemodel.cn社区是源自中国的中立开放的AI开源社区。正在,欢迎加入共同成长。wisemodel社区上线,H800/H20等资源上线,价格实惠,灵活方便,支持在线微调训练模型,及和,并。
在大语言模型(LLM)领域,结合多个模型的优势以提升单个模型的能力已成为一大趋势。然而,以往的模型融合方法例如FuseLLM、FuseChat-1.0/2.0等存在词表对齐困难、效率低下等问题。中山大学的研究团队提出了FuseChat-3.0,一种利用偏好优化进行隐式模型融合的新方法。
不同于显式模型融合需要对齐不同模型的概率分布,FuseChat-3.0通过构建偏好数据集并应用监督微调(SFT)和直接偏好优化(DPO)两个阶段,将多个源模型的能力隐式地迁移到目标模型中,实现了在不增加推理开销的前提下,显著提升目标模型的性能。FuseChat-3.0系列模型、代码已上线始智AI-wisemodel开源社区,欢迎大家前去下载和体验。
模型、代码地址
https://wisemodel.cn/models/FuseAI/FuseChat-Llama-3.1-8B-Instruct
https://wisemodel.cn/models/FuseAI/FuseChat-Qwen-2.5-7B-Instruct
https://wisemodel.cn/models/FuseAI/FuseChat-Gemma-2-9B-Instruct
https://wisemodel.cn/models/FuseAI/FuseChat-Llama-3.2-3B-Instruct
https://wisemodel.cn/models/FuseAI/FuseChat-Llama-3.2-1B-Instruct
https://wisemodel.cn/codes/FuseAI/FuseChat-3.0
01.
方法介绍
FuseChat-3.0的核心在于利用偏好优化进行隐式模型融合(IMF),从多个强大的源模型中学习偏好,将其能力迁移到更小的目标模型中。
作为对WRPO核心思想的实践性延伸和优化,研究团队对原始方案进行了精简和改进,以提升开源社区的可复现性和降低计算资源消耗。整体方法由以下三个主要步骤构成:
数据集构建:选择四个主流开源大语言模型(Gemma-2-27B-It、Mistral-Large-Instruct-2407、Qwen-2.5-72B-Instruct、Llama-3.1-70B-Instruct)作为源模型,构建监督微调(SFT)和直接偏好优化(DPO)数据集。
相比于原方案中多达十个源模型的选择,这种精简的源模型选择确保了实验的代表性和可获取性。
监督微调(SFT)阶段:与原方案一致, 在目标模型上使用得分最高的源模型回复进行微调,以缩小目标模型与源模型之间的分布差异。
偏好优化阶段:采用更为高效的 直接偏好优化 ( DPO ) 技术,利用源模型生成的最 佳和最差回复对 作为偏好对,对目标模型进行优化。
相较于原方案基于目标模型的回复构造偏好对并引入源模型回复作为额外正样本,我们发现在数学和代码领域,仅由目标模型自身回复构造的偏好对较为有限,而从多个源模型采样可以获得更丰富的偏好对数据。
这些优化调整在保留隐式模型融合核心优势的同时,使得实现更加轻量化和实用化,更适合开源社区的实际应用场景。
02.
实验设置
源模型
Gemma-2-27B-It、Mistral-Large-Instruct-2407、Qwen-2.5-72B-Instruct、Llama-3.1-70B-Instruct
目标模型
Llama-3.1-8B, Llama-3.2-3B, Llama-3.2-1B, Qwen-2.5-7B, Gemma-2-9B
数据集
数据集构建的目的在于增强模型的指令遵循、通用对话、数学、代码和中文能力。研究团队从开源社区数据集中选择数据,进行了有针对性的过滤和预处理。主要的数据集和过滤标准包括:
指令遵循与通用对话:来自 UltraFeedback、Magpie-Pro-DPO-100K-v0.1 和 HelpSte er2。
数学:选自 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。
指令遵循与通用对话:从所有源模型中对每个问题进行了五次采样。
数学:保留了原始数据集(OpenMathInstruct-2)中由 Llama-3.1-405B-Instruct 生成的回复,并额外使用 Qwen-2.5-Math-72B-Instruct 进行了采样。
代码:对每个问题从所有源模型进行了八次采样。
中文:仅包含了从 Qwen-2.5-72B-Instruct 中采样的单个回复。
由于不同领域数据存在各自特点,研究团队设计如下方案为每个领域构建 SFT 和 DPO 数据集。
指令遵循:
为了给每个源模型生成的五个回复分配奖励分数,使用了 ArmoRM 进行标注。 然后以 4:6 的比例将标注的数据划分为 SFT 和 DPO 数据集。 在 SFT 阶段,选择具有最高奖励分数的回复。
在 DPO 阶段,将来自同一源模型的回复进行配对,将具有最高奖励分数的指定为正样本,具有最低奖励分数的指定为负样本。 确保每对正负样本之间的奖励分数差在 0.01 到 0.1 之间。
数学:首先通过与标准标签比较,标注了所有源模型的回复以评估其答案正确性,并使用 ArmoRM 标注奖励分数。 然后,将数据集分为 SFT 阶段和 DPO 阶段。 在 SFT 阶段,使用正确且具有最高奖励分数的回复。 此选择确保了微调过程基于高质量且答案正确的回复。
在 DPO 阶段,从同一源模型构建配对样本。正样本由正确且具有最高奖励分数的答案组成,负样本是错误且具有最低奖励分数的答案。为了在优化过程中确保有意义的比较,保持了正负样本对之间的奖励分数差在 0.01 到 0.1 之间。
代码:采用了由正确性分数和奖励分数组成的双评分系统进行代码评估。正确性分数评估代码是否通过了静态分析和测试用例,确保功能的准确性,奖励分数用于偏好评估,衡量回复的质量。
在 SFT 阶段,使用通过所有测试用例且具有最高奖励分数的回复,确保模型在满足正确性和偏好标准的示例代码上进行微调。
在 DPO 阶段,使用通过测试的高分回复作为正样本,使用未通过测试的低分回复作为负样本。目的是优化模型在训练过程中学习代码领域正确偏好的能力。且排除了所有模型回复都未能满足测试标准的实例。
中文:在 SFT 阶段,只使用从 Qwen-2.5-72B-Instruct 采样的回复,因为该模型在中文上经过优化,相较于其他模型具备明显优势。
最终数据集包含158,784条样本,其中94,539条用于 SFT 阶段,64,245个偏好对用于 DPO 阶段。数据集的整体构成如下所示。
03.
结果评估
针对指令微调模型的评估主要集中在模型在指令遵循、自然语言理解、通用问答、推理、数学、代码等方面的性能。对于 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。
研究团队选择了多个目标模型进行实验,包括 Llama-3.1-8B-Instruct、Gemma-2-9B-It、Qwen-2.5-7B-Instruct,以及更小的 Llama-3.2-3B-Instruct 和 Llama-3.2-1B-Instruct。
在包括指令遵循、通用问答、数学推理、代码生成等 14 个基准测试上,FuseChat-3.0 显示出了显著的性能提升。
以 Llama-3.1-8B-Instruct 作为目标模型的实验为例,FuseChat-3.0 在所有基准测试上的平均性能提升了 6.8 分。
其中,在指令遵循测试集 AlpacaEval-2 和 Arena-Hard 上,性能分别提升了 37.1 分和 30.1 分,表现出色。
此外,和 AllenAI 最近发布的 Llama-3.1-Tulu-3-8B 模型对比,FuseChat-3.0 在除 GSM8K 和 GPQA-Diamond 外的所有基准测试中都展现出显著性能优势。 关于更多目标模型上的实验结果,请参考原文(https://slit-ai.github.io/FuseChat-3.0)。
04.
部署教程
首先在wisemodel上创建一个单卡A5000和3090的开发环境,选择基础开发镜像, 选择 /llm/ Fuse AI/ FusChat-Llama-3.1-8B-instruct模型文件, 填写好基本的信息,然后直接下一步,确认计费方式之后直接提交订单,开发环境就开始创建了。
开发环境创建好之后,通过notebook或通过SSH登录到开发环境上进行部署相关的操作。
SSH登录到开发环境之后,先从 github 上把 FuseChat-3. 0 的代码拉到开发环境
代码下载好之后, 先 安装 streamlit库 ,安装命令如下:
安装好所需的库之后, 然后 修改 FuseChat-3.0 / web_demo.py 代码 , 主要 修改 以 下 2 个地方 , model-path为模型保存的本地地址,model-name为需要部署的模型名称 :
保存,然后执行 streamlit run FuseChat-3.0 /web_demo.py --server.port 9000
模型部署的基本工作就完成,模型部署成功之后,回到开发环境详情的页面申请一个服务端口和域名地址。
把申请好的域名地址复制到浏览器,demo正常运行,开始体验模型服务。
05.
在线体验
Wisemodel社区支持直接通过模型镜像创建在线体验,在FusChat-Llama-3.1-8B-instruct模型详情页点击“在线部署-部署在线体验”按钮。
然后选择和确认计费方式,这里选择按量-手动停止的计费方式,大家也可以根据自己的需求选择计费方式。
提交订单之后,应用已经进入启动中的状态,正常情况下大概等待1分钟左右就正常运营,进行在线体验了。
中山大学语言智能技术团队:长期专注于预训练语言模型和模型压缩等自然语言处理研究方向,在多源异构大模型融合、知识蒸馏和模型压缩等相关方向开展了一系列研究实践,在ACL、WWW、NeurIPS、ICLR、EMNLP、AAAI、PAMI、TKDE等国际知名会议和期刊发表100余项研究成果。负责人权小军现任中山大学计算机学院教授、博士生导师;中国计算机学会杰出会员、自然语言处理专委会委员、大模型论坛执行委员;中国中文信息学会大模型与生成专委会委员、情感计算专委会委员。团队提出了多源异构大模型融合的研究问题,旨在整合不同来源、不同结构大模型的优势,减少重复预训练的昂贵开销,同时为下游任务提供更强的基础模型,基于模型融合的思想开发了FuseLLM和FuseChat 1.0/2.0/3.0系列模型,获得国内外知名研究团队的关注。模型融合核心团队成员包括万凡琦、时天源、杨子逸、钟龙广等。
----- END -----
wisemodel相关:
系统升级:
系列模型:
关于wisemodel更多
1
欢迎持续关注和支持
开源社区建设需要长期坚持和投入,更需要广大用户的积极参与、贡献和维护,欢迎大家加入wisemodel开源社区的志愿者计划和开源共创计划。期待更多开发者将开源成果,包括模型、数据集和代码等发布到 wisemodel.cn 社区,共建中立、开放的AI开源社区生态。欢迎扫码添加wisemodel微信,申请加入wisemodel社群,持续关注wisemodel.cn开源社区动态。
2
欢迎加盟wisemodel开源社区
始智AI wisemodel社区自2023年9月上线以来,逐渐成为影响力日益扩大的中立开放的AI开源社区,为了加快公司发展,我们长期需要技术、运营等人才加盟,技术侧重在AI infra、后端开发,熟悉K8S、模型训练和推理等技术, 以及熟悉开发者生态运营的成员,欢迎感兴趣的朋友加盟,可以通过添加wisemodel微信,或者将简历投递到邮箱:liudaoquan@wisemodel.cn
3
欢迎投稿优质内容
欢迎投稿分享人工智能领域相关的优秀研究成果,鼓励高校实验室、大企业研究团队、个人等,在wisemodel平台上分享各类优质内容,可以是AI领域最新论文解读、最新开源成果介绍,也可以是关于AI技术实践、应用和总结等。投稿可以发邮件到liudaoquan@wisemodel.cn,也可以扫码添加wisemodel微信。
4
关于wisemodel开源社区
始智AI wisemodel.cn开源社区由清华校友总会AI大数据专委会副秘书长刘道全创立,旨在打造和建设中立开放的AI开源创新社区,将打造成“HuggingFace”之外最活跃的AI开源社区,汇聚主要AI开源模型、数据集和代码等,欢迎高校科研院所、大型互联网公司、创新创业企业、广大个人开发者,以及政府部门、学会协会、联盟、基金会等,还有投资机构、科技媒体等,共同参与建设AI开源创新生态。
向上滑动查看
热门跟贴