Lion:闭源大语言模型的对抗蒸馏

Lion:闭源大语言模型的对抗蒸馏

Lion,由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架,成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型(命名为 Lion),在只有 70k训练数据的情况下,实现了近 95%的 ChatGPT 能力近似。此外,框架的普适性使它不仅可以用于蒸馏 ChatGPT,还可方便地适用于其他闭源 LLMs。

论文题目:

Lion:闭源大语言模型的对抗蒸馏

Lion: Adversarial Distillation of Closed-Source Large Language Model

论文链接:

https://arxiv.org/abs/2305.12870

项目地址:

https://github.com/YJiangcm/Lion

方法概览

具体来说,作者设计 prompt 让闭源 LLM 充当一个“裁判” Referee 来判别出教师的回答和学生的回答存在显著性能差距的难指令。并且,作者设计 prompt 让闭源 LLM 充当一个“生成器” Generator 来生成新的指令,这些生成的指令模拟了对应于被判别出的难指令的数据分布。提出的对抗蒸馏框架如下图所示,每一轮迭代包括三个阶段:

1)模仿阶段,对于一组指令,将学生的响应与老师的响应对齐;

2)区分阶段,识别出难指令;

3)生成阶段,根据识别出的难指令,产生新的难指令以增加对学生模型的挑战。

考虑到学生模型在学习过程中可能会出现灾难性遗忘的问题,作者也生成了同等数量的新的简单指令,来增加训练数据的多样性。具体细节请查阅原论文:

https://arxiv.org/abs/2305.12870

本质上,这个对抗性框架形成了一个正向的反馈循环,有效地提升了学生模型的能力。

image

实****验结果

为了验证方法的有效性,作者将提出的对抗蒸馏框架应用于知名的闭源大语言模型 ChatGPT, 将其知识转移到一个开源的基础预训练模型 LLaMA,该模型由 70 亿参数组成。作者选择了 Alpaca 的训练数据(仅由 175 个手动选择的种子指令生成)作为初始的训练指令,并进行了 3 次 AKD 迭代,总共使用了 70K 的 instruction-following 数据进行训练。最终训练好的模型被命名为 Lion

作者选取了此前的一系列工作包括 LLaMA,Alpaca,Vicuna 和 WizardLM 作为基线。为了公平比较,模型的参数量都定为 7B。按照先前的研究工作,作者使用了两种评估方法:1)使用 GPT-4 自动评估;2)根据“对齐标准”进行人工评估。

**3.1 Automatic Evaluation with GPT-**4

根据先前的研究表明,GPT-4 在比较聊天机器人的回答时具有生成高度一致的排名和全面评估的潜力。这里,作者利用 GPT-4 对两个模型在 80 个 Vicuna-Instructions 上的回答质量进行自动评分(评分从 1 到 10)。作者选取 ChatGPT 的答案作为参照,将 ChatGPT 和其他模型两两进行比较,通过计算得分之和的比率得到不同模型相对 ChatGPT 的整体回答质量。

如下图所示,Lion(7B)相比其他基准模型至少提高了 5.45% 的相对得分,并且接近于 ChatGPT94.74% 的回复质量。

image

为了全面比较 Lion 与其他基准模型在生成高质量回复方面的能力,作者在不同任务类别上绘制了相对回复质量的对比,具体见下图。值得注意的是,Lion 在通用、知识、常识和反事实任务类别中均稍微超过了 ChatGPT。此外,Lion 在数学任务上相比基线模型得分至少高出 26.67%,在代码生成任务上也超过了大部分基准模型。

image

3.2 Human Evaluation with Alignment Criteria

为了评估 LLM 的对齐质量,作者遵循了此前研究采用的 3H 标准:只有具备 helpful、honest 和 harmless(HHH)特征的模型才被认为是对齐的。这些标准被用于衡量人工智能(AI)系统与人类价值观的一致程度。

作者在 252 个 User-Oriented-Instructions 进行了人工评估,并在下图中比较了 Lion 和不同模型之间胜、平、负的频率。人工评估的结果表明,Lion 生成的回答优于除 ChatGPT 之外的其他基准模型。具体来说,与 WizardLM 相比,Lion 在 252 个用户指令中有 81 次取得胜利,而仅在 58 次指令中输掉。这些发现表明,作者提出的框架使得 Lion 在学习各种指令方面非常高效。

image

结论

文章提出了一种创新的对抗知识蒸馏(AKD)框架,用于将闭源的大语言模型(LLM)蒸馏到一个“紧凑”的开源学生模型中。先前的方法集中在单向知识传递上,而作者的方法试图将老师和学生相互的“反馈”融入到学习过程中。作者利用 LLM 的多功能角色适应性,使用不同的 prompt 让闭源模型识别“难”的指令,并为学生模型生成新的“难”指令,从而创建了一个包含模仿、辨别和生成的三阶段对抗循环。

这种方法能够迭代地、高效地提升学生模型的性能。应用该框架,作者将 ChatGPT 蒸馏为一个仅有 70 亿参数的开源学生模型 LLaMA(作者将得到的模型命名为 Lion)。尽管只在 70k 的指示遵循数据上训练,Lion 展现出了接近 95% 的 ChatGPT 能力,在 GPT-4 自动化评估和人工评估中都超过了以往的基线。作者希望 Lion 模型可以作为反映 ChatGPT 性能的基线,以及 NLP 社区中开源指令遵循模型的基线。

局限和讨论

作者在最后指出,Lion 模型仍然存在以下局限:

1)该模型在处理涉及复杂编程或数学计算的任务方面能力有限;

2)训练数据不包括对话,因此 Lion 模型在多轮对话方面的能力较弱;

3)模型的输入序列长度上限为 4096,输出新序列的长度上限为 1024,因此无法实现超长文档处理;

4)模型的安全性,输出内容的毒性、偏好性未经优化。

作者也指出,对于如何衡量大模型的能力,一个统一的、全面的评价指标是必要的。

参考资料:https://it.sohu.com/a/680520547_121119001

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务网关技术选型:Zuul2、Gateway、OpenResty、Kong

1、简介 当使用单体应用程序架构时,客户端(Web 或移动端)通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一个。然后应用程序会查询各种数据库表,并将响应返回给客户端。微…

443端口被占用,vmware居然也来捣乱

今天搬砖时发现应用起不来了,显示出了熟悉的error *************************** APPLICATION FAILED TO START ***************************~~重点在这块哈 Description:Web server failed to start. Port 443 was already in use.Action:Identify and stop the p…

Modbus tcp转ETHERCAT在Modbus软件中的配置方法

Modbus tcp和ETHERCAT是两种不同的协议,这给工业生产带来了很大的麻烦,因为这两种设备之间无法通讯。但是,远创智控YC-ECT-TCP网关的出现,却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…

Android之WebView加载PDF链接预览PDF文件

文章目录 前言一、效果图二、实现步骤1.在项目main目录下新建一个assets2.新建一个js为index.js3.新建一个HTML为index.html4.xml布局4.Activity类(kotlin)5.Activity类(Java) 总结 前言 Android的webview压根就不支持加载pdf&am…

基于单片机的智能空调系统的设计与实现

功能介绍 以51单片机作为主控系统;LCD1602液晶显示当前水温,定时提醒,水量变化DS18B20检测当前水体温度;水位传感器检测当前水位;继电器驱动加热片进行水温加热;定时提醒喝水,蜂鸣器报警&#x…

详解HTTP协议和HTTPS协议

目录 一.HTTP协议 1.什么是HTTP 2.HTTP发展历史 3.HTTP请求和响应 4. 抓包的方式和工具Fiddler 1.开发者工具 2.Fiddler 二.请求和响应 1.请求和响应报文 2.URL结构 3.常见的方法 1.GET方法 2.POST方法 3.其他方法 三.请求报头(header) 1.Host 2.Content-Length 3.Co…

python自动化办公——定制化将电子签名批量签写到PDF文件

python自动化办公——定制化将电子签名批量签写到PDF文件 文章目录 python自动化办公——定制化将电子签名批量签写到PDF文件1、安装依赖2、需求分析3、代码 1、安装依赖 首先需要下载所需要的库 pip install pdf2image pip install img2pdf pip install opencv-python此外还…

vue + el-table点击表头改变其当前样式

废话不多说&#xff0c;先看效果&#xff1a; 网上找了一大圈没有符合的&#xff0c;只能自己看着搞&#xff1a; 直接贴代码&#xff1a; <el-tableref"table":data"tableData"borderstripesort-change"changeColumn"><el-table-colu…

springMVC(二)—— 进阶

一、解决中文乱码问题 解决中文乱码问题的关键在于判断字符是什么时候乱码的 先在java程序里刚生成这个值的地方打印一下&#xff0c;如果在控制台输出就乱码了&#xff0c;那就排除浏览器和jsp页面的编码出问题。否则 看浏览器的编码 看这个jsp页面的编码是否设置好了 一般不用…

简要介绍 | 两阶段点云目标检测:理论与实践

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对两阶段点云目标检测进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 两阶段点云目标检测&#xff1a;理论与实践 在这篇博客中&#xff0c;我们将探索两阶段点云目标检测的理论基础和实际应用…

cancal 同步mysql数据到es中

1.环境&#xff1a; windocs service2012 、 jdk版本1.8 、canal版本1.5、mysql版本5.7、 注意&#xff1a;canal版本1.5需要的jdk是1.8 如果你下载的是canal1.6&#xff0c;jdk是1.8&#xff0c;那样会报错。 下载地址 Releases alibaba/canal GitHub 下载并上传到服…

创建数据库Market、Team,按要求完成指定操作

创建数据库Market&#xff0c;在Market中创建数据表customers&#xff0c;customers表结构如表4.6所示&#xff0c;按要求进行操作。 代码如下&#xff1a; #(1&#xff09;创建数据库Market mysql> create database Market; Query OK, 1 row affected (0.00 sec)mysql>…

Java阶段五Day02

Java阶段五Day02 文章目录 Java阶段五Day02MAVEN-聚合(多模块3)回顾多模块2个特性依赖:继承: 聚合场景聚合目的实现聚合聚合总结 远程仓库远程仓库概念配置settings.xml远程库配置注意事项 GIT详细学习git概括git历史本地版本控制相关命令git分支管理分支管理基本概念分支管理相…

Failed to initialize NVML: Driver/library version mismatch

nvidia驱动安装之后&#xff0c;nvidia-smi 报错 Driver/library version mismatch 不重启系统的解决方法 查看系统日志&#xff0c;确定具体报错信息&#xff1a; # dmesg | tail [8598493.408944] NVRM: API mismatch: the client has the version 525.125.06, butNVRM: t…

STL好难(4):list的使用

和列表很像 1.list的介绍 点击这里查看 list 的官方文档 list类似数据结构中的链表 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独…

flutter聊天界面-自定义表情键盘实现

flutter聊天界面-自定义表情键盘实现 flutter 是 Google推出并开源的移动应用开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App&#xff0c;一套代码同时运行在 iOS 和 Android平台。 flutter开发基础腾讯IM的聊天应用&#xff0c;使用的是t…

css设计表格圆角最简单的方法

代码如下&#xff1a; table {width: 100%;/* border-collapse: collapse; */background-color: #FBFBFB; /* 背景颜色; */border-collapse: separate; /* 让border-radius有效 */border-spacing: 0; /*表格中每个格边距设为0*/border: 1px solid #DFDFDF;/*边框*/border-radi…

ETHERNET/IP 转ETHERCAT连接倍福和欧姆龙PLC的配置方法

ETHERNET/IP和ETHERCAT是两种不同的协议&#xff0c;它们在工业生产中都有广泛的应用。然而&#xff0c;由于协议不同&#xff0c;这两种设备之间无法通讯&#xff0c;这给工业生产带来了很大的麻烦。而远创智控YC-EIP-ECT网关应运而生&#xff0c;它能够连接到ETHERNET/IP总线…

【Linux之拿捏信号3】阻塞信号

文章目录 相关概念原理sigset_t信号集信号集操作函数sigprocmask系统调用sigpending 相关概念 实际执行信号的处理动作——信号递达Delivery&#xff08;例如自定义捕捉动作&#xff0c;core&#xff0c;Term终止进程的动作&#xff09;。信号从产生到递达之间的状态——信号未…

Anaconda配置可视化绘图库seaborn的方法

本文介绍在Anaconda的环境中&#xff0c;安装Python语言中&#xff0c;常用的一个绘图库seaborn模块的方法。 seaborn模块是基于Matplotlib的数据可视化库&#xff0c;它提供了一种更简单、更漂亮的界面来创建各种统计图形。seaborn模块主要用于数据探索、数据分析和数据可视化…