论文解读 | ACL 2024:自我蒸馏在语言模型微调中架起分布差异的桥梁

news2024/9/20 20:30:56

点击蓝字

b6844e8860a5af02cd4b82d751e895c4.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

fca94401d542391b1d151aecc0184a6d.jpeg

杨兆瑞

浙江大学CAD&CG全国重点实验室博士生

导师为陈为教授

概述

大型语言模型(LLMs)的兴起彻底改变了自然语言处理领域,但对它们进行特定任务的微调常常面临在平衡性能和保持一般指令遵循能力方面的挑战。在本文中,我们认为任务数据集与LLMs之间的分布差距是问题的主要根本原因。为解决这一问题,我们引入了自蒸馏微调(Self-Distillation Fine-Tuning,SDFT)方法。它引导模型对任务数据集进行改写,并在蒸馏生成的数据集上进行微调,从而弥合分布差距,并匹配模型的原始分布。我们使用Llama-2-chat模型在各种基准数据集上进行了实验,证明了SDFT能有效减轻灾难性遗忘,且在与普通微调相比时,在下游任务上实现了相当或更佳的性能。此外,SDFT表现出维持LLMs的有用性和安全对齐的潜力。

论文地址:https://arxiv.org/abs/2402.13669

代码地址:https://github.com/sail-sg/sdft

01

The Landscape of LLM Model Fine-tuning

在Hugging Face平台上,每天都有众多微调模型涌现,既有社区爱好者的贡献,也有大型研究机构的成果。例如,搜索基于Llama3的模型,便能找到超过9000个结果。

3ca3c400f8f6ad0adf0e0fb4c4f4c07b.png

02

The Challenge of Enhancing Existing Models: Performance

尽管微调模型以提升特定任务性能看似简单,但实际操作却面临挑战。以Meta发布的Llama3为例,其训练数据细节未公开,且模型已使用超过1000万个未公开标注示例。因此,收集模型未见过的私有数据并进行有效微调并非易事。

f999654528f8236a72c4c087eb983b6c.png

03

The Challenge of Enhancing Existing Models: Safety

微调大型语言模型可能削弱其安全性。根据ICLR 24的一篇文章,微调后的模型安全性可能大幅降低。尽管模型在通过RLHF对齐后与人类价值观一致,微调仍可能破坏这一安全保障。实验显示,即使是使用良性数据集进行微调,模型的安全性也会降低。

b4c082eb1366c5e0e009547880cf21dc.png

04

The Need for a Better Approach

前面提到了微调面临的两个挑战:性能和安全性。本文探讨是否存在一种更优的方法来进行微调,以便在提升下游任务能力的同时,仍能保持模型原有的安全性能。这涉及到对模型进行定制化与保持其通用性的平衡。

0a18b534d9f8cb9d09600cc7b9b5f334.png

05

The Root Cause of Challenge

本文实验表明,微调的主要挑战在于原始模型数据分布与微调数据分布之间的差异。左图显示了Lama-3-Instruct模型的广泛能力,如代码生成、故事讲述和文本摘要,这些能力与人类价值观对齐,确保了模型的安全性。然而,微调特定任务时,所用数据往往来自狭窄分布,可能影响模型性能。

af51692a2716814583352824e31d1d59.png

06

Introducing Self-Distillation Fine-Tuning

基于上述发现,本研究提出了一种新的微调策略,名为自蒸馏微调(Self-Distillation Fine-Tuning,简称SDFT)。该方法旨在对齐任务数据集与语言模型的原始数据集,以减少两者之间的分布差异,同时保留数据集中的监督信息。SDFT通过语言模型对目标标签进行重写,实现新知识与模型原有知识体系的整合。

本文进一步提供了一个示意图,清晰展示了两种微调方法的差异。图的上半部分展示了传统微调(Vanilla Fine-Tuning),即直接在特定数据集上对语言模型进行微调,以增强其在特定任务上的表现。然而,此方法可能导致模型在其他能力上的损失,形成所谓的折衷语言模型。相对而言,图的下半部分介绍了SDFT方法。该方法首先通过蒸馏技术生成精炼数据集,随后在该数据集上执行微调,旨在提升模型在特定任务上的性能,同时避免对原始能力的损害。

35a0b70ffa287ec0513528c1814fa125.png

07

Method: Self-Distillation Fine-tuning

本文提出的SDFT方法通过从选定的对话模型开始,如Llama-3-Instruct或Llama-2-Chat,筛选并重写特定下游任务中表现不佳的数据集,生成与原始模型分布对齐的精炼数据集,进而在该数据集上进行微调,以实现在提升新技能的同时保持模型原有能力的目标。示意图展示了将原始数据集分布向模型原始分布的转变过程,从而确保微调后的数据集分布(橙色区域)与模型的初始分布更为接近。

8d1b070e55150d1c408ae605c9a7de25.png

下图中呈现了一个用于知识蒸馏的模板及其应用实例。该模板是在Alpaca模板的基础上经过调整形成的,它包含了原始的指令和响应,旨在引导模型基于这些信息生成创新的响应。演示的右侧部分具体展示了一个示例,其中包含了指令和原始响应,以及模型经过改写得到的蒸馏响应。原始响应仅对问题进行了简要回答,而蒸馏响应则在此基础上进行了扩展,融入了模型自有的知识体系,以提供更全面的答复。

fe0e2c429c272b0ece75ac05d9e1a0ae.png

08

Experiments: SDFT vs. Vanilla Fine-tuning

实验阶段,本表格详细对比了传统的Fine-tuning方法与本研究所提出方法的性能差异。

实验主要聚焦于三个具有代表性的下游任务数据集:GSM8K(数学问题集)、HumanEval(代码生成能力评估)以及OpenFunctions(函数调用能力评估)。表格中列出了各模型在经过微调后,在不同数据集上的性能表现。

数据显示,在经过传统微调之后,模型在特定微调数据集上的性能有所增强。例如,原始的语言模型在OpenFunctions数据集上的准确率从19.6提升至34.8。然而,这种提升往往伴随着在其他数据集上性能的下降,如在OpenFunctions数据集上微调后,GSM8K数据集上的准确率从29.4下降至21.5。这一对比凸显了传统微调方法的局限性。相对地,采用本研究提出的自我蒸馏微调方法,观察到了不同的结果,表明该方法可以在维持模型原有能力的同时,有效提升特定任务的性能。

f4b6aa97bfbf22db4b7366b028c8d9a0.png

在针对特定任务数据集的微调过程中,本研究所采用的方法不仅在目标数据集上实现了性能提升,其准确率达到了36.6,这一结果与采用传统微调所取得的提升相当或更优,如蓝框所示区域所展示。值得注意的是,在经过本方法的微调后,模型在其他数据集上的性能下降幅度较小。以GSM8K数据集为例,在传统微调后性能下降至21.5,而通过自我蒸馏微调后,性能仅略微下降至29.1。这一现象表明,尽管两种微调方法均能有效提升模型在目标任务上的性能,但本研究所提出的方法在保持模型原有广泛能力方面表现更佳。

本部分深入探讨了模型在安全性和帮助性方面的表现。实验对比了两种微调技术:传统微调与自我蒸馏微调。图表中,左侧展示了传统微调的结果,而右侧则展示了SDFT的效果。实验结果表明,经过传统微调后,模型在安全性和帮助性方面的性能出现了显著下降。相比之下,采用SDFT方法的模型在微调后能够更有效地维持其原有的安全性和帮助性水平,从而在保持性能的同时,也确保了模型的可靠性和实用性。

c550d53b0523aeee52642089af58cbaf.png

09

Analysis: Distribution Gap

在本研究的分析阶段,探讨了微调后模型与原始模型之间分布差异的问题。通过对数据集进行模型推理,评估了微调后模型与原始模型在嵌入空间的相似度,以此衡量模型分布的变化。图表中,红色区域代表传统微调后模型与原始模型的嵌入相似度,而绿色区域则显示了采用自我蒸馏微调方法后的嵌入相似度。结果表明,自我蒸馏微调方法处理后的模型在嵌入相似度上具有明显提升,这表明该方法能够有效地减少分布变化,减轻微调过程中的模型遗忘问题。

048f534185fa3db7569394236eb27f16.png

10

Analysis: Effective across Models

在进一步的分析中,研究旨在验证所提方法在不同模型和规模上的普适性。先前的表格主要关注了Llama-2-7b-chat模型在LoRA微调上的表现。为补充这一分析,本研究扩展了考察范围,包括以下三种不同场景:首先是在Llama-2-7b-chat模型上实施全参数微调,结果表明了显著的性能提升;其次是在Llama-2-13b-chat模型上应用LoRA微调;最后是在最新发布的Llama-3-8B-Instruct模型上执行LoRA微调。实验结果显示,在所有这三种场景中,所提方法相较于传统微调均展现出更优的性能。综合这些发现,可以得出结论,该方法在不同模型尺寸和架构上均表现出良好的效果和适用性。

487302dbbba43c90c4a2a662e0122122.png

11

Take Away

本研究的核心发现指出,分布偏移是导致微调过程中灾难性遗忘的关键因素。为应对这一挑战,提出的方法采用自蒸馏技术来减少分布差距,有效缓解了遗忘问题。实验结果进一步证实,该方法不仅提升了模型在目标任务上的性能,还成功保留了模型的原始能力。

本篇文章由陈研整理

a4557abf1566802f7ea75577d6c98b68.png

点击  阅读原文  观看作者直播讲解回放 !

https://www.bilibili.com/video/BV1gb421779t/?share_source=copy_web&vd_source=46fea0c86812502b4bd703eca52de309&t=5489

往期精彩文章推荐

f59f35e9e76fbf35f1feb5f5e3aa347c.jpeg

ACL 2024 | BPO:灵活的 Prompt 对齐优化技术

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1800多位海内外讲者,举办了逾600场活动,超700万人次观看。

4b7086b7727694aeb87d657653529af3.jpeg

我知道你

在看

提出观点,表达想法,欢迎

留言

f6738cf32cb61990fe94a38a53942627.gif

点击 阅读原文 观看作者直播讲解回放!

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

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

相关文章

MySQL数据分析进阶(九)触发器

※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!) 【中字】SQL进阶教程 | 史上最易懂S…

Oracle: oracle大小写敏感问题

oracle大小写敏感含义:比如创建表A和a,A和a是两个不同的表(表名不同)。 oracle大小写不敏感含义:比如创建了A表就不能创建a表,将A和a看成是相同的表(表名相同)。 1、查询用户是否存…

嵌入式人工智能(47-Pycharm通过SSH远程连接调试树莓派4B服务器)

用过Pycharm的同学都知道,这个IDE非常强大,强大到写个Helloworld都不值当运行它,等我打开的功夫,sublime都运行结束了。但是往往写大项目,尤其是web前后端的程序用Pycharm非常爽了,多标签页,前后…

AI Agent Market: Soverin - 引领未来的AI工具中心

随着人工智能技术的快速发展,AI代理正在成为企业不可或缺的新入口。最近,扎克伯格和黄仁勋的对话强调了AI代理的重要性,将其视为继电子邮件、网站和社交媒体之后的第四大企业必备工具。在这个背景下,Soverin作为一个成熟的AI应用和代理市场平台,正引领着AI工具市场的未来趋…

Android平台RTMP直播推送模块技术接入说明

技术背景 大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大&…

XCode15.4真机运行调试

更新Xcode后,没有模拟器内容,而且真机也不显示,编译按钮无法点击,设备在管理运行目标中可见,但无法选中 解决方案:下载iOS17.5模拟器,但最坑的是直接点击“Get”下载总是中断,且无…

mysql幻读现象及其避免策略

mysql幻读现象及其避免策略 1、幻读是什么?2、快照读与当前读3、如何避免幻读?3.1 快照读3.2 当前读 💖The Begin💖点点关注,收藏不迷路💖 1、幻读是什么? 幻读是事务中第二次查询返回了之前不…

Spring Boot 3.x gradle脚手架工程build.gradle详解

为了让读者轻松掌握gradle项目构建脚本中各种配置,我们将从0开始一点点启用配置,以做实验的尝试方式,让大家对各种配置的作用有比较深的印象。如果觉得对你有帮助,记得点赞收藏,关注小卷,后续更精彩&#x…

2024视频编辑网站微服务

文章目录 项目描述流量数据算法主站服务AIGC功能服务视频剪辑服务任务调度服务算法部署服务 项目描述 一款海外视频编辑工具,提供视频编辑、多媒体资源的AI处理、AIGC生成素材等功能。 流量数据 数据: 月活MAU(过去30天活跃用户数)为500万,20%的用户每…

跳蚤市场小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,管理员管理,商品信息管理,论坛管理,收货地址管理,基础数据管理,轮播图信息 微信端账号功能包括:系统首页&a…

windows 达梦到ORACLE dblink

达梦通过DBLINK访问Oracle数据库有两种: 方式一:通过Oracle oci接口; 方式二:一种是通过ODBC数据源的方式。 本案例选择使用Oralce OCI的方式去访问Oracle数据库。 配置Oracle OCI客户端 下载地址:https://www.oracle.com/database/techno…

提升人事工作效率,打造智慧校园人事管理系统

智慧校园人事管理系统中的“人事工作”功能是为了提高校园内人力资源管理的效率和规范化水平,确保教职工队伍的健康发展。这一功能涵盖了从面试管理、职工培训、职工考核、职工体检、职称评定到职工关怀等多个方面,旨在全方位支持教职工的职业发展和个人…

没有mac电脑ios上架截屏截图的最新方法

很多人使用uniapp或其他跨平台框架开发ios的app,上架的时候都会遇到一个问题,上架的时候需要各种尺寸的设备来做ios截屏,比如目前最新的要求是,需要对6.7寸、6.5寸和5.5寸的iphone进行截屏,假如支持ipad则还需要对ipad…

MySQL多表查询练习(53题)

MySQL多表查询练习 学生表、教师表、课程表、分数表 1、查询语文比数学成绩高的学生的信息以及课程分数 2、查询语文比数学成绩低的学生的信息以及课程分数 3、查询语文等于数学成绩的学生的信息以及课程分数 4、查询平均成绩大于等于60分的同学的学生编号,学生姓名…

C语言:求阶乘倒数之和

(1)题目:求Sn11/21/3...1/n,保留4位小数。 (2)代码: #include "stdio.h" int main() {int n; // 整数ndouble sum 0.0; // 倒数之和printf("请输入一个整数:"…

探索AI与社交的交汇点:看Facebook如何引领智能化革命

在当今数字化时代,人工智能(AI)正成为各大科技公司变革的重要驱动力。作为全球领先的社交媒体平台,Facebook(现Meta Platforms)正处于这一智能化革命的前沿。通过不断创新和应用AI技术,Facebook…

气膜建筑的抗风与防火性能:保障仓储的安全—轻空间

气膜建筑以其独特的结构和材料优势,为仓储设施提供了可靠的安全保障。在应对自然灾害特别是强风和火灾时,气膜建筑展示了优异的抗风和防火性能。轻空间将详细探讨这些性能及其在实际应用中的表现。 气膜建筑的抗风能力源于其特殊的结构设计和高性能材料。…

【算法】普里姆算法解决修路问题

应用场景——修路问题 1.某地有 7 个村庄(A,B,C,D,E,F,G),现在需要修路把 7 个村庄连通 2.各个村庄的距离用边线表示(权),比如 A - …

学习日志8.7--防火墙安全策略

安全区域之间的数据流动方向,是根据安全级别的优先级来定义的,如果是从优先级高的地方到优先级低的地方,比如说从Local(100)发送到Trust(85)是outbound,如果是从优先级低的地方到优先…

回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型

回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型 文章目录 前言回归预测|基于雪消融优化极端梯度提升树的数据回归预测Matlab程序SAO-XGBoost多特征输入单输出 含基础模型 一、SAO-XGBoost模型二、实验结果三、核心代码…