[阅读笔记15][Orca]Progressive Learning from Complex Explanation Traces of GPT-4

devtools/2024/11/15 8:25:06/

接下来是微软的Orca这篇论文,23年6月挂到了arxiv上。

目前利用大模型输出来训练小模型的研究都是在模仿,它们倾向于学习大模型的风格而不是它们的推理过程,这导致这些小模型的质量不高。Orca是一个有13B参数的小模型,它可以学习到LLM的推理过程。这篇论文中GPT-4作为教师模型,ChatGPT作为助教,使用渐进式学习来训练小模型。
下图展示了各模型相对于ChatGPT的性能得分,由GPT-4进行打分,这里Orca是领先于和它同等大小的模型,甚至比超大模型ChatGPT还要好。(不过Orca本来就是用了GPT-4的回答进行了训练,GPT-4更认可它的回答也是意料之中的)

目前一些研究工作使用下图中的方式借助GPT-4来生成数据,然后用该数据对小模型进行指令微调。普通的指令微调通常只有简短的输入输出。当这些输入输出用于训练较小的模型时,就像现有的一些工作一样,它们追踪LLM推理过程的能力有限。

为了解决现有工作的不足,本文中提出了解释微调这一新型微调方法。如图中所示,将系统消息一起输入给GPT-4,系统消息可以要求LLM为回答生成解释信息或者逐步进行推理。

作者手动制作了16个不同的系统消息,如下图所示,这里展示了其中的8个系统消息。

对于每一个数据集都有一组适合它的系统消息。这里就不得不提到模型训练用到的数据集了,训练集从FLAN-v2中采样,FLAN-v2又包括了5个子集,每个子集对应多个数据集。一共从FLAN-v2中采样了五百万条问题,下面右图显示了这些问题在各个子集中的占比。根据子集不同又有不同的系统消息,下面左图展示了不同子集中系统消息的频率分布。这五百万条问题输入ChatGPT获取回答,从中再抽一百万条输入GPT-4获取回答。这就构成了这篇论文使用的训练集了。

接下来要谈谈这篇论文使用的渐进式学习方法,所谓渐进式学习其实就是先用ChatGPT那五百万条数据训练,然后再用GPT-4那一百万条数据训练。
这里作者提到了为什么要用ChatGPT,主要有两个原因。第一个原因是模型的能力差距,Orca只有13B,相对GPT-4实在太弱了。有论文证明过,这时候引入一个能力差距比较小的中级教师作为过渡可以提升蒸馏效果。也就是渐进式学习的过程,学生首先从简单的例子中学习,然后再接触更难的例子,这时候从一个更优秀的老师那里得到改进过的推理步骤和逐步的解释。第二个原因就是GPT-4使用代价更高,如下面左图所示,GPT-4的价格更贵、每分钟允许请求数更少、每分钟可用token更少。基于这两个原因才引入了ChatGPT这个助教。下面右图显示了加入ChatGPT那五百万条数据后所带来的性能提升。

最后是模型的结果展示,左边是在某些考试上的得分,可以看到已经很接近ChatGPT了,右边是某些考试的平均得分,可以看到Orca明显优于同等规模的vicuna,同时表现接近了更大规模的模型。


http://www.ppmy.cn/devtools/5911.html

相关文章

vlan 和 trunk实验

VLAN(Virtual Local Area Network),即虚拟局域网,是一种网络技术,它的主要原理是将物理网络划分为多个逻辑子网,每个子网形成一个独立的广播域。这样,VLAN内的主机间通信就像在同一个局域网内一…

gazebo中vins-fusion在仿真小车上的部署

软件要求:Ubuntu 20.04 ros的noetic版本,我是在虚拟机vitrualbox上运行的 这几天在学ROS,跟着赵虚左老师过了一遍之后,感觉还是有很多不懂的地方,xtdrone上仿真跟着文档走了一遍,好像没学到什么东西&#…

Web后端-请求响应

黑马程序员JavaWeb开发教程 文章目录 一、请求1、简单参数2、实体参数3、数组集合参数(1)数组参数(2)集合参数 4、日期参数5、json参数(1)在Postman中怎么发起请求来传递JSON格式的请求参数(2&a…

【网络安全技术】——网络安全设备(学习笔记)

📖 前言:网络防火墙(简称为“防火墙”)是计算机网络安全管理中应用最早和技术发展最快的安全产品之一。随着互联应用的迅猛发展,各种安全问题和安全隐患日渐突出。防火墙及相关安全技术能够最大可能地解决各类安全问题…

2024-Java-Maven学习笔记

Maven Maven是一个Java项目管理和构建工具,作用:定义(规范)项目结构、项目依赖、使用统一的方式自动化构建(clean、compile)。 提供了一套依赖管理机制:利用仓库统一管理jar包,利用…

windows驱动开发-WDM框架(二)

DriverEntry 每个驱动程序必须具有 DriverEntry 例程,用于初始化驱动程序范围的数据结构和资源。 在支持即插即用 (PnP) 的驱动程序中,与所有驱动程序一样,DriverEntry 例程负责驱动程序初始化,而 AddDevice 例程负责设备初始化…

【文献阅读:信道估计】Deep learning-based channel estimation

文献地址:https://ieeexplore.ieee.org/document/8640815 文献Github相关代码: pytorch版本:https://github.com/rohsequ/Deep-Learning-Model-for-Channel-Estimation-PyTorch tensorflow版本:https://github.com/MehranSoltani9…

SpringCloud系列(8)--将服务提供者Provider注册进Eureka Server

前言:上一章节我们介绍了Eureka服务端的安装与配置,本章节则介绍关于微服务如何入职Eureka Server Eureka架构原理图 1、修改provider-payment8001子模块的pom.xml文件,引入Eureka Clinet的依赖,然后reolad一下,下载依…