论文浅尝 | 面向多步推理任务专业化较小语言模型

ee6c7f3b31c1e2d2eddfe6212eb1885e.png

笔记整理:张沈昱,东南大学硕士,研究方向为自然语言处理

链接:https://github.com/FranxYao/FlanT5-CoT-Specialization

动机

本文的动机是探索如何在多步推理任务中通过大型语言模型提升较小的语言模型的性能。作者认为,大型语言模型模型(如GPT-3.5系列模型)虽然具有强大的建模能力,但是它们通常需要大量的计算资源和时间来训练和部署。相比之下,小规模语言模型虽然容量有限,但它们可以更快地训练和部署,并且在某些任务上有更优异的表现。因此,作者希望通过专业化较小的语言模型来解决多步推理任务,以获得更好的性能。作者提出了一种从大型教师模型中提取思维链(Chain-of-Thought, CoT)路径来微调指令微调模型(Instruction-Tuned Model,本文使用Flan-T5),以将其能力集中在目标任务上的方法。通过这种做法,作者证明了小型语言模型可以在多步推理任务中获得不错的性能提升,且这种性能提升随着模型体量的提升稳定增长。

贡献

本文的主要贡献包括:

1)提出了一种专业化较小语言模型的方法,将其能力集中在目标任务上,从而获得更好的性能和更快的训练和部署速度。

2)通过从大型教师模型中提取思维链路径,并用其来微调指令微调模型,在多步推理任务中,小型语言模型可以获得不错的性能提升,并且可以在特定任务上表现出与大型语言模型相当的性能。

3)通过实验证明随着模型规模的增大,小型语言模型可以呈现出稳定的性能提升。

4)通过实验证明使用指令微调的模型(Flan-T5)作为基础模型比使用原始的预训练模型(T5)具有更好的泛化性能。

方法

给定一个训练问题,作者使用code-davinci-002(Codex)来生成40个针对该问题的CoT解决方案,然后选择其中正确解答了问题的回答作为训练语料。解决方案包括答案和解释答案的中间步骤的思维链。除了将问题作为输入并将[CoT, answer]对作为输出的标准微调设置(图1 B4)外,作者还考虑了三种额外的数据格式:1) in-context answer-only(图1 B1),不使用CoT数据,并在问题前添加4个in-context样本,采用这种设置的原因是先前的工作表明用in-context样本进行微调可以提高模型的上下文学习能力;2)in-context chain-of-thought(图1 B2),在输入和输出中都添加了CoT;3)zero-shot and answer-only(图1 B3),直接输入问题并输出答案,使用仅包含答案的数据是因为以前的工作表明它们能提高模型性能。在本文实验中,作者表明,in-context样本能引发模型zero-shot的能力,而zero-shot的数据则会牺牲模型上下文学习的能力。

就训练目标而言,本文采用了基于分布匹配的蒸馏方法,即最小化学生模型与老师模型输出的概率分布之间的KL散度(在本文中为模型自回归解码过程中每步的输出分布)。

18e48036ae63af40be7f02b21ba1d9e6.png

图1 A. 专业模型的总体流程 B. 本文所使用的4种数据格式

实验

本文针对模型的数学推理能力和通用能力进行了实验。对于数学推理能力,作者使用code-davinci-002增强的GSM8K数据集作为训练数据集。GSM8K有7个训练问题,对于每个问题,作者要求大型模型生成40个不同的解决方案,从生成的解决方案中提取正确的解决方案,共计获得了有13万条训练数据。作者在MultiArith、ASDiv和SVAMP(合称M-A-S)数据集上测试了模型的分布外性能。M-A-S和GSM8K的区别在于它们都是小学水平的算术推理问题,但是数据集中涉及的实体是不同的。例如,GSM8K可以考虑对食物进行算术推理(例如,5个苹果+8个香蕉=13个水果),而MultiArith可以考虑动物(例如,2只狗+3只猫=5只动物)。这种类型的分布外泛化通常被称为词法级组合泛化(即两者都是加法,但词法不同)。对于通用能力,作者使用BigBench Hard(BBH)测试套件,这是一个由26个具有挑战性的数据集组成的列表,从多个维度测试模型的推理能力(例如日期理解、因果判断、参考游戏等)。由于其难度和广泛的覆盖面,BBH是测试模型通用能力的理想基准。

对于基线模型,作者考虑了通用的大型模型和蒸馏过的小型模型,具体包括:1) 通用的大型模型,根据模型规模排序为:code-davinci-002,LaMDA 137B和PaLM 60B(两者都是强大的CoT推理的通用模型),UL2(一个具有良好CoT能力的20B模型);2)同期的知识蒸馏模型。实验表明,本文模型表现明显优于其他对比方法,主要是因为本文使用了经过指令微调的Flan-T5作为基础模型,而不是原始预训练模型(T5),实验结果如表1。

表1 总体实验结果

bf7e06144bcf9c6b36f662496cff47c0.png

总结

在这项工作中,作者研究了利用思维链提示学习使较小的语言模型在多步骤推理任务上专业化。实验表明,本文方法能将小模型的能力从通用方向集中到目标数学推理任务。在进行专业化之后,模型性能随着模型规模的增加而平滑增加。同时,本文实验显示了使用指令微调过的模型作为基础模型的重要性,因为它们的泛化性能比原始预训练过的检查点更好。在模型专业化过程中需要做出多种权衡,包括模型泛化性能的损失,分布内和分布外泛化的平衡,以及上下文学习和zero-shot泛化能力的平衡。本文方法是在当下基于大模型的新研究范式中,专业化小模型的重要尝试。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

fbad9655474ac2b2abacf36afb4a4d5c.png

点击阅读原文,进入 OpenKG 网站。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AVS3:跨多通道预测PMC

前面的文章中介绍了TSCPM,它是AVS3中用于intra模式的跨通道预测技术,它利用线性模型根据亮度重建像素预测色度像素, 跨通道预测技术用于去除不同通道间的冗余信息,TSCPM可以去除Y-Cb、Y-Cr通道间的冗余,然而却忽略了…

什么是训练数据?

算法从数据中学习。算法从得到的训练数据中找到关系,形成理解,做出决策,并评估信心。训练数据越好,模型的表现就越好。 实际上,与算法本身一样,训练数据的质量和数量与数据项目的成功有很大关系。 现在&…

LeetCode150道面试经典题-删除有序数组中的重复项(简单)

1.题目 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c…

RocketMQ 主备自动切换模式部署

目录 主备自动切换模式部署 Controller 部署​ Controller 嵌入 NameServer 部署​ Controller 独立部署​ Broker 部署​ 兼容性​ 升级注意事项​ 主备自动切换模式部署 该文档主要介绍如何部署支持自动主从切换的 RocketMQ 集群,其架构如上图所示&#xff…

libmpv使用滤镜处理视频进行播放

一、前言 作为一个功能强大的多媒体框架,libmpv为开发者提供了广泛的功能和灵活的控制权。滤镜是libmpv的一个重要特性,允许开发者对视频进行各种实时处理和增强,从而满足用户对于个性化、创意化和高质量视频体验的需求。 滤镜是一种在视频渲染过程中应用特定效果的技术。…

【计算机网络】TCP协议超详细讲解

文章目录 1. TCP简介2. TCP和UDP的区别3. TCP的报文格式4. 确认应答机制5. 超时重传6. 三次握手7. 为什么两次握手不行?8. 四次挥手9. 滑动窗口10. 流量控制11. 拥塞控制12. 延时应答13. 捎带应答14. 面向字节流15. TCP的连接异常处理 1. TCP简介 TCP协议广泛应用于可靠性要求…

记录一次electron打包提示文件找不到的解决方法

没有配置files选项 files的作用是配置打包到应用程序的构建资源 就是说如果你想使用项目那个目录下的文件 就得通过files配置一下不然就会报错 json文件或者yml文件会报的错 格式是这样的 "files": ["dist-electron", "dist"],electron打包配…

解析隧道代理被封的几个主要原因

Hey,各位爬虫高手,你是不是经常遇到爬虫代理HTTP被封的问题?不要慌,今天我来分享一些信息,帮你解析这个问题!告别封禁,让你的爬虫工作更顺利,赶快跟随我一起了解吧! 在爬…

auto-changelog的简单使用

auto-changelog的简单使用 自动化生成Git提交记录,CHANGELOG.md文件 github:https://github.com/cookpete/auto-changelog 安装 npm install -g auto-changelog配置脚本 package.json文件下 "scripts": {"changelog": "aut…

RabbitMQ - 简单案例

目录 0.引用 1.Hello world 2.轮训分发消息 2.1 抽取工具类 2.2 启动两个工作线程接受消息 2.4 结果展示 3.消息应答 3.1 自动应答 3.2 手动消息应答的方法 3.3 消息自动重新入队 3.4 消息手动应答代码 4.RabbitMQ 持久化 4.1 队列如何实现持久化 4.2 消息实现持久化 5.不…

培训报名小程序报名确认开发

目录 1 创建页面2 创建URL参数3 信息展示4 消息订阅5 页面传参6 程序预览总结 我们上一篇介绍了报名功能的开发,在用户报名成功后需要展示报名的确认信息,如果信息无误提示用户支付,在支付之前需要让用户进行授权,允许小程序给用户…

Spring 知识点

Spring 1.1 Spring 简介 1.1.1 Spring 概念 Spring是一个轻量级Java开发框架,最早有Rod Johnson创建为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。使现有的技术更加容易使…