Specializing Smaller Language Models towards Multi-Step Reasoning论文精读

news2024/11/18 9:23:26

0 Abstract

  • 普遍认为,LLM涌现出来的few-shot learning能力是超大参数模型独有的(>100B)【emergent abilities】;
  • 作者认为,小模型(<10B)可以将这些能力从大模型(>100B)蒸馏下来【GPT3.5 -> T5】;
  • 大模型具有强大的建模能力,但是它们需要处理各种各样的任务;小模型虽容量有限,但集中在特定任务上,模型可以达到不错的效果【model specialization】;
  • 文章采用的测试任务是模型的multi-step math reasoning能力,并提供关于【微调数据格式】、【起始模型checkpoint】和【新的模型选择方法】的全面讨论。

1 Introduction

  • 大模型在CoT的加持下,可以很好地解决数学推理等问题,而这种能力只有模型参数到达一定数量时才涌现出来
    在这里插入图片描述

  • 大模型在强大的同时,但哪里获得微调>100B模型的算力?如果小模型也能获得CoT加持是非常理想的,但是有研究指出,在小规模模型上使用CoT甚至会有负面影响

  • 普遍认为让小模型从CoT中获益是非常困难的,但文章假设:将小模型运用于专有任务,也可以达到很好的modeling performance,而非聚焦于模型的通用能力

  • 文章方法:从GPT3.5(175B)上将其CoT reasoning的能力蒸馏到FlanT5(11B)上。(FlanT5是基于T5小模型,经过CoT指令微调得到的,它具有CoT的通用能力,但相较大模型差得多)

  • 文章的发现与贡献:

    • 通过实验证明,当小模型专有化时,也可以得到跟大模型类似的CoT scaling curve;
    • 详细描述了如何将模型的泛化能力转移到专有能力;
    • 现有方法通常在同一数据集的val set选择模型,而本文在多个不同的math reasoning dataset做选择以防止over-fitting,提高模型的OOD能力。

2 Background

  • LLM ability:现有范式是训练base model -> tuning,并且发现了CoT中模型随着scale增大的涌现能力;
  • 专门化模型:对于大模型,不必权衡不同任务的表现。而小模型由于容量有限,需要舍弃通用能力,常见做法是通过特定的data微调,但是这种方法通常没有OOD能力(即出现了over-fitting);
  • 本文关注的重点是【模型专门化过程中的能力权衡,即在目标任务上的泛化能力,确保模型的in-distribution and OOD performance】,而不是蒸馏或者数据增强;
  • 相关工作:FlanT5(小模型CoT通用能力)、Huang et al.(大模型在CoT上的微调)

3 Specializing Multi-Step Reasoning

  • Dataset:在GSM8K数据集上微调,但是在MultiArith, ASDiv, SVAMP上validation,并且在BigBench Hard上测试模型在专有任务的泛化能力;
    [图片]

  • Model:T5和FlanT5作为基础模型,code-davinci-002【OpenAI的一个基础模型,适用于纯代码补全任务,隶属于GPT系列】生成蒸馏/专有数据;
    [图片]

3.1 Distillation from Code-Davinci-002

  • 采用Code-Davinci-002生成训练所需要的微调数据集,主要有以下四种format:
    [图片]

  • 通过这四种数据格式,作者可以探索以下问题:

    • 上下文信息对模型性能的影响是什么?
    • CoT提示是否有助于提高模型性能?
    • 模型是否可以在没有任何提示或上下文的情况下执行任务?
  • 训练时让teacher和student的输出分布用KL散度进行衡量(仅存储分布的top-5节约内存,因为top-5的概率之和已经接近于1)

3.2 Aligning tokenizers by dynamic programming

  • 由于GPT和T5所采用的tokenizer不同,需要解决两者分布的misalignment。
  • 使用动态规划来解决alignment问题【复杂】:
    [图片]

4 Experiments

  • 实验目的:可以提升小模型数学CoT性能的scale curve的程度,以及它的代价是多少?

4.1 Overall Performance Tradeoff

  • 微调:使用GSM8K数据集让code-davinci-002生成40个CoT solutions,选择回答正确的进行微调;
  • 测试:在GSM8K上测试in-distribution能力,在MultiArith, ASDiv, and SVAMP上测试OOD能力,在BigBench Hard上测试模型泛化能力;
  • 结论小结:专有化的FlanT5在四个数据集均有大提升,但是在BBH损失了全部的CoT性能和大部分AO性能【这证明文章的假设:可以损失小模型的泛化能力来提升专有能力的性能,达到比肩大模型的效果】;
    [图片]

4.2 Scaling Behavior of Smaller Models’ CoT Ability

  • 普遍认为,小模型的scale curve是平坦的,如同A图左边的部分;
  • 文章指出,小模型(T5和FlanT5)可以在CoT tuning后呈现log-linear的scale curve,推翻“大模型涌现”这个说法【在tuning之前,小模型只是因为模型能力不足,导致中间步骤推理出错进而导致完全错误的结论,而不是代表小模型完全没有解决问题的能力,只是才scale足够大才涌现】;
  • 经过CoT指令微调的FlanT5在专有化后,性能提升相较于raw T5有更大提升。
    [图片]

4.3 Specialization Process and Generalization Behaviors

  • 蒸馏初期,模型就会失去CoT和大部分AO能力,而后专有能力波动提升;
  • 在专有能力中,in-distribution和OOD能力是波动的,建议根据实际应用选择checkpoint;
    [图片]

[图片]

4.4 Further Design Choices Analysis

  • 蒸馏训练中,使用distribution match策略更优;
    [图片]

  • 训练中,如果使用in-context learning训练,模型在测试时同时具有in-context和zero-shot能力;而如果只使用zero-shot训练,模型将损失几乎所有的in-context能力,这就是为什么文章需要混合不同format的数据。
    [图片]

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

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

相关文章

【HTML/CSS学习】margin和padding的区别

1. margin margin&#xff08;外边距&#xff09;属性定义元素周围的空间。 margin主要在元素的外部创建空白区域&#xff0c;用于分隔元素与其相邻元素之间的距离。 用处&#xff1a;可以用于调整两个元素之间的间隔。 2. padding padding&#xff08;填充&#xff09;定义…

dcrcms 文件上传漏洞

dcrcms 文件上传漏洞 启动环境 启动靶场得到ip和映射端口 测试漏洞 输入http://10.9.47.6:14153/dcr进入后台 账号密码为admin:123456 寻找文件上传漏洞 看到添加新闻里有文件上传我们尝试进行上传 写一个php文件里面放入一句话木马 <?php eval($_REQUEST[666]); ?…

C++前缀和算法的应用:用地毯覆盖后的最少白色砖块 原理源码测试用例

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 给你一个下标从 0 开始的 二进制 字符串 floor &#xff0c;它表示地板上砖块的颜色。 floor[i] ‘0’ 表示地板上第 i 块砖块的颜色是 黑色 。 floor[i] ‘1…

警务可视化 玫瑰图和柱折混合图

什么时候用&#xff0c;什么时候导入echarts 完整代码&#xff1a; 搭建页面结构的代码 html <template><h2>智慧公安数字服务系统</h2><div><div class"container1"> </div> <div class"container2"></di…

【golang】Windows环境下Gin框架安装和配置

Windows环境下Gin框架安装和配置 我终于搞定了Gin框架的安装&#xff0c;花了两三个小时&#xff0c;只能说道阻且长&#xff0c;所以写下这篇记录文章 先需要修改一些变量&#xff0c;这就需要打开终端&#xff0c;为了一次奏效&#xff0c;我们直接设置全局的&#xff1a; …

vue3后台管理系统

项目创建及代码规范化开发 vue脚手架创建项目 安装vue脚手架 npm install-g vue/cli npm update -g vue/cli终端输入vue create 项目名称 即可进入模板选择 //利用vue-cli创建项目 进入模板选择 Vue CLI v5.0.8 ? Please pick a preset:Default ([Vue 3] babel, eslint)De…

LabVIEW开发基于图像处理的车牌检测系统

LabVIEW开发基于图像处理的车牌检测系统 自动车牌识别的一般步骤是图像采集、去除噪声的预处理、车牌定位、字符分割和字符识别。结果主要取决于所采集图像的质量。在不同照明条件下获得的图像具有不同的结果。在要使用的预处理技术中&#xff0c;必须将彩色图像转换为灰度&am…

【每日一题】切割后面积最大的蛋糕

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;排序 其他语言python3 写在最后 Tag 【排序】【数组】【2023-10-27】 题目来源 1465. 切割后面积最大的蛋糕 题目解读 切割后面积最大的蛋糕。 解题思路 方法一&#xff1a;排序 本题较为简单&#xff0c;找出最大…

Figma是什么软件?有哪些优势和劣势?

Figma作为目前最受欢迎的设计软件&#xff0c;在国外受到UI设计师的广泛好评。如果你还对Figma感到困惑&#xff0c;不知道它在做什么&#xff0c;那么今天将为您详细介绍Figma软件&#xff0c;以帮助您快速理解和更好地使用它。 Figma软件基本介绍 简单来说&#xff0c;Figm…

全网最全 Pandas的入门与高级教程全集,都在这里了!(PDF下载)

Pandas是Python中的重要数据分析工具&#xff0c;它提供了强大的数据结构和函数&#xff0c;用于数据清洗、探索、准备和分析。 Pandas 的DataFrame和Series使数据处理更加简单&#xff0c;可通过各种方法和工具处理大型数据集。 这个开源库支持从多种数据源加载数据&#xff0…

在线音乐网站-基于SSM实现+源码和技术实现文档

源码和文档下载地址: https://juzhendongli.store/commodity/details/6 百度云盘中存储有。

【求教】老菜鸟遇到新问题,双bug欢迎有緣人答疑

文章目录 一&#xff0c;序二&#xff0c;需求三&#xff0c;代码实现1. 代码结构2. 完整代码备份 四&#xff0c;bug1 详情1. 运行准备1. &#xff09;将 application.yml 文件active设置为test2.&#xff09;修改jdbc-mysql.properties 数据库参数设为实际值3.&#xff09;注…

CGAL 5.6 - Halfedge Data Structures

1 Introduction 半边数据结构&#xff08;缩写为 HalfedgeDS&#xff0c;模板参数缩写为 HDS&#xff09;是一种以边为中心的数据结构&#xff0c;能够维护顶点、边和面的入射信息&#xff0c;例如平面地图、多面体或其他嵌入任意维度的可定向二维曲面。每条边被分解成两个方向…

012:计算影线长度占比

怎么说呢&#xff0c;我希望得到一个数据&#xff0c;就是某个K线的影线长短。可以这样算&#xff0c;用高点和低点的差值作为分母&#xff0c;开盘价和收盘价的差值的绝对值作为分子&#xff0c;得出的值得越大&#xff0c;说明影线越长&#xff0c;影线越长&#xff0c;说明上…

【递归、搜索与回溯算法】第七节.257. 二叉树的所有路径和46. 全排列

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;递归、搜索与回溯算法 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&am…

666666666666666

标题 摘要引言1. HashMap简介&#xff1a;掌握什么是HashMap&#xff1f;&#x1f9d0;2. HashMap的操作技巧&#xff1a;从基础到高级&#x1f680;2.1 添加键值对&#xff1a;put(K key, V value) &#x1f4e5;2.2 获取值&#xff1a;get(Object key) &#x1f4e4;2.3 检查…

element ui el-table表格纵向横向滚动条去除并隐藏空白占位列

需求 当table内容列过多时&#xff0c;可通过height属性设置table高度以固定table高度、固定表头&#xff0c;使table内容可以滚动 现在需求是右侧滚动条不好看&#xff0c;需要去除滚动条&#xff0c;并隐藏滚动条所占列的位置 // ----------修改elementui表格的默认样式-…

068:mapboxGL绘制多边形,过滤获取选中的点的集合信息

第068个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制多边形,获取选中的点的集合信息。这里使用turf来判断点是否在多边形的范围内。通过filter方式,过滤掉未选中的点。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章…

对自动化测试的一些展望与理解

1. 需求和目标 在我开展自动化测试之前&#xff0c;其实该项目以前的测试人员也已经写了很多的接口测试用例&#xff0c;但是大多数用例处于“半瘫痪”状态&#xff0c;在CI上无人维护&#xff08;听说起初是有人维护的&#xff0c;但是后来用例多了&#xff0c;维护的人每次花…

设计模式之门面模式

前言 什么是门面模式 门面模式是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c;用来访问子系统中的一群接口。它定义了一个高层接口&#xff0c;让子系统更容易使用。这种模式常用于将一个复杂的子系统封装成一个简单的接口&#xff0c;使得客户端可以方…