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

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.mzph.cn/news/125628.shtml

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

相关文章

uniapp中APP端使用echarts用formatter设置y轴保留2位小数点不生效

uniapp使用echarts&#xff0c;在内置浏览器中&#xff0c;设置保留2位小数能正常显示&#xff08;代码如下&#xff09;&#xff0c;但是在APP端这个设置不起作用。 yAxis: {type: value,axisLabel: {formatter: function (val) {return val.toFixed(2); //y轴始终保留小数点…

测试计划驱动开发模式 TPDD:一种比 TDD 更友好的开发模式

相信大部分开发团队都在使用TDD&#xff0c;并且还有很多开发团队都 对外声明 在使用 TDD 开发模式。 之所以说是“对外声明”&#xff0c;是因为很多开发团队虽然号称使用的是 TDD 开发模式&#xff0c;实际开发过程中却无法满足 TDD 的要求。 实际上&#xff0c;测试驱动的…

Pytorch 猫狗识别案例

猫狗识别数据集https://download.csdn.net/download/Victor_Li_/88483483?spm1001.2014.3001.5501 训练集图片路径 测试集图片路径 训练代码如下 import torch import torchvision import matplotlib.pyplot as plt import torchvision.models as models import torch.nn as…

csapp datalab

知识点总结 1. 逻辑运算符关系 and&#xff08;与&#xff09;、or&#xff08;或&#xff09;和xor&#xff08;异或&#xff09;是逻辑运算符&#xff0c;用于对布尔值进行操作。它们可以在不同的逻辑表达式之间进行转换。下面是and、or和xor之间的转换规则&#xff1a; a…

SpringCloud 微服务全栈体系(九)

第九章 Docker 三、Dockerfile 自定义镜像 常见的镜像在 DockerHub 就能找到&#xff0c;但是我们自己写的项目就必须自己构建镜像了。 而要自定义镜像&#xff0c;就必须先了解镜像的结构才行。 1. 镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而…

OpenCV官方教程中文版 —— 分水岭算法图像分割

OpenCV官方教程中文版 —— 分水岭算法图像分割 前言一、原理二、示例三、完整代码 前言 本节我们将要学习 • 使用分水岭算法基于掩模的图像分割 • 函数&#xff1a;cv2.watershed() 一、原理 任何一副灰度图像都可以被看成拓扑平面&#xff0c;灰度值高的区域可以被看成…

深入探索 C++ 多态 ② - 继承关系

前言 上一章 简述了虚函数的调用链路&#xff0c;本章主要探索 C 各种继承关系的类对象的多态特性。 深入探索 C 多态 ① - 虚函数调用链路深入探索 C 多态 ② - 继承关系深入探索 C 多态 ③ - 虚析构 1. 概述 封装&#xff0c;继承&#xff0c;多态是 C 的三大特性&#xf…

驱动day10作业

基于platform驱动模型完成LED驱动的编写 驱动程序 #include <linux/init.h> #include <linux/module.h> #include<linux/platform_device.h> #include<linux/mod_devicetable.h> #include<linux/of.h> #include<linux/of_gpio.h> #inclu…

基于深度学习的安全帽识别检测系统(python OpenCV yolov5)

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、研究的内容与方法二、基于深度学习的安全帽识别算法2.1 深度学习2.2 算法流程2.3 目标检测算法2.3.1 Faster R-CNN2.3.2 SSD2.3.3 YOLO v3 三 实验与结果分析3.1 实验数据集3.1.1 实验数据集的构建3.1.2 数据…

iOS的应用生命周期以及应用界面

在iOS的原生开发中&#xff0c;我们需要特别关注两个东西&#xff1a;AppDelegate和ViewController。我们主要的编码工作就是在AppDelegate和ViewControlle这两个类中进行的。它们的类图如下图所示&#xff1a; AppDelegate是应用程序委托对象&#xff0c;它继承了UIResponder类…

均值、方差、标准差

1 中间值和均值 表现&#xff02;中间值&#xff02;的统计名词&#xff1a; a.均值:   mean&#xff0c;数列的算术平均值&#xff0c;反应了数列的集中趋势,等于有效数值的合除以有效数值的个数&#xff0e;b.中位值:  median&#xff0c;等于排序后中间位置的值&#x…

c++多线程

目录 一、进程与线程 二、多线程的实现 2.1 C中创建多线程的方法 2.2 join() 、 detach() 和 joinable() 2.2.1 join() 2.2.2 detach() 2.2.3 joinable() 2.3 this_thread 三、同步机制&#xff08;同步原语&#xff09; 3.1 同步与互斥 3.2 互斥锁&#xff08;mu…

在安装和配置DVWA渗透测试环境遇到的报错问题

安装环境 前面的安装我参考的这个博主&#xff1a;渗透测试漏洞平台DVWA环境安装搭建及初级SQL注入-CSDN博客 修改bug 1.首先十分感谢提供帮助的博主&#xff0c;搭建DVWA Web渗透测试靶场_dvwa 白屏-CSDN博客&#xff0c;解决了我大多数问题&#xff0c;报错如下&#xff1…

leetCode 137. 只出现一次的数字 II(拓展篇) + 模5加法器 + 真值表(数字电路)

leetCode 137. 只出现一次的数字 II 题解可看我的往期文章 leetCode 137. 只出现一次的数字 II 位运算 模3加法器 真值表&#xff08;数字电路&#xff09; 有限状态机-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/134138112?spm1001.2014.3001.5501…

N-131基于jsp,ssm物流快递管理系统

开发工具&#xff1a;eclipse&#xff0c;jdk1.8 服务器&#xff1a;tomcat7.0 数据库&#xff1a;mysql5.7 技术&#xff1a; springspringMVCmybaitsEasyUI 项目包括用户前台和管理后台两部分&#xff0c;功能介绍如下&#xff1a; 一、用户(前台)功能&#xff1a; 用…

040-第三代软件开发-全新波形抓取算法

第三代软件开发-全新波形抓取算法 文章目录 第三代软件开发-全新波形抓取算法项目介绍全新波形抓取算法代码小解 关键字&#xff1a; Qt、 Qml、 抓波、 截获、 波形 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object …

【Linux】jdk Tomcat MySql的安装及Linux后端接口部署

一&#xff0c;jdk安装 1.1 上传安装包到服务器 打开MobaXterm通过Linux地址连接到Linux并登入Linux&#xff0c;再将主机中的配置文件复制到MobaXterm 使用命令查看&#xff1a;ll 1.2 解压对应的安装包 解压jdk 解压命令&#xff1a;tar -xvf jdk 加键盘中Tab键即可…

「Dr. Bomkus 的试炼」排行榜说明

简要概括 七大区域&#xff0c;一个任务&#xff1a;六场扣人心弦的试炼&#xff0c;有一个休闲大厅作为每场试炼的起点。 试炼 排行榜&#xff1a;掌握每场试炼&#xff0c;攀登排行榜。 以 Ethos Point 来记分&#xff1a;每个试炼中的任务都会获得一个EP。 两种任务类型&am…

idea提交代码一直提示 log into gitee

解决idea提交代码一直提示 log into gitee问题 文章目录 打开setting->Version control->gitee,删除旧账号&#xff0c;重新配置账号&#xff0c;删除重新登录就好 打开setting->Version control->gitee,删除旧账号&#xff0c;重新配置账号&#xff0c;删除重新登…

局域网内远程控制电脑的软件

局域网内远程控制电脑的软件在日常办公中&#xff0c;非常常见了。它可以帮助用户在局域网内远程控制其他电脑&#xff0c;实现文件传输、桌面展示、软键盘输入等功能。 局域网内远程控制电脑的软件有很多种&#xff0c;其中比较实用的有域之盾软件、安企神软件、网管家软件等等…