Large Language Models Are Reasoning Teachers

news2024/12/23 18:39:39

Paper name

Large Language Models Are Reasoning Teachers

Paper Reading Note

URL: https://arxiv.org/pdf/2212.10071.pdf
twitter 宣传: https://twitter.com/itsnamgyu/status/1605516353439354880

TL;DR

  • 提出了 Fine-tune-CoT 方法,旨在利用非常大的语言模型 (LMs) 的CoT推理能力来教导小模型如何解决复杂任务,蒸馏出来的小模型在某些数据集上精度甚至能超过 teacher 大模型

Introduction

背景

  • 最近的研究表明,通过包含思维链 (CoT) 推理或促使模型一步一步地思考的几个示例,可以在大语言模型 (LLM) 中激发复杂推理能力。
  • 基于提示的CoT推理方法的一个主要缺点是它们依赖于跨越数千亿参数的超大模型,由于巨大的计算需求和推理成本,这些模型无法大规模部署
  • 虽然有人试图通过显式推理步骤来微调小模型来解决这个问题,但它们需要复杂的推理注释,通常还需要特定于任务的训练设置
  • 本文希望在小模型中实现复杂的推理,以便在实际应用中使用,提出了一种名为 Fine-tune-CoT 的方法,旨在利用非常大的语言模型 (LMs) 的CoT推理能力来教导小模型如何解决复杂任务

本文方案

  • 应用现有的 zero-shot CoT 提示从非常大的教师模型中生成理据,并使用它们来微调较小的学生模型
    • 该方法可以很容易地应用于新的下游任务,因为基于 LM 的教师具有显著的 zero-shot 推理能力,没有手工推理注释或任务特定工程
    • 保留了基于提示的CoT的多功能性,而不需要过大的模型
      在这里插入图片描述
  • Fine-tune-CoT 的蒸馏步骤
    1. 一个非常大的教师模型被提示通过生成多步推理解释(绿色)来解决复杂的问题(黄色)
    2. 根据最终预测的正确性(红色)对生成的补全进行筛选。问题、基本原理和答案用于组成由提示和多步骤完成组成的推理示例
    3. 精心策划的推理样本用于微调一个小的、轻量级的学生模型
      同时基于 LM 的教师模型支持了多样化的推理——为每个原始样本生成多个不同的基本原理,以丰富微调数据。这提高了学生模型的性能,并且不需要人工注释

Dataset/Algorithm/Model/Experiment Detail

实现方式

Step 1. Reasoning generation

  • 首先利用一个大型教师模型为给定的任务生成CoT推理解释
  • 考虑一个标准样本Si,由一个问题qi和它的真实答案ai组成。使用 Zero-shot-CoT 模型,提示教师模型生成一个推理解释 r ^ i \hat{r}_i r^i 来解决 qi,生成的最终答案为 a ^ i \hat{a}_i a^i
    • 生成的文本序列,包括提示符和生成,采用以下形式: “Q: . A: Let’s think step by step. <ˆri> Therefore, the answer is <ˆai>”

Step 2. Curation

  • 为了准备微调样本,过滤生成的样本并将它们重新格式化为提示补全对
    • 对于过滤,简单地将教师模型的最终预测 a ^ i \hat{a}_i a^i 与 ground-truth 答案 ai 进行比较,挑选预测与 gt 一致的样本
    • 将(Si, r ^ i \hat{r}_i r^i , a ^ i \hat{a}_i a^i ) 重新打包成一个推理样本S’i = (pi, ci),一个提示补全对

Step 3. Fine-tuneFine-tune

  • 使用广泛可访问的 OpenAI API 在组装的推理样本上对一个小型预训练的学生模型进行微调。使用与预训练期间相同的训练目标,即 autoregressive language modeling objective 或 next-token prediction

Diverse reasoning

  • 为了使微调- cot的样本效率最大化,为每个训练样本生成多个推理解释,从而增加微调数据
    • 具体而言,对于给定的样本 Si,采用随机采样策略,即大 T 的温度采样,而不是采用贪婪解码的 Zero-shot-CoT 来获得单个解释-答案对 (ei, ai),以获得 D 个不同的样本对

实验结果

实验配置

  • 模型列表,学生模型比非常大的教师模型小25 - 500倍
    在这里插入图片描述
  • 用于对比的 baseline 模型
    在这里插入图片描述
    Zero-shot-CoT: task-agnostic prompting baseline
    finetuning:使用原始训练样本进行 finetune
    Fine-tune-CoT:本文方法

实验结果

  • 12 个数据集上的对比结果,“Random” 指的是在多项选择题的任务中,根据选项的数量随机猜测的表现,即只能以正确格式输出随机答案的模型的性能。
    在这里插入图片描述
    Fine-tune-CoT 性能超过 Zero-shot-CoT
    一些小模型效果超过了大模型:Shuffled Objects and Coin Flip
    Fine-tune vs Fine-tune-CoT: Date Understanding and Shuffle Objects 数据上 Fine-tune-CoT 比 Fine-tune 精度明显高(Fine-tune 精度与 Random 差不多),某些数据集上 Fine-tune 精度也会比 Fine-tune-CoT 高,不过 Fine-tune-CoT 性能随着模型大小显示出更可靠的缩放曲线,并在需要多个步骤的任务中显示出明显的优势

Thoughts

  • 利用大模型提取一些更利于小模型学习的训练样例,并将训练样例转换为更利于 student 模型学习的形式,看起来挺合理

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java --- JVM对象内存布局与访问定位

目录 一、对象内存布局 1.1、对象头(Header) 1.1.1、运行时元数据(Mark Word) 1.1.2、 类型指针 1.2、实例数据(Instance Date) 1.3、对齐填充(Padding) 二、对象访问定位 一、对象内存布局 1.1、对象头(Header) 1.1.1、运行时元数据(Mark Word) 1、哈希值(HashCode) 2、G…

【高级人工智能】国科大《高级人工智能》符号主义笔记

国科大《高级人工智能》罗老师部分——符号主义笔记 罗老师上课很有意思&#xff0c;但是这部分内容还是挺难理解的&#xff0c;需要仔细思考今年考试题目这部分跟往年不一样&#xff0c;老师讲的重点&#xff08;A搜索归结原理&#xff09;也没考&#x1f605; 文章目录几个概…

FFmpeg

介绍 FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0c;为了保证高可移植性和编解码质量&…

Windows 下安装共享文件夹(一步一步带你创建,亲测有效果)

目录1 需求2 实现1 需求 我们想要在自己的Windows电脑上面安装一个共享文件夹&#xff0c;想让其他电脑连我们的共享文件夹&#xff0c;或者我们需要使用代码&#xff0c;连接这个共享文件夹&#xff0c;所以我们必须先在Windows电脑创建一个共享文件夹 2 实现 首先我们创建…

centos7.9安装harbor-offline-installer-v2.4.1.tgz

1.首先下载安装包 可以去github上搜索下载&#xff1a; GitHub: Let’s build from here GitHub 然后选择版本进行下载&#xff0c;一般从githut上下载速度很慢,我已提前下载好&#xff0c;从csdn上下载会比较快&#xff1a; harbor-offline-installer-v2.4.1.tgz: https:…

聊聊跳表?

什么是跳表 跳表&#xff08;Skip List&#xff09;是一种类似于链表的数据结构&#xff0c;其查询、插入、删除的时间复杂度都是O(logn)。 在传统的单链表结构中&#xff0c;查找某个元素需要从链表的头部按顺序遍历&#xff0c;直到找到目标元素为止&#xff0c;查找的时间复…

PowerShell木马免杀利器: Invoke-Obfuscation(过火绒)

Invoke-Obfuscation 简介 Invoke-Obfuscation工具下载地址: https://github.com/danielbohannon/Invoke-Obfuscation Invoke-Obfuscation是一款PowerShell混淆工具&#xff0c;可以将PowerShell脚本加密&#xff0c;使得它的检测和分析变得更加困难。该工具包含多种加密方法&…

HTML实现右下角闪烁弹窗

演示 完整HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&…

【系列01】java运算符及运算符优先级[附带目录 按需服用]

运算符、三元运算符、位运算符、拓展赋值、运算优先级、自增自减 运算符 java代码优先级多用括号**,多用括号()**不仅方便而且增加可读性 自增自减 a 是先赋值再增加a 是先增加再赋值上面都表示 a a1;自减同理由 public class Demo05 {public static void main(String[] ar…

CSS3 之属性

文章目录calcborderbox-shadowbackground-image垂直渐变水平渐变左上角渐变渐变方向写法组合background-clipbackground-attachmentword-wrap:break-word&#xff1a;允许长单词换行到下一行;word-wrap:word-break&#xff1a;text-shadow3、字体white-space 设置如何处理元素内…

Java设计模式中建造者模式是啥/建造者模式实现细节是什么/工厂模式,抽象工厂与建造者模式之间区别是啥

继续整理记录这段时间来的收获&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 4.6 建造者模式 4.6.1 概述 分离部件构造(由Builder来创建)和装配(Director组装)实现构建与装配解耦用户只需指定复杂对象类型就可得到最终对象&#xff0c;不需…

医药行业应用APS生产排产软件的必要性

高级计划与排程APS生产排产软件(advanced planning and scheduling) 是一个立足于整个企业生产活动的计算机系统。利用APS生产排产软件的管理手段和信息&#xff0c;企业可优化其从制定生产产量到管理最终产品的整个生产流程中的各个环节。利用实时、准确的数据&#xff0c;APS…

umi4 多环境配置改变

umi3 多环境我们可以根据脚本配置环境变量&#xff0c;然后配置不同的umirc 或者config 文件&#xff0c;从而达到配置多环境的效果。 问题描述 umi4 发布了&#xff0c;还是按照umi3 的配置了多环境&#xff0c; package.json 配置 了不同环境运行和编译脚本&#xff1a; co…

Netty进阶——粘包与半包(固定长度方式解决粘包问题)

目录一、固定长度方式解决粘包问题&#xff08;代码示例&#xff09;1.1、固定长度方式解决粘包问题的服务端代码示例1.2、固定长度方式解决粘包问题的客户端代码示例1.3、分别启动服务端&#xff0c;客户端&#xff0c;查看服务端结果输出一、固定长度方式解决粘包问题&#x…

一零四六、Spark性能调优

本文分为四个部分&#xff0c;基本涵盖了所有Spark优化的点&#xff0c;面试和实际工作中必备。 《Spark性能优化&#xff1a;开发调优篇》《Spark性能优化&#xff1a;资源调优篇》《Spark性能优化&#xff1a;数据倾斜调优篇》《Spark性能优化&#xff1a;shuffle调优篇》Spa…

如何在C++ 中调用 Python

在一些场景下&#xff0c;C 通过调用脚本语言实现一些功能会比用C实现更加的方便。 这里要介绍的是pybind11&#xff0c;pybind11 借鉴了“前辈”Boost.Python&#xff0c;能够在 C 和 Python 之间自由转换&#xff0c;任意翻译两者的语言要素&#xff0c;比如把 C 的 vector …

0-1背包 完全背包 (模板)

目录 【模板】01背包_牛客题霸_牛客网 描述 输入描述&#xff1a; 输出描述&#xff1a; 【模板】完全背包_牛客题霸_牛客网 描述 输入描述&#xff1a; 输出描述&#xff1a; 【模板】01背包_牛客题霸_牛客网 描述 你有一个背包&#xff0c;最多能容纳的体积…

使用语义分割架构的文档扫描仪 DeepLabV3

0 介绍 地址:https://learnopencv.com/deep-learning-based-document-segmentation-using-semantic-segmentation-deeplabv3-on-custom-dataset/ 文档扫描是一个背景分割问题,可以使用多种方法解决。 它是计算机视觉广泛使用的应用程序之一。 在本文中,我们将文档扫描视为语…

从动态的角度分析DDR的时序结构

从整体上了解了DDR的特性和静态图&#xff0c;包括原理、管脚图等。那么本章就要从动态的角度来分析时序结构&#xff0c;包括read/write的整个过程到数据返回发生了什么。一&#xff0c;DRAM基本组成对于DRAM&#xff0c;其主要由行和列组成&#xff0c;每一个bit中都是由类似…

84、【栈与队列】leetcode ——1047. 删除字符串中的所有相邻重复项:栈+双指针解法(C++版本)

题目描述 原题链接&#xff1a;1047. 删除字符串中的所有相邻重复项 解题思路 一、栈顶匹配重复元素 本题需要删除重复且相邻元素&#xff0c;存入不重复元素。根据相邻特点&#xff0c;可采用栈进行实现。 当栈顶元素和遍历的字符串中的字符相同时&#xff0c;则将其弹栈。…