LLM的指令微调新发现:不掩蔽指令

news2024/9/23 9:36:00

最近看到了一篇挺有意思的论文,叫《指令掩蔽下的指令调整》(Instruction Tuning With Loss Over Instructions,https://arxiv.org/abs/2405.14394) 。

这篇论文里,研究者们对一个在指令微调中大家普遍接受的做法提出了疑问,那就是在算损失的时候把指令给遮起来(Instruction Masking During Instruction Finetuning)。不过咱们先别急着聊这个,先来聊聊指令微调是啥。

图片

指令微调(Instruction Tuning,简称IT),它的工作就是让那些已经预训练好的大型语言模型,比如LLM,能更好地理解并执行我们给的指令,比如说“总结一下这篇文章”或者“翻译这句话”啥的。这样做可以帮助缩小模型预测下一个词的目标和我们让它按指令来的目标之间的差距。指令微调其实可以看作是监督式微调(Supervised Fine-Tuning,SFT)的一种特殊情况,不过它们的目标还是有些不同的。

监督式微调,就是拿些标记好的数据来继续训练预训练的模型,让模型能更好地完成特定的任务。而指令微调呢,就是让大型语言模型在包含“指令-输出”对的数据集上再训练一下,这样能提升模型的能力和可控性。指令微调的特别之处在于它的数据集结构,是由人类指令和期望输出组成的一对对的。这种结构让指令微调专注于让模型理解和遵循人类的指令。

总的来说,指令微调是监督式微调的一种特别形式,它专注于通过理解和遵循人类指令来提升大型语言模型的能力和可控性。虽然它们的目标和方法挺像的,但指令微调的特殊数据结构和任务焦点让它成了SFT的一个独特的小分支。

图片

指令微调的数据集示例

在对LLM进行指令微调时,我们通常在计算损失时会掩蔽掉指令本身。

在其他流行的LLM库如Axolotl中,这也是通过config.yaml中的train_on_inputs: false默认设置自动完成的。在Hugging Face中,这不是默认做的,但可以通过DataCollatorForCompletionOnlyLM数据集收集器来实现,详见他们的文档。

图片

输入掩蔽的图,其中突出显示的文本仍然提供给LLM,但在训练期间计算损失时不使用。

就像刚才聊的,把输入提示遮起来这事儿在调教大型语言模型时挺常见的。有些论文里头,研究者们会试试看遮不遮提示,哪个效果更好。比如说,QLoRA这篇论文( "QLoRA: Efficient Finetuning of Quantized LLMs",https://arxiv.org/abs/2305.14314)里头,他们就比了比,发现遮起来效果还挺不错的。

图片

但是得注意,MMLU这个测试主要是看看模型做多选题怎么样,它没去测如果把微调后的模型拿来当聊天机器人用,这对话能力会受啥影响。

在这篇论文里,研究者们就特别认真地研究了,遮不遮指令,对模型性能有啥不一样的影响。

图片

(1)无指令掩蔽,(2)指令掩蔽,和(3)样板文字掩蔽。

上图里头,方法1是咱们用大型语言模型时的常规操作,因为它用起来简单,不需要咱们额外费心去改损失函数啥的。论文里的作者管这招叫“指令建模”。而且哦,他们在论文里还提到,除了指令,那些可能会出现在非Alpaca提示模板里的,像是<|user|><|assistant|><|system|>这样的特殊提示标记,也都会被遮起来。

方法2是目前大家用得最多的,算损失的时候,除了模型的回应,其他啥都被遮起来。论文里的作者把这招叫做“指令调整”,不过这个名字起得有点尴尬,因为我们实际上不是在调整指令,而是在算损失的时候把指令排除在外,跟方法1比起来。

画上图的时候,我突然想到一个论文里没提到的第三种方法:把那些每回都出现的样板文字给遮起来。比如Alpaca风格的提示,每个例子开头都是“Below is an instruction...”。这些文字和真正的指令、输入比起来,其实是固定的,所以可以考虑在算损失的时候不包括它们。

研究结果发现,这种不把指令遮起来的“指令建模”方法,好像效果还挺好的,比那些遮起来的方法要强一点儿,具体的数据图如下所示。

图片

不掩蔽指令比掩蔽指令表现更好。注释来自《指令掩蔽下的指令调整》,( https://arxiv.org/abs/2405.14394)

然而,“指令建模”的性能取决于(a)指令和响应长度的比例和(b)数据集的大小(就训练示例的数量而言)。

图片

不掩蔽指令的好处取决于数据集的长度和大小。注释来自《指令掩蔽下的指令调整》,(https://arxiv.org/abs/2405.14394)

为啥“指令建模”的效果和数据集的大小、长度有关系呢?原因可能是这样的:如果模型要回应的内容很短,而且训练时用的例子又不多,那模型就很容易把那些回应给记住了。这时候,如果我们在计算损失的时候,把指令这些信息也考虑进去,也就是说让模型输出的内容更多地反映在损失计算里,就能帮到模型,让它不那么容易出现过拟合的情况。

简单来说,研究者们发现,有时候回到最基本的方法,也就是不把指令遮起来,反而能提升模型的表现。

而且,有意思的是,简单的不掩蔽指令的方法(当然,除了那些特殊的提示标记,像<|user|><|assistant|><|system|>这些还是得遮的),效果竟然更好。

我自己以前也试过这两种方法,当时没觉得哪个明显更好,所以就没在掩蔽这块儿多下功夫,而是去调整别的设置了。现在想想,可能当时应该多试试不同的掩蔽方法,因为现在看来,这个方法好不好用,可能还真的和数据集的大小、长度有关系。

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

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

相关文章

2024.9.10营养小题【1】

收获&#xff1a; 1、上图中第一个红框中的内容有所收获&#xff0c;首先是malloc这个函数。 2、*returnSizen*2 这条语句我觉得不存在也不影响解这道题吧&#xff0c;它的作用是给returnSize这个指针指向的那块内存赋值&#xff0c;这个值是不是不给也可以.......

启动程序时遇到0xc000007b应用程序无法正常启动问题

启动程序时遇到0xc000007b应用程序无法正常启动问题 参考链接&#xff1a; 1、https://www.bilibili.com/read/cv16283667/ 一、问题描述&#xff1a; 启动程序时遇到0xc000007b应用程序无法正常启动问题&#xff0c;问题截图如下&#xff1a; 二、问题原因&#xff1a;错误…

芯片IC的热特性和热阻

芯片IC的热特性和热阻 1.概述2.热特性基础3.热阻4.常用的热阻值5.有效散热的经验法则5.1选择合适的封装5.2尽可能大面积的PCB覆铜5.3增加铜厚5.4用散热焊盘和过孔将多层PCB连接5.5结构散热5.6散热片的合理使用5.7不要在散热走线上覆阻焊层 IC 封装的热特性对 IC 应用和可靠性是…

LSTM处理时序数据:深入解析与实战

大家好&#xff0c;我是你们的深度学习老群群。今天&#xff0c;我们来聊一聊LSTM&#xff08;长短期记忆网络&#xff09;是如何处理时序数据并得到预测结果的。LSTM作为循环神经网络&#xff08;RNN&#xff09;的一种变体&#xff0c;因其能够有效捕捉长期依赖关系&#xff…

nova Flip的AI技能点拉满,这些趣味且实用的功能你知道几个?

随着科技的蓬勃发展&#xff0c;人工智能已经渗透到我们日常生活的各个领域&#xff0c;“AIGC”“AI大模型”成为时下的热门词汇。手机作为承接AI革新技术的重要载体&#xff0c;不仅能够大大提升用户的工作效率&#xff0c;也带来了自然、流畅的操作交互体验。 nova Flip…

RocketMQ搭建集群监控平台

一、概述 RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals&#xff0c;这个项目中有一个子模块叫rocketmq-console&#xff0c;这个便是管理控制台项目了&#xff0c;先将incubator-rocketmq-externals拉到本地&#xff0c;因为我们需要自己对rocketmq-console…

win11任务栏颜色怎么全透明?简单四招设置透明任务栏,保姆级教程!

在日常使用win11时&#xff0c;任务栏是我们与电脑互动的重要窗口。随着越来越多的用户希望将桌面环境打造成一个既美观又个性化的空间&#xff0c;任务栏的外观便成为了许多人关注的重点。很多用户发现&#xff0c;尽管win11系统提供了半透明的任务栏&#xff0c;但还是渴望实…

AlphaNovel的身份验证失败了..........

我的AlphaNovel的这个身份验证失败了,不知道失败原因是什么... 前两周在网上看到这个项目,在国外这个网站搬运国内小说,但是前提是要通过这个身份验证,可是我等了十多天,结果身份验证失败了,有也在做这个的同志吗? 你们身份验证怎么样

告别繁琐,IsMyHdOK硬盘测速,即刻享受科技便利

快节奏的生活因科技而精彩纷呈&#xff0c;它赋予我们超越时空的能力&#xff0c;让工作与家庭的天平在忙碌中依然保持平衡——而面对数据爆炸的时代&#xff0c;硬盘作为数据存储与交换的核心部件&#xff0c;其性能直接影响到我们的工作效率和体验。正是在这样的背景下&#…

【2024下半年最新!】端点安全管理系统是干啥的?10款哈游的端点安全管理系统推荐!

一、端点安全管理系统是干什么的&#xff1f; 端点安全管理系统&#xff08;Endpoint Security Management System, EMS&#xff09;是一种全面、高效的网络安全管理工具&#xff0c;旨在保护企业网络和数据的安全性。以下是其主要功能和作用&#xff1a; 端点检测和识别&…

若依系统(Security)增加微信小程序登录(自定义登录)

若依系统(分离版后端)自带的账号验证是基于 UsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(username, password); 验证&#xff0c;然后在系统中controller或service类中 SecurityUtils 工具类中直接可获取用户或用户…

PowerShell下载文件的5种简单方法,总有一种适合你

序言 PowerShell是一个功能强大的工具,不仅适用于IT专业人员,如果你想自动化任务或下载文件,它也能做得到。如果你想快速、可靠地从互联网上抓取文件,它们非常有用。以下是使用PowerShell下载文件的最简单方法。 使用Invoke WebRequest下载 使用PowerShell下载文件的最简…

如何查询、统计品牌在抖音的品牌声量?

现在抖音平台的竞争越来越激烈&#xff0c;企业想做好在抖音平台上的品牌营销&#xff0c;就需要时刻监测抖音上品牌声量的大小&#xff0c;比如企业品牌声量趋势、品牌sov值、搜索指数等相关指标&#xff0c;辅助衡量品牌宣传效果如何。那怎么去查询统计品牌声量情况呢&#x…

用于完善智能电表设计的 FPGA 到 ASIC 研究

许多嵌入式系统设计首先使用 FPGA 来实现。这可能是为了更快地进行原型设计或提供软件开发平台。有时&#xff0c;生产开始后&#xff0c;FPGA 仍保留在设计中。但通常情况下&#xff0c;计划是将 FPGA&#xff08;或多个 FPGA&#xff09;转换为 ASIC 以进行批量制造。 人们很…

万龙觉醒免费辅助:VMOS云手机多开攻略!黄金圣殿攻略详情!

在《万龙觉醒》的世界中&#xff0c;玩家将迎来诸多挑战&#xff0c;而其中最具策略性的活动之一便是黄金圣殿的征战。为了让玩家能够轻松应对游戏中的难题&#xff0c;我们强烈推荐使用VMOS云手机。VMOS云手机不仅针对《万龙觉醒》推出了专属定制版云手机&#xff0c;内置游戏…

vue如何使用百度地图

一、引入百度地图 1.public文件夹下放置index.html文件 2.在html文件中引入网址&#xff0c; 二、在config.js文件中添加externals.BMap配置&#xff0c;与entry平级&#xff0c;内容如下 三、设置地图区域 必须设置div宽度和高度&#xff0c;否则也不能正常显…

记一次H5应用轻量优化方案调研与实施

由于H5应用具备开发周期短、灵活性好的特点,所以OA项目应用功能开发过程中经常结合WebView +H5进行Hybrid模式开发,但Android 原生WebView客观存在的性能问题,导致H5应用加载速度慢,影响用户体验。基于OA H5应用中找到审批详情加载慢的原因,并对其优化。 一个页面在WebVi…

快手怎么关闭ip地址 抖音ip属地如何隐藏

快手怎么关闭ip地址 要在快手上关闭IP地址的显示&#xff0c;您可以通过以下步骤来操作&#xff0c;以保护您的隐私&#xff1a; ‌打开快手APP‌&#xff1a;首先&#xff0c;确保您已经安装了快手APP&#xff0c;并且处于登录状态。 ‌进入设置页面‌&#xff1a;在快手AP…

2024骨传导耳机哪个牌子好?分享五款资深用户好评的骨传导耳机!

随着骨传导耳机市场的稳步增长&#xff0c;消费者群体日益扩大&#xff0c;对使用安全与品质的关注也随之提升。值得注意的是&#xff0c;市场上涌现出不少由非专业制造商贴牌或网络红人推广的骨传导耳机产品&#xff0c;这些产品往往因缺乏深厚的技术底蕴与精细的音质调校&…

聚类案例——汽车是否值得购买

对汽车是否值得购买&#xff0c;进行聚类分析&#xff1a; 1、数据指标解释&#xff1a; buying, 购买费用 maint, 维修费用 doors, 车门数量 person, 乘坐人数 lug_boot, 行李箱容量 safety, 安全性 2、对数据进行转换 将字符串转换映射量化为数字 数据加载&#xff1a…