7.7亿参数,超越5400亿PaLM!UW谷歌提出「分步蒸馏」,只需80%训练数据|ACL 2023
大型语言模型在性能方面表现出色,能够通过零样本或少样本提示来解决新任务。然而,在实际应用部署中,LLM却不太实用,因为它的内存利用效率低,同时需要大量的计算资源
比如运行一个1750亿参数的语言模型服务至少需要350GB的显存,而目前最先进的语言模型大多已超过5000亿参数量,很多研究团队都没有足够的资源来运行,在现实应用中也无法满足低延迟性能。
也有一些研究使用人工标注数据或使用LLM生成的标签进行蒸馏来训练较小的、任务专用的模型,不过微调和蒸馏需要大量的训练数据才能实现与LLM相当的性能。
为了解决大型模型对资源的需求问题,华盛顿大学与谷歌合作提出了一种名为「分步蒸馏」(Distilling Step-by-Step)的新蒸馏机制。通过分步蒸馏,经过蒸馏后的模型尺寸相较于原模型来说更小,但性能却更优,而且在微调和蒸馏过程中所需的训练数据也更少
请点击以下链接查看论文:https://arxiv.org/abs/2305.02301
分布蒸馏机制把LLM中抽取出的预测理由(rationale)作为在多任务框架内训练小模型的额外监督信息。
经过在4个NLP基准上进行实验后,我们发现:
1. 与微调和蒸馏相比,该机制用更少的训练样本实现了更好的性能;
相较于少样本提示LLM,该机制利用更小尺寸的模型实现了更出色的性能
3. 同时降低模型尺寸和数据量也可以实现优于LLM的性能。
实验中,微调后770M的T5模型在基准测试中仅使用80%的可用数据就优于少样本提示的540B的PaLM模型,而标准微调相同的T5模型即使使用100%的数据集也难以匹配。
蒸馏方法
分布蒸馏的关键思想是逐步抽取出信息丰富且用自然语言描述的预测理由,即中间推理步骤,以解释输入问题与模型输出之间的联系,并通过这些数据来更高效地训练小模型
分布蒸馏主要包括两个阶段:
1. 从LLM中提取原理(rationale)
研究人员利用少样本思维链(CoT)提示从LLM中提取预测中间步骤。
在确定目标任务之后,首先在LLM输入提示中准备几个样例。每个样例都由一个三元组组成,包括输入、原理和输出
输入提示后,LLM能够模仿三元组演示以生成其他新问题的预测原理,例如,在常识问答案任务中,给定输入问题:
Sammy想去人群聚集的地方。他会选择哪里呢?选项有:(a)人口稠密地区,(b)赛道,(c)沙漠,(d)公寓,(e)路障
(Sammy wanted to go to where the people are. Where might he go? Answer Choices: (a) populated areas, (b) race track, (c) desert, (d) apartment, (e) roadblock)
通过逐步提炼后,LLM可以给出问题的正确答案「(a)人口稠密地区」,并且提供回答问题的理由「答案必须是一个有很多人的地方,在上述选择中,只有人口稠密的地区有很多人。」 经过逐步提炼,LLM能够得出正确答案为「(a)人口稠密地区」,并提供了解答问题的理由「答案必须是一个有很多人的地方,在上述选择中,只有人口稠密的地区有很多人。」
通过在提示中提供与基本原理配对的CoT示例,上下文学习能力可以让LLM为未曾遇到的问题类型生成相应的回答理由
2. 训练小模型
通过将训练过程构建为多任务问题,可以将预测理由抽取出来,并将其纳入训练小模型中
除了标准标签预测任务之外,研究人员还使用新的理由生成任务来训练小模型,使得模型能够学习生成用于预测的中间推理步骤,并且引导模型更好地预测结果标签。
通过在输入提示中加入任务前缀「label」和「rationale」来区分标签预测和理由生成任务。
实验结果
在实验中,研究人员选择5400亿参数量的PaLM模型作为LLM基线,使用T5模型作为任务相关的下游小模型。
在这项研究中,我们对四个基准数据集进行了实验,这四个数据集分别是e-SNLI和ANLI用于自然语言推理,CQA用于常识问答,以及SVAMP用于算术数学应用题。我们在这三个不同的NLP任务中进行了实验
更少的训练数据
分步蒸馏方法在性能上比标准微调更出色,而且只需较少的训练数据
在e-SNLI数据集上,当使用完整数据集的12.5%时就实现了比标准微调更好的性能,在ANLI、CQA和SVAMP上分别只需要75%、25%和20%的训练数据。
与使用220M T5模型对不同大小的人工标记数据集进行标准微调相比,分布蒸馏在所有数据集上使用更少的训练示例时,优于在完整数据集上进行标准微调
更小的部署模型尺寸
与少样本CoT提示的LLM相比,分布蒸馏得到的模型尺寸要小得多,但性能却更好。
在e-SNLI数据集上,使用220M的T5模型实现了比540B的PaLM更好的性能;在ANLI上,使用770M的T5模型实现了比540B的PaLM更好的性能,模型尺寸仅为1/700
更小的模型、更少的数据
在减小模型尺寸和训练数据的同时,我们成功地实现了超越少样本PaLM的性能
在ANLI中,使用770M T5模型的性能超过了540B PaLM,而且只使用了完整数据集的80%
经观察可知,即使使用完整的100%数据集,标准微调也无法达到PaLM的性能水平,这表明通过分步蒸馏可以同时减小模型尺寸和训练数据量,从而实现超越LLM的性能
以上是7.7亿参数,超越5400亿PaLM!UW谷歌提出「分步蒸馏」,只需80%训练数据|ACL 2023的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在Debian系统中,readdir函数用于读取目录内容,但其返回的顺序并非预先定义的。要对目录中的文件进行排序,需要先读取所有文件,再利用qsort函数进行排序。以下代码演示了如何在Debian系统中使用readdir和qsort对目录文件进行排序:#include#include#include#include//自定义比较函数,用于qsortintcompare(constvoid*a,constvoid*b){returnstrcmp(*(

在Debian系统中,readdir系统调用用于读取目录内容。如果其性能表现不佳,可尝试以下优化策略:精简目录文件数量:尽可能将大型目录拆分成多个小型目录,降低每次readdir调用处理的项目数量。启用目录内容缓存:构建缓存机制,定期或在目录内容变更时更新缓存,减少对readdir的频繁调用。内存缓存(如Memcached或Redis)或本地缓存(如文件或数据库)均可考虑。采用高效数据结构:如果自行实现目录遍历,选择更高效的数据结构(例如哈希表而非线性搜索)存储和访问目录信

Debian系统中的readdir函数是用于读取目录内容的系统调用,常用于C语言编程。本文将介绍如何将readdir与其他工具集成,以增强其功能。方法一:C语言程序与管道结合首先,编写一个C程序调用readdir函数并输出结果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

在Debian系统中,OpenSSL是一个重要的库,用于加密、解密和证书管理。为了防止中间人攻击(MITM),可以采取以下措施:使用HTTPS:确保所有网络请求使用HTTPS协议,而不是HTTP。HTTPS使用TLS(传输层安全协议)加密通信数据,确保数据在传输过程中不会被窃取或篡改。验证服务器证书:在客户端手动验证服务器证书,确保其可信。可以通过URLSession的委托方法来手动验证服务器

配置Debian邮件服务器的防火墙是确保服务器安全性的重要步骤。以下是几种常用的防火墙配置方法,包括iptables和firewalld的使用。使用iptables配置防火墙安装iptables(如果尚未安装):sudoapt-getupdatesudoapt-getinstalliptables查看当前iptables规则:sudoiptables-L配置

本指南将指导您学习如何在Debian系统中使用Syslog。Syslog是Linux系统中用于记录系统和应用程序日志消息的关键服务,它帮助管理员监控和分析系统活动,从而快速识别并解决问题。一、Syslog基础知识Syslog的核心功能包括:集中收集和管理日志消息;支持多种日志输出格式和目标位置(例如文件或网络);提供实时日志查看和过滤功能。二、安装和配置Syslog(使用Rsyslog)Debian系统默认使用Rsyslog。您可以通过以下命令安装:sudoaptupdatesud

本文介绍如何在Debian系统中使用iptables或ufw配置防火墙规则,并利用Syslog记录防火墙活动。方法一:使用iptablesiptables是Debian系统中功能强大的命令行防火墙工具。查看现有规则:使用以下命令查看当前的iptables规则:sudoiptables-L-n-v允许特定IP访问:例如,允许IP地址192.168.1.100访问80端口:sudoiptables-AINPUT-ptcp--dport80-s192.16

本文介绍如何在Debian系统中调整ApacheWeb服务器的日志记录级别。通过修改配置文件,您可以控制Apache记录的日志信息的详细程度。方法一:修改主配置文件定位配置文件:Apache2.x的配置文件通常位于/etc/apache2/目录下,文件名可能是apache2.conf或httpd.conf,具体取决于您的安装方式。编辑配置文件:使用文本编辑器(例如nano)以root权限打开配置文件:sudonano/etc/apache2/apache2.conf
