数据旋律与算法和谐:LLMs的微调交响

  • 论文:https://arxiv.org/pdf/2310.05492
  • 代码:暂未开源
  • 机构:阿里巴巴
  • 领域:模型微调
  • 发表:ACL 2024

这篇论文《How Abilities in Large Language Models are Affected by Supervised Fine-tuning Data Composition》深入研究了在大型语言模型(LLMs)中,监督式微调(SFT)阶段的数据组成如何影响模型在数学推理、代码生成和一般人类对齐能力等不同能力上的表现。通过提出四个关键研究问题,论文探讨了数据量、数据组成比例、模型规模和SFT策略等因素对模型性能的具体影响。研究发现,不同能力对数据量的依赖性各异,大型模型通常在相同数据量下表现更佳,而数据组合在数据量有限时可以提升性能,但在数据量大时可能导致能力间的冲突。论文还指出,数据量对性能的直接影响比数据比例更为显著,并针对多任务学习中可能出现的灾难性遗忘问题,提出了一种创新的双阶段混合微调(DMT)策略,有效缓解了性能冲突和遗忘问题,实现了在保持一般能力的同时,对特定任务能力的稳定提升。这项研究不仅为理解SFT在提升LLMs综合性能方面的作用提供了重要见解,也为实际应用中如何有效利用有限数据资源提供了指导。

摘要(Abstract)

  • 大型语言模型(LLMs)通过海量预训练token和参数展现出多样化的能力,如数学推理、代码生成和指令跟随等。
  • 这些能力可以通过监督式微调(SFT)进一步增强。
  • 研究者提出了四个研究问题,探讨模型性能与数据量、组成比例、模型大小和SFT策略等因素之间的关联。
  • 实验表明不同能力随数据量增加的扩展性不同,大型模型在相同数据量下通常表现更好(数学推理和代码生成随着数据量的增加而不断提高,而一般能力在大约一千个样本后趋于稳定)。
  • 数据组合在有限数据条件下可以增强不同能力,但在数据充足时可能导致性能冲突。
  • 研究发现,组合数据的数量比比例对性能的影响更大
  • 在SFT策略分析中,发现顺序学习多项技能可能导致灾难性遗忘
  • 论文提出了一种双阶段混合微调(Dual-stage Mixed Fine-tuning, DMT)策略,以解决具有不同扩展模式的多项能力的学习问题。

引言(Introduction)

  • 论文回顾了LLMs在自然语言处理(NLP)任务中的表现,并强调了SFT在提升LLMs能力方面的重要性。
  • 研究者指出,尽管已有研究分别对推理、编码和人类意图对齐任务进行了SFT,但对于这些任务的综合SFT性能和数据组合问题的研究还不够充分。
  • 提出了四个问题:

1. How do math reasoning, coding, and general abilities scale with SFT data amounts?

数学推理、编程和一般能力如何随SFT数据量的增加而变化?

2. Are there performance conflicts when combining these three abilities in SFT?

在SFT中结合这三种能力时,是否会出现性能冲突?

3. What are the key factors that induce the performance conflicts?

导致性能冲突的关键因素是什么?

4. What are the impacts of different SFT strategies for composite data?

对于复合数据,不同的SFT策略有什么影响?

相关工作(Related Works)

  • 论文回顾了LLMs在不同领域的零样本(zero-shot)性能,并讨论了SFT如何增强这些能力。
  • 论文还探讨了多任务学习、数据质量提升方法以及SFT对特定领域(如数学推理和代码生成)的影响。
  1. Supervised Fine-Tuning of Large Language Models: 论文讨论了大型语言模型(LLMs)在不同领域的显著零样本(zero-shot)性能,并探讨了通过监督式微调(SFT)来进一步提升这些模型的能力。这包括了对人类对齐、指令跟随和特定领域任务优化的SFT。

  2. Multi-task Learning: 论文提到了对预训练的LLMs进行多任务指令微调的研究,以增强其在众多下游NLP任务上的零样本性能。

  3. Datasets for Instruction-based Fine-tuning: 论文提到了FLAN数据集,这是一个为了基于指令的微调而策划的广泛数据集,无论是开源还是专有的LLMs,在经过FLAN微调后,在各种未见任务上都展示了增强的零样本性能。

  4. Generalization Capabilities: 论文探讨了LLMs在分布外(out-of-distribution)域上的泛化能力,以及多任务训练对领域内(in-domain)性能的影响。

  5. SFT for Aligning LLMs with Human Intent: 论文提到了随着像ChatGPT这样的专有模型的出现,对于使LLMs与人类意图对齐的SFT的关注增加。

  6. SFT Datasets from User Logs: 论文提到了最近的一些举措,它们从专有LLM平台的用户日志中生成SFT数据集,并使用模型本身来协助数据生成过程。

  7. Improving SFT Data Quality: 论文提到了一些提出的方法,这些方法旨在提高SFT数据质量,以实现与人类交互更准确的对齐。

  8. SFT in Specialized Areas: 论文讨论了SFT在数学推理和代码生成等专业领域的应用,并提到了一些研究人员利用监督式微调的LLMs来编写命令,以增强处理各种下游应用的能力。

  9. Scaling Laws in Large Language Models: 论文还探讨了模型规模、数据量和计算成本对LLMs性能的影响,并讨论了在不同规模上预训练和微调的扩展规律。

实验(Experiments)

  • 研究者使用了三个SFT数据集,分别针对数学推理、代码生成和一般人类对齐能力。

GSM8K RFT - reasoning https://arxiv.org/pdf/2308.01825

Code Alpaca - coding Code alpaca: https: //github.com/sahil280114/codealpaca

ShareGPT - general human-aligning https://lmsys.org/blog/2023-03-30-vicuna/

  • 他们使用了不同大小的LLaMA模型,并在三个不同的基准测试上评估了模型性能。

GSM8K 

HumanEval

MT-Bench

问题1:模型表现与数据量

指令跟随能力可以通过 SFT 在包含大约 10 万个样本的数据集(例如 ShareGPT)上激活。然而,(Zhou et al., 2023a)表明,强大的基础模型只需 1000 个样本即可实现人类对齐与一般能力不同,数学推理等专业能力需要大量数据(Cobbe et al., 2021; Yuan et al., 2023b)。因此,研究每种能力如何随着数据量的增加而提高是至关重要的。

实验方法:使用从 GSM8K RFT、Code Alpaca 和 ShareGPT 获得的训练集的 {1, 1/4, 1/16, 1/64, 1/256} 比例对各种大小的 LLaMA 分别进行 SFT。这能够使用不同的数据大小和模型大小来评估每种能力。

实验结果:

数学推理能力与各种模型大小的数据量呈正相关。一般的人类对齐能力表现出几乎单调增加的缩放曲线。然而,值得注意的是,一般能力仅在 1k 左右的数据样本(范围从 1/256 到 1/64)中出现,并且在达到一定阈值(1/64)后,其性能提高缓慢。表明少量高质量的 SFT 数据对于LLM中通用人类对齐能力的出现是可能的。

另一方面,当模型的参数数量较小时,代码能力表现出不规则的缩放曲线(7B 和 13B)。然而,当参数数量增加到33B时,其编码性能随数据量呈现近似对数线性趋势。一种可能的解释是 Code Alpaca 和 HumanEval 中的样本具有不同的分布。较大的模型可以捕获域内样本中跨代码数据分布的共享知识,这使它们能够表现出对分布外 (OOD) 样本的某种程度的泛化。另一个观察结果是,在相同的数据量下,较大的模型通常表现出更好的性能。异常值的数据非常少 (1/256),较小的模型可能优于较大的模型。如果有足够的数据,较大的模型具有稳定的更好的性能。

问题2:模型表现与混合数据量

实验方法:源数据设置与RQ1中的设置一致,我们对不同大小的LLaMA模型进行了微调,分别使用GSM8K、Code Alpaca和ShareGPT的{1, 1/4, 1/16, 1/64, 1/256}数量的训练数据。对于混合来源设置,我们从GSM8K、Code Alpaca和ShareGPT中采样{1, 1/4, 1/16, 1/64, 1/256}数量的训练数据,并根据相应的比例直接混合它们。

实验结果:

图 3 显示了在单个源和混合源设置下,不同大小的 LLaMA 在三个基准上的结果。与个体源能力相比,低资源时能力提高,高资源时能力降低。在 LLaMA-7B 的情况下,与单个源设置的数据缩放曲线相比,使用混合源数据进行微调的模型始终表现出高资源(100%)下三个能力域之间的性能冲突。然而,随着数据量的减少,在 1/64 到 1/16 的数据范围内,两种设置之间出现了性能转折点。值得注意的是,使用混合源数据进行微调的模型在低资源(1/256)下表现出性能提升,这表明来自不同来源的 SFT 数据在低资源环境中可以相互受益。然而,当有足够的数据时,来自其他来源的数据可能被视为噪音。

问题3:模型表现与数据构成比率

实验设计:我们将编码和数学视为组合的专业数据源,将 ShareGPT 视为通用数据源。我们设计了如下三种设置,控制一个数据源的数量并改变通用数据和专用数据之间的比率。

问题4:模型表现与训练策略

我们可以将这些 SFT 数据集输入具有不同训练策略的模型中。在本节中,我们将尝试这些设置并研究它们如何影响每种能力的表现。  实验设计:首先,我们介绍三种朴素训练策略: 1.多任务学习:我们直接混合不同的SFT数据源D = ∪1≤i≤kDi并应用SFT。如果我们将每个数据源视为不同的任务,则可以将其视为多任务学习。  2. 顺序训练:我们在每个数据集上顺序应用 SFT。具体来说,我们依次对编码、数学推理和通用能力数据集进行训练。由于通用能力对于人类对齐来说是最重要的,因此我们将 ShareGPT 作为最后一个数据集。  3.混合序列训练:我们首先在专业数据集(代码、数学)上应用多任务学习,然后在通用能力数据集上应用SFT。  这三种方法如图 1 所示。 结果与分析:表 1 列出了不同训练策略下的表现。

根据我们对 RQ1 到 RQ4 的观察,我们提出了一种新的训练策略,可以减少多任务学习期间的能力冲突,并缓解顺序训练期间的灾难性遗忘问题。从RQ1来看,模型需要大量数据来激活专业能力。  从 RQ2 来看,使用大量专业数据和通用数据进行多任务学习会损害每种能力。从RQ3来看,少量的专业数据不会影响通用能力表现。  从 RQ4 开始,(混合)顺序训练忘记了专业能力。因此模型需要学习大量的专业数据,并且在学习通用能力的过程中不应该忘记它们。一个自然的选择是首先学习大量的专业数据,并在顺序训练的最后阶段将少量的专业数据添加到通用数据中,以防止遗忘。如图 1 所示,我们首先在专用数据集上应用 SFT,这与混合顺序训练策略的第一阶段相同。对于第二阶段,我们使用混合数据源执行 SFT,其中包括

讨论(Discussion)

  • 论文通过可视化分析探讨了不同SFT能力之间的潜在相互影响。
  • 研究者讨论了在ShareGPT中去除代码和数学样本后对模型性能的影响。

论文结论(Conclusion)

  • 在数据量较低时,多任务学习可以提升性能,但在数据量较高时,可能会导致性能下降,导致性能冲突。
  • 数据比例对模型性能的影响相比与数据量来说不显著。
  • 数学推理能力与各种模型大小的数据量呈正相关。少量高质量的 SFT 数据(1k左右)对于LLM中通用人类对齐能力的出现是可能的。
  • 首先进行大量数据的专业能力训练,然后进行通用能力训练,在通用训练中加入少量专业数据可以防止灾难性遗忘。

限制(Limitations)

  • 论文指出,使用大型语言模型LLaMA-33B所需的计算资源和时间可能限制了其应用性。
  • 论文使用的都是开源数据集,没有涉及隐私或偏见问题,但不当的提示和嘈杂的训练语料可能会导致LLMs的隐私和偏见问题。

整体来看,这篇论文为理解大型语言模型在监督式微调过程中的能力变化提供了深入的分析,并提出了一种新的微调策略,以改善模型在多任务学习中的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【BUG】已解决:raise KeyError(key) from err KeyError: (‘name‘, ‘age‘)

已解决:raise KeyError(key) from err KeyError: (‘name‘, ‘age‘) 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识&#xf…

python学习(不是广告)是我自己看了这么多课总结的经验

入门 首先推荐的是林粒粒的python入门学习 在你看完这套Python入门教程后: 想继续巩固基础 👉 想学习Python数据分析 👉 想学习Python AI大模型应用开发 👉 进阶 入门之后就是进阶使用python实现 1.办公效率化 2.数据分析&am…

信弘智能与图为科技共探科技合作新蓝图

本期导读 近日,图为信息科技(深圳)有限公司迎来上海信弘智能科技有限公司代表的到访,双方共同探讨英伟达生态系统在人工智能领域的发展。 在科技日新月异的今天,跨界合作与技术交流成为了推动行业发展的重要驱动。7月…

GraphRAG+ollama+LM Studio+chainlit

这里我们进一步尝试将embedding模型也换为本地的,同时熟悉一下流程和学一些新的东西 1.环境还是用之前的,这里我们先下载LLM 然后你会在下载nomic模型的时候崩溃,因为无法搜索,无法下载 解决办法如下lm studio 0.2.24国内下载…

Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程

Docker 为用户提供了在 Ubuntu Linux 上快速创建虚拟容器的能力。但是,那些不想使用命令行管理容器的人可以在 Ubuntu 24.04 LTS 上安装 Docker Desktop GUI,本教程将提供用于设置 Docker 图形用户界面的命令…… Docker Desktop 是一个易于使用的集成容…

脑肿瘤有哪些分类? 哪些人会得脑肿瘤?

脑肿瘤,作为一类严重的脑部疾病,其分类复杂多样,主要分为原发性脑肿瘤和脑转移瘤两大类。原发性脑肿瘤起源于颅内组织,常见的有胶质瘤、脑膜瘤、生殖细胞瘤、颅内表皮样囊肿及鞍区肿瘤等。其中,胶质瘤作为最常见的脑神…

nodejs学习之process.env.NODE_ENV

简介 process对象是 Node 的一个全局对象,提供当前 Node 进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。 process.env 属性返回包含用户环境的对象 使用 pnpm init新建index.js const { env } r…

【C++】类和对象(二)

个人主页 创作不易,感谢大家的关注! 文章目录 ⭐一、类的默认成员函数💎二、构造函数⏱️三、析构函数🏝️ 四、拷贝构造函数🎄五、赋值运算符重载🏠六、取地址运算符重载🎉const成员 ⭐一、类…

系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP)-解读

系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP) 3.7.1 企业资源规划的概念3.7.2 企业资源规划的结构3.7.2.1 生产预测3.7.2.2 销售管理(计划)3.7.2.3 经营计划(生产计划大纲)3.7.2.4 …

C语言 | Leetcode C语言题解之第240题搜索二维矩阵II

题目&#xff1a; 题解&#xff1a; bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target){int i 0;int j matrixColSize[0] - 1;while(j > 0 && i < matrixSize){if(target < matrix[i][j])j--;else if(target > matrix[…

ORBSLAM3 ORB_SLAM3 Ubuntu18.04 ROS Melodic 虚拟镜像 下载

build.sh 和 build_ros.sh编译结果截图&#xff1a; slam测试视频&#xff1a; orbslam3 ubuntu18.04 test 下载地址&#xff08;付费使用&#xff0c;不能接受请勿下载&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/13YeJS4RGa3fBrG8BKfPbBw?pwds6vg 提…

python--实验15 数据分析与可视化

目录 知识点 1 数据分析概述 1.1流程 1.2定义 1.3数据分析常用工具 2 科学计算 2.1numpy 2.1.1定义 2.1.2创建数组的方式 2.1.3np.random的随机数函数 3 数据可视化 3.1定义 3.2基本思想 3.3Matplotlib库 3.3.1模块 4 数据分析 4.1Pandas 4.2数据结构 4.3基…

伪原创文章生成器软件,为你自动写作文章效率高

在当今快节奏的数字化时代&#xff0c;内容创作的需求如潮水般涌来。无论是博主们需要频繁更新的优质博文&#xff0c;还是企业宣传需要的大量文案&#xff0c;亦或是学者们的研究成果阐述&#xff0c;都对写作的效率提出了极高的要求。而就在这时&#xff0c;伪原创文章生成器…

软件测试点

案例&#xff1a; 需求&#xff1a; 动物品系&#xff1a;动物类型-动物品系体重&#xff1a;[1,无穷)年龄&#xff1a; 等价类&#xff1a;6个 界面测试&#xff1a; 默认值、颜色、布局动物品系下拉框&#xff0c;数据来源&#xff0c;排序规则 功能测试&#xff1a; …

Python游戏开发之制作捕鱼达人游戏-附源码

制作一个简单的“捕鱼达人”游戏可以使用Python结合图形界面库&#xff0c;比如Pygame。Pygame是一个流行的Python库&#xff0c;用于创建视频游戏&#xff0c;它提供了图形、声音等多媒体的支持。以下是一个基础的“捕鱼达人”游戏框架&#xff0c;包括玩家控制一个炮台来射击…

Java并发编程与高并发解决方案笔记

本课程将结合大量图示及代码演示&#xff0c;带你掌握多线程并发编程&#xff08;线程安全&#xff0c;线程调度&#xff0c;线程封闭&#xff0c;同步容器等&#xff09;与高并发处理思路与手段&#xff08;扩容&#xff0c;缓存&#xff0c;队列&#xff0c;拆分等&#xff0…

Linux—KVM虚拟化中(虚拟机克隆,快照,还原,删除)等应用实例

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

最优化理论与方法-第十讲-补充,鞍点与强对偶

文章目录 1. 原问题和对偶问题2. Slater 条件3. 鞍点 1. 原问题和对偶问题 用原问题(Primal Problem)中的P表示原问题&#xff0c;具体如下&#xff1a; ( P ) min ⁡ f ( x ) s t . g i ( x ) ≤ 0 , i 1 , ⋯ , m , h i ( x ) 0 , i 1 , ⋯ , l , x ∈ X \begin{equatio…

外部网络设计

外部网络设计 https://support.huawei.com/enterprise/zh/doc/EDOC1100368575/e64f745b#ZH-CN_TOPIC_0268148455 在Fabric网络的资源模型设计中&#xff0c;通过在Border节点创建外部网络&#xff0c;使得园区内部终端能够访问外部Internet等。Border上创建的每个外部网络资源…

【Zynq UltraScale+ RFSoC】~~~

Zynq UltraScale RFSoC 系列为 5G 无线和射频级模拟应用引入了颠覆性的集成和架构突破&#xff0c;可直接支持整个 5G sub-6GHz 频段。这个创新系列现已开始批量生产。此设计演示展示了多通道&#xff08;8T8R 或 16T16R&#xff09;Zynq UltraScale RFSoC 评估工具工具工具&am…