[阅读笔记16][Orca-2]Teaching Small Language Models How to Reason

ops/2024/11/15 0:34:38/

接下来是Orca-2,这篇是微软在23年11月发表的论文,在Orca-1的基础上又进行了一些改进。

作者希望教会Orca-2各种推理策略,例如逐步思考、回忆然后回答、先回忆再推理再回答、直接生成回答等等策略。并且Orca-2应该能针对不同任务应该使用最合适的推理策略。
下图是Orca-2在各种benchmark上的表现,包括语言理解、常识推理、多步推理、数据问题等,可以看到Orca-2超过了所有同等规模的模型,并且接近(有时超过)了比它大5-10倍的模型。这里所有模型都是以LLaMA-2为基座模型训练得到的,排除了不同基座模型带来的性能差异。这里和Orca-1论文中不同,没比较ChatGPT是因为基座模型不同,没法体现出这篇论文训练方法所带来的优越性。

作者在这里探讨了一下不同的系统消息(推理策略)对推理结果带来的巨大影响,即使是GPT-4这样强大的模型也会受不同系统消息影响产生截然不同的推理结果。下面右图展示了这个现象,对GPT-4四次提问,第一次不添加系统消息,得到的答案是错误的。第二次使用类似思维链的系统消息,结果稍微好了一点,但也是错误的。第三次使用“解释你的答案”的系统消息,解释的过程是对的,但是答案是错的。第四次使用左边图中的系统消息,得到了正确的答案和推理过程。

所以针对不同的任务应该使用不同的系统消息(推理策略),这也是作者希望Orca-2做到的,能根据手头的问题选择最有效的解决策略。具体过程分为四步,第一步是先准备好一系列多样的任务。第二步是根据Orca-1的表现,决定每个任务需要哪种推理策略。第三步是根据推理策略写下系统消息,然后输入给教师模型获得回答,这样就得到了训练数据,训练数据的格式是个三元组(system instruction, user prompt, LLM answer)。第四步是prompt擦除,这是比较关键的一步,在训练时将特定任务相关的system instruction替换为与任务无关的通用system instruction,例如下图这样的instruction。这样学生模型只能看到问题和详细的回答,鼓励学生自己学习如何运用推理策略生成谨慎且有逻辑的回答,以及针对特定任务如何选择最优的推理策略。

训练用的数据集分为三部分,包括FLAN-v2的训练集、Orca-1收集的600万条数据、Orca-2新增的81万条数据。
其中Orca-2新增的数据又来自四个部分,第一部分是从FLAN-v2四个子集中1913个任务筛选出1448个高质量任务,从这些高质量任务的训练集中选择了60万个zero-shot问题,然后用这些问题输入LLM合成回答。之后这些数据再经过prompt擦除就可以了。第二部分是包含5万条数据的few-shot数据,将Orca-1数据集转为四元组(task, system instruction, user prompt, answer),然后针对同一个(task, system instruction)随机抽取3-5条(user prompt, answer)组成一条few-shot数据。这里没提到prompt擦除,那应该是没进行特殊处理。第三部分是收集了16万条数学问题。第四部分是完全合成的数据,使用GPT-4创建了2000次医患对话,然后每次对话生成一个摘要。
接下来是训练过程,这里使用LLaMA-2的7B和13B版本作为基座模型,也是类似Orca-1,使用渐进式学习方法来进行训练。先在FLAN-v2数据集上微调1个epoch,然后在500万条ChatGPT数据上微调3个epoch,最后在100万条GPT-4和Orca-2的81万条数据上微调4个epoch。

最后是模型性能展示,左侧为模型推理能力,可以看到13B版本的Orca-2已经无限接近ChatGPT了,并且优于其他13B的网络。右侧是Orca-2在学术考试上的结果,基本达到了13B网络的天花板。


http://www.ppmy.cn/ops/5735.html

相关文章

js生成pdf

js生成pdf html->img->pdf 下载依赖 npm install html2canvas npm install jspdf引入依赖 import html2canvas from "html2canvas" import jsPDF from jspdf;代码 const A4_WIDTH 595.28 const A4_HEIGHT 841.89 //参数 html(dom) imgsrc(封面可不加&am…

从0到1实现RPC | 接入Apollo配置中心

一、代码实现 添加依赖 添加apollo客户端的依赖和spring配置相关依赖 添加监听器 通过实现ApplicationContextAware接口,获取Spring上下文。 使用ApolloConfigChangeListener注解监听命名空间rpc-demo-provider.yaml和默认的application.properties。 监听逻辑…

用户的流失预测分析

项目背景 随着电信行业的持续发展,运营商们开始更加关注如何扩大他们的客户群体。研究表明,获取新客户所需的成本要远高于保留现有客户的成本。因此,在激烈的竞争中,保留现有客户成为了一个巨大的挑战。在电信行业中,…

UE 录屏自动化上传阿里云OSS

前言 最近在做一个功能,然后就发现了一个很有趣的东西,虽然在一定程度上属于偷懒,但是在一些短频快的应用中还是很适用的,下面我就针对于这个测试做一些简单的分享,希望帮助到大家,在实际的开发中获得一些灵…

数据仓库作业五:第8章 关联规则挖掘

目录 第8章 关联规则挖掘作业题 第8章 关联规则挖掘 作业题 1、设4-项集 X { a , b , c , d } X\{a,b,c,d\} X{a,b,c,d},试求出由 X X X 导出的所有关联规则。 解: 首先生成项集的所有非空真子集。这包括: { a } , { b } , { c } , {…

[Java基础揉碎]集合

目录 集合的理解和好处 数组 集合的理解和好处 继承图 ​编辑 简单实例 Collection接口和常用方法 1) add:添加单个元素 2) remove:删除指定元素 3) contains:查找元素是否存在 4) size:获取元素个数 5) isEmpty:判断是否为空 ​编辑 6) clear:清空 7) addAll:添…

【Spring进阶系列丨第十篇】基于注解的面向切面编程(AOP)详解

文章目录 一、基于注解的AOP1、配置Spring环境2、在beans.xml文件中定义AOP约束3、定义记录日志的类【切面】4、定义Bean5、在主配置文件中配置扫描的包6、在主配置文件中去开启AOP的注解支持7、测试8、优化改进9、总结 一、基于注解的AOP 1、配置Spring环境 <dependencie…

Linux使用Docker部署Firefox火狐浏览器并实现无公网IP远程访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器&#xff0c;由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…