大型语言模型微调的规模效应研究

news2024/9/20 18:48:26

人工智能咨询培训老师叶梓 转载标明出处

为了解锁大模型在特定下游应用中的全部潜力,通常需要通过微调(finetuning)来适配任务。尽管微调已成为一种常规做法,但关于不同微调方法的归纳偏差,尤其是规模特性的理解仍然有限。为了填补这一空白,一篇由Biao Zhang、Zhongtao Liu、Colin Cherry和Orhan Firat撰写的论文《WHEN SCALING MEETS LLM FINETUNING: THE EFFECT OF DATA, MODEL AND FINETUNING METHOD》,在ICLR 2024上发表,系统地研究了不同的规模因素,包括LLM模型大小、预训练数据规模、新的微调参数规模和微调数据规模,对微调性能的影响。

设置

研究者们选择了机器翻译和多语言摘要作为微调的下游任务,基于以下几个原因:

  1. 这些任务需要处理跨语言理解与生成问题,这些问题在技术上具有很高的复杂性并且颇具挑战性。
  2. 这些任务在自然语言处理(NLP)领域已经非常成熟,并且有大量的微调语料库可用。

对于机器翻译任务,研究者们采用了WMT14英语-德语(En-De)和WMT19英语-中文(En-Zh)数据集。而对于多语言摘要任务,他们将多语言摘要数据集的德语、西班牙语(Es)和法语(Fr)部分与CNN/Daily-Mail英语数据集合并,形成了一个统一的数据集,简称为MLSum。在MLSum中,不同语言的数据集被直接串联起来进行训练和评估,每篇文章的前面都加上了一个指示语言的提示,例如“Summarize the following document in {lang}:”。

在预训练阶段,研究者们使用的模型是一个仅解码器的Transformer,具有多查询注意力机制,并使用修改后的UL2目标进行训练。为了确保研究结果的普遍性,研究者们预训练了两组双语LLMs,即英语-德语和英语-中文LLM。预训练数据是两种语言的单语数据混合,使用了大约280B(英语-德语)和206B(英语-中文)个token来预训练相应的LLM。模型参数大小从1B到16B不等,通过改变模型配置实现。所有LLMs都使用Adafactor优化器进行了一个训练周期,并在余弦学习率衰减计划下进行优化。

研究者们主要研究了三种微调方法的规模:

  • 全模型微调(Full-Model Tuning, FMT):这是最传统的微调方式,简单地优化所有LLM参数。
  • 提示调整(Prompt Tuning):在输入嵌入前添加一个可调的“软提示”,并将其与输入嵌入连接后提供给LLM。在微调期间,只优化提示参数。提示长度默认设置为100。
  • 低秩适应(LoRA):更新预训练模型权重,使用可训练的秩分解矩阵对权重进行调整,而不是修改LLM输入。在微调期间,只有分解矩阵是优化的。
微调设置的详细概览

研究者们探索了四种不同的规模因素,如表1b所示。所有实验都基于相应的1B LLM进行,除非是LLM模型规模的实验。对于预训练数据规模的实验,由于计算预算限制,采用了中间预训练检查点作为代理。

评估使用基于开发集上的token级困惑度(PPL)的最佳检查点。对于规模法则,研究者们报告了测试集上的PPL;对于一般生成,使用了贪婪解码,并分别报告了翻译和摘要的BLEURT和RougeL分数。对于零样本评估,使用了Flores200,并在多种语言对的翻译中进行了评估。为了评估规模法则,研究者们将经验数据点分为两组,经验拟合和保留集,前者用于拟合规模参数,后者用于评估。为了减少噪声,进行了三次运行,每次使用不同的随机微调数据子集,并报告平均性能。在对MLSum进行采样时,保持了不同语言的混合比例固定。

为什么选择乘法联合规模法则?

研究者们在本研究中考虑了四个规模因素,但联合建模所有这些因素在时间和资源上都是耗费巨大的。因此,他们选择将微调数据作为关键因素,并分别与其他每个因素进行联合规模分析。

研究者们首先独立地检查了不同LLM模型大小下微调数据规模的单一变量公式,即 ​+E。这里,A、β 和 E 是使用Huber损失和L-BFGS算法估计的参数。图1展示了这种单一变量公式在不同模型大小和微调方法下对LLM微调数据规模的描述非常准确,预测误差很小。

在WMT14英德翻译任务上,不同大小的语言模型(LLM)在微调数据规模上的单变量缩放法则

图1还显示了LLM模型大小的一些规模模式,表明存在一个联合规模法则。研究者们探索了两种公式:乘法(如公式1所示)和加法(如Hoffmann等人(2022)所描述),并通过实证实验进行比较。

在这两种公式中,α 和 β 分别反映了因素X和微调数据大小对性能的影响,这些是因素特定的。E是一个模型和任务依赖的项,描述了不可减少的损失。研究者们注意到,β 和 E的含义在不同的因素X上是通用的,因此他们提出首先基于LLM模型和预训练数据规模的结果来估计它们。

在WMT14英德翻译任务上,对于加性和乘性缩放公式的保留数据集上的拟合误差

为了减少过拟合并提高外推能力,研究者们采用了联合拟合损失方法,即在不同的因素X上固定 β 和 E,然后分别重新拟合其他参数。表2显示了两种联合法则表现相似,但乘法法则在平均外推误差上略低。因此,研究者们选择了乘法法则用于后续分析。

通过上述分析研究者们得出结论,乘法联合规模法则更适合描述LLM微调的性能,因为它在实证数据上的外推误差更低,并且能够更好地捕捉不同因素之间的相互作用。这种法则有助于更准确地预测不同规模设置下的微调性能,从而为实际应用中的模型选择和资源分配提供指导。

在WMT14英德、WMT19英中和多语言摘要(MLSum)任务上,语言模型大小和微调数据规模之间的乘性联合缩放法则

图2展示了在WMT14 En-De、WMT19 En-Zh和MLSum数据集上,使用乘法联合规模法则拟合的LLM模型大小和微调数据规模的结果。图中的∆e和∆h分别表示拟合数据和保留数据上的绝对平均偏差,而和β分别表示LLM模型大小和微调数据规模的规模指数。研究者们在1B到16B的LLM上进行了工作。这些图表和数值结果进一步验证了乘法联合规模法则的有效性和适用性。

大型语言模型微调的规模结果

研究者们展示了LLM模型大小、预训练数据和PET(参数高效调整)参数规模在WMT14英语-德语(En-De)、WMT19英语-中文(En-Zh)和MLSum数据集上的实证结果。这些结果通常与PPL(困惑度)分数高度相关。拟合的规模参数总结在表4中。

研究者们提出的乘法规模法则能够捕捉不同因素与微调数据大小之间的规模关系。在每组实验中,他们保留了一些数据点作为保留集,以展示拟合和预测能力。图3展示了预训练数据大小与微调数据大小的乘法联合规模法则,其中​是预训练数据大小的规模指数。

在固定1B大小的语言模型条件下,预训练数据规模和微调数据规模之间的乘性联合缩放法则
  • FMT(全模型微调):在WMT En-De数据集上,当模型大小为1B时,e=0.005,h=0.006,表明模型在拟合数据和保留数据上的表现相近,拟合误差和外推误差较小。
  • Prompt(提示调整):在WMT En-De数据集上,e=0.007,h=0.006,显示了与FMT相似的趋势。
  • LoRA(低秩适应):在WMT En-De数据集上,e=0.006,h=0.008,同样显示出较小的误差。

研究者们发现,在微调中,LLM模型规模的增加比预训练数据规模的增加对性能的提升更为显著。尽管在预训练阶段,模型大小和数据大小对规模的影响相似,但在微调中,模型大小的规模指数通常大于预训练数据大小的规模指数​,即。这表明在微调中,使用更大的LLM模型比使用更大的预训练数据集更受青睐。

对于LoRA和Prompt,增加PET参数规模(即增大提示长度或LoRA的秩)对微调性能的提升非常有限。图4和表4显示,增大PET参数规模的影响微乎其微,规模指数远小于在某些情况下(例如En-De上的LoRA)甚至出现了逆向规模效应。

在固定1B大小的语言模型条件下,PET(Prompt Tuning和LoRA)参数规模和微调数据规模之间的乘性联合缩放法则

微调数据规模对FMT的影响比对PET更为显著。表4显示,FMT的规模指数β通常显著高于PET,表明FMT更依赖于更多的微调数据。LoRA在微调数据规模上的表现通常略优于Prompt,后者在只有几千个微调样本时表现更好。

研究者们注意到,规模效应的高度依赖于具体任务。他们选择的封闭生成任务(翻译和摘要)可能会产生有偏见的观察结果,对于更具创造性的生成任务,更大和更多样化的预训练数据可能更为重要。

微调方法的选择应基于可用的微调示例数量。当只有几千个微调示例可用时,应首先考虑PET,无论是Prompt还是LoRA。随着数据集规模的增加,LoRA由于其稳定性和稍好的微调数据规模性能而更受青睐。对于百万级别的数据集,FMT可能是一个好选择。另外微调对基础LLM的泛化能力的影响是方法和任务依赖性的,总的来说Prompt和LoRA在大型基础LLM上比FMT表现更好,这主要是因为LLM参数被冻结,学到的知识得到了继承。这表明,当泛化能力是一个重要考虑因素时,应考虑使用PET。

总结与讨论

研究者们指出,虽然从直觉上看,存在一个临界点,在这个临界点之上,某种微调方法的性能会超过另一种方法。但是,由于联合规模法则的高度非线性,使得人们无法通过分析方法直接确定这些点。尽管当两种方法之间的性能差异固定时,微调数据大小遵循幂律,研究者们还是通过外推拟合的规模法则来采用经验方法。

根据拟合的联合缩放法则估计的不同微调方法之间的临界微调数据规模

图5展示了在不同任务上,基于拟合的联合规模法则估计的不同微调方法之间的关键微调数据大小。使用scipy.optimize.fsolve进行估计。"A vs. B"的关键点是指在基线模型条件下,A和B性能相等的微调数据大小(y轴),这个值在不同任务中差异很大。

研究者们建议,微调方法的选择应基于微调样本的可用性。当只有几千个微调样本时,应首先考虑PET(参数高效调整),无论是Prompt还是LoRA。当数据集略大时,由于其稳定性和稍好的微调数据规模性能,LoRA更受青睐。对于百万级别的数据集,全模型微调(FMT)将是一个好的选择。

研究者们还探讨了微调对基础LLM泛化能力的影响。尽管针对特定任务的数据进行微调可以提高该任务的性能,但可能会使基础LLM专业化,从而损害模型的泛化能力。研究者们通过对在WMT14 En-De和WMT19 En-Zh上微调的LLMs进行零样本翻译来检验这一点。他们专注于对相关任务的泛化,其中目标语言是共享的,即德语(De)和中文(Zh),泛化应该相对容易。

在不同语言模型大小和微调数据规模条件下,模型在零样本翻译任务上的性能

图6展示了结果。尽管专门针对下游任务进行微调,微调仍然可以激发并改善对密切相关任务的泛化,尽管整体零样本翻译质量较差。值得注意的是,微调是否有利于泛化取决于方法和任务。总体而言,特别是当基础LLM较大时,Prompt和LoRA比FMT取得了相对较好的结果,这主要是因为LLM参数被冻结,学到的知识得到了继承。这也表明,当泛化能力是一个重要考虑因素时,应考虑使用PET。

由此得出结论,微调方法的选择应基于特定任务的需求、可用数据量以及对模型泛化能力的考量。此外,微调对模型泛化能力的影响是多方面的,需要在具体应用中仔细权衡。通过这些深入的讨论,研究者们为LLM微调方法的选择提供了有价值的见解,并指出了未来研究的方向。

论文链接:https://arxiv.org/abs/2402.17193

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

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

相关文章

CRC16循环冗余校验

代码&#xff1a; #include<stdio.h> #include <stdint.h>#define uchar unsigned char #define uint unsigned int static const uint8_t auchCRCHi[] { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x0…

33.x86游戏实战-喊话CALL

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

CTFHUB—XSS—DOM反射

开启题目 输入以下语句测试一下&#xff0c;发现页面没有弹出窗口显示“flag” <script>alert("flag")</script> 查看页面源代码&#xff0c; 尝试闭合标签 使用下面代码闭合&#xff0c;然后发现闭合成功了 </script><script>alert("…

【Python机器学习】利用AdaBoost元算法提高分类性能——基于AdaBoost的分类

一旦拥有了多个弱分类以及其对应的alpha值&#xff0c;进行测试就变得非常容易了。现在&#xff0c;要将弱分类器的训练过程从程序中抽出来&#xff0c;然后应用在某个具体的实例上。每个弱分类器的结果以其对应的alpha值作为权重。所有这些弱分类器的结果加权求和就得到了最后…

ElementUI元件库在Axure中使用

一、ElementUI元件库介绍 ElementUI 是一套为开发者、UI/UX设计师和产品经理准备的基于Vue 2.0的桌面端组件库。它以其优雅的设计和丰富的组件&#xff0c;极大地提升了Web应用的开发效率与用户体验。ElementUI的组件设计精致且符合现代UI规范&#xff0c;包括按钮、表单、弹窗…

判断用户是否在pwa环境中打开运行?(已安装的 PWA 与未安装的 PWA 网站之间有什么区别?)

前言&#xff1a; &#x1f449;vue3tsvite项目中使用vite-plugin-pwa搭建 PWA 项目&#xff0c;以及如何处理pwa安装图标的显示隐藏 &#x1f449;pwa在iframe下能否显示&#xff0c;以及在iframe下相关问题解析 如何判断用户是否在pwa环境中运行? 根据pwa配置的display-mo…

Captive Portal验证原理

物联网开发系列&#xff1a;物联网开发之旅① WiFi to Ethernet: 树莓派共享无线连接至有线网口&#xff0c;自动通过Captive Poartal验证物联网开发番外篇之 Captive Portal验证原理 文章目录 工作原理技术细节登录页面的实现自动化登录 登录界面的原理主要涉及到Web认证&…

想用matlab画一个3Y轴x-y图,如何实现??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Windows 7和Windows10系统如何关闭重复进入Windows启动管理器的现象?

目录 背景: 方法一:使用命令提示符关闭Windows管理器 方法二:通过系统属性来关闭WIndows启动管理器 两种方法的总结: 背景: Windows 启动管理器&#xff08;Windows Boot Manager&#xff09;是 Windows 操作系统中的一个关键组件&#xff0c;它负责在系统启动时管理和引导…

千字解读《2024年前瞻中国AI大模型场景应用趋势蓝皮书》!直击大模型应用五大挑战:最大痛点在于技术面临“卡脖子”风险

7月30日&#xff0c;由前瞻产业研究院携手华为云、首钢基金、深圳上市公司协会联合发起&#xff0c;深圳市政府指导的“深圳产业会客厅——2024人工智能产业对接活动”圆满举办。 会上&#xff0c;前瞻产业研究院院长徐文强以“中国AI发展的必然与挑战”为题&#xff0c;深度剖…

《python语言程序设计》2018版第6章第25(反素数逆向拼写素数)是指一个将其逆向拼写,我不懂反素数公式看不懂。放弃了。

首先使用之前的确认素数的函数is_prime来进行素数的识别 我在网上看到来一个反素数的公式。在这个公式中我还是不能理解&#xff0c;这些数学问题。 我先把对数学的理解放到一边。 之前的版本我是采用对整数化的素数分成二个或三个的位数。然后经过倒序来显示。 I del before …

GooLeNet原理

一、GooLeNet网络结构 1*1卷积的作用&#xff1a; 实现跨通道的交互和信息整合、卷积核通道数的降维和升维&#xff0c;减少网络参数 全局平均池化层(GAP) 优点&#xff1a;抑制过拟合、GAP使特征图输入尺寸更加灵活 缺点&#xff1a;信息丢失、特征丰富性、梯度信息、复杂…

小米澎湃OS 天气-通用版 V15.0.11.0 丨适配大部分 机型

小米澎湃OS 天气-通用版 APP &#xff0c;版本号 V15.0.11.0&#xff0c;基于最新版本提取&#xff0c;纯 64 位架构。非常纯净&#xff01; 「小米天气通用版 V15.0.11.0.apk」 链接&#xff1a;https://pan.quark.cn/s/e16548df0567

如何实现pxe安装部署

此实验环境&#xff1a;rhel7主机 一、kickstart自动化安装脚本 1、安装可视化图形 [rootlocalhost ~]# yum group install "Server with GUI" 2、关闭vmware dhcp功能&#xff08;编辑-虚拟网络编辑器&#xff09; 3、httpd 1、安装httpd服务 [rootlocalhost …

【YOLOv5/v7改进系列】引入卷积块注意力模块CBAM注意力机制

一、导言 CBAM&#xff08;Convolutional Block Attention Module&#xff09;是一种简单而有效的注意力机制模块&#xff0c;旨在增强卷积神经网络&#xff08;CNN&#xff09;的表现力。该模块通过引入两个独立的注意力机制——通道注意力和空间注意力——来适应性地精炼特征…

大模型学习笔记 - LLM 参数高效微调技术

LLM 参数高效微调技术 LLM 高效微调技术 Adapter Tuning (2019 google,在Transformer 结构中嵌入adapter,tuning on BERT)Prefix Tuning (2021.01 斯坦福&#xff0c;通过virtual token构造连续型隐式prompt)Prompt Tuning&#xff08;2021.04&#xff0c;google&#xff09;P…

CSS学习 02 利用鼠标悬停制造按钮边框的渐变方向变化

效果 页面背景为深灰色&#xff0c;使用Karla字体。容器内的按钮居中显示&#xff0c;按钮有一个彩色渐变的边框。按钮的背景为黑色&#xff0c;文字为浅灰色。当鼠标悬停在按钮边框上时&#xff0c;边框的渐变方向变化&#xff0c;按钮文字变为白色&#xff0c;并且按钮内边距…

类和对象——日期类实现

目录 前言&#xff1a; 一、构造 二、运算符重载 三、与-- 四、实现与 操作 4.1 实现 操作 4..2 实现操作 4.3 效率分析 五、实现 - 与- 操作符 六、日期减日期 七、流插入和流提取 八、完整代码 Date.h Date.cpp 前言&#xff1a; 我们之前已经学习过了类和对象&…

交换机-端口安全

端口安全 1 概述 端口安全&#xff08;Port Security&#xff09;通过将接口学习到的动态MAC地址转换为安全MAC地址&#xff08;包括安全动态MAC、安全静态MAC和Sticky MAC&#xff09;&#xff0c;阻止非法用户通过本接口和交换机通信&#xff0c;从而增强设备的安全性。 2 …

力扣热题100_二叉树_94_二叉树的中序遍历

文章目录 题目链接解题思路解题代码 题目链接 94. 二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&#xff1a;root [] 输…