STaR: Bootstrapping Reasoning With Reasoning

STaR: Bootstrapping Reasoning With Reasoning

基本信息

博客贡献人

燕青

作者

Eric Zelikman, Yuhuai Wu, Jesse Mu, et al. from Stanford University and Google Research

标签

Large Language Model, Chain-of-thought, Fine-tuning

摘要

生成逐步的“思维链”逻辑依据(rationale)可以提高语言模型在数学或常识问答等复杂推理任务上的性能。然而,诱导语言模型进行逻辑依据生成需要构建大量逻辑依据数据集,或者仅使用few-shot推理来牺牲准确性。本文提出了一种技术来迭代地利用少量的逻辑依据示例和没有逻辑依据的大型数据集,以引导连续执行更复杂的推理的能力。这种技术称为“自学推理机”(STaR),依赖于一个简单的循环:生成回答许多问题的逻辑依据,并用一些逻辑依据示例进行提示;如果生成的答案是错误的,请在给出正确答案的情况下再次尝试生成理由;对最终产生正确答案的所有逻辑依据进行微调;重复上述过程。本文表明,与经过微调以直接预测最终答案的模型相比,STaR 显着提高了多个数据集上的性能,并且其性能与在 CommensenseQA 上微调 30 倍大的最先进语言模型相当。因此,STAR 让模型通过学习自己生成的推理来改进自身。

问题定义

人类的决策通常是思想链延伸的结果。最近的工作表明,显式中间推理(“逻辑依据”)也可以提高大语言模型(LLM)的性能。在给出最终答案之前生成明确的逻辑依据(rationale generation,逻辑依据生成)对于LLM在数学推理、常识推理、代码评估、社会偏见推理和自然语言推理等不同任务中很有价值。然而,诱导基本原理生成的两种主要方法都有严重的缺点。

逻辑依据生成的一种方法是构建一个微调的逻辑依据数据集,要么由人工标注人员手动标注,要么通过手工制作的模板自动标注。人工方法成本高昂,且无法为每个不同领域的问题构建这样的数据集。同时,基于模板的方法依赖于自动生成逻辑依据,只有在模版匹配的特定条件下才能发挥作用。

另一种方法是通过在语言模型prompt中只包含少量的逻辑依据示例(few-shot)来利用语境学习。与无逻辑依据的prompt相比,其被证明可以提高数学和符号推理任务的准确性。然而,虽然带有逻辑依据推理的few-shot技术往往优于不进行推理的对应技术,但它们的表现通常远不如使用较大数据集微调后直接预测答案的模型。

本文采用了一种不同的方法:通过利用LLM预先存在的推理能力,迭代地引导LLM生成高质量逻辑依据的能力。具体来说,本文通过小样本提示LLM来自我生成逻辑依据并通过微调那些导致正确答案的理由来进一步完善模型的能力。重复这个过程,每次使用改进的模型生成下一个训练集。这是一个协同的过程,逻辑依据生成的改进改善了训练数据,训练数据的改进又进一步改善了逻辑依据生成。

然而,本文发现这个循环最终没有解决训练集中的任何新问题,因为它没有接收到它未能解决的问题的直接训练信号。为了克服这个问题,本文提出逻辑依据化(rationalization):对于模型不能正确回答的每一个问题,通过提供模型正确的答案来生成新的逻辑依据。这让模型反向推理——给出正确答案,模型就能更容易地生成有用的逻辑依据。然后收集这些逻辑依据作为训练数据的一部分,这往往会提高整体的准确性。

因此,本文开发了自学习推理机(STaR,如图1所示)方法,这是一种可扩展的自学方法,允许模型学习生成自己的逻辑依据,同时也学习解决越来越困难的问题。在本文的方法中,重复以下过程:在每次迭代中,首先通过尝试使用当前模型的基本原理生成能力来求解数据集**(能够正确解决的问题),从而构建一个微调数据集;然后,使用合理化方法扩充该数据集(不能正确解决的问题)**,以证明模型未能解决的问题的真实答案;最后,在组合数据集上微调大语言模型。

1
图1. STaR概述及逻辑依据化原理
问题和答案来自原始数据集,而逻辑依据使用STaR生成。

方法

逻辑依据生成引导

给定一个预训练的LLM M M M 和一个问题 x x x 的初始数据集,其答案为 y : D = { ( x i , y i ) } i = 1 D y:\mathcal{D} = \{ ( x_i , y_i) \}^D_{i=1} yD={(xi,yi)}i=1D 。本文的技术从具有逻辑依据 r r r 的例子的一个few-shot提示集合 P P P 开始: P = ( x i p , r i p , y i p ) i = 1 P \mathcal{P} = { ( x^p_i , r^p_i , y^p_i) }^P_{i = 1} P=(xip,rip,yip)i=1P,其中 P ≪ D P \ll D PD ( $ e.g. P = 10$ )。类似于标准的few-shot提示,本文把这个提示集合串接到 D D D 中的每一个例子,即 x i = ( x 1 p , r 1 p , y 1 p , . . . , x P p , r P p , y P p , x i ) xi = ( x^p_1 , r^p_ 1 , y^p_1 , ... , x^p_P , r^p_P , y^p_P , x_i) xi=(x1p,r1p,y1p,...,xPp,rPp,yPp,xi),这鼓励模型产生 x i x_i xi 的理由 r ^ ( i ) \hat r ( i ) r^(i) 和答案 y ^ ( i ) \hat y ( i ) y^(i)。假设导致正确答案的理由比导致错误答案的逻辑依据具有更好的质量。因此,本文过滤了生成的逻辑依据,使其只包含导致正确答案 ( y ^ i = y i ) ( \hat y_i = y_i ) (y^i=yi) 的逻辑依据。本文在这个筛选后的数据集上对基础模型 M M M 进行微调,然后通过新微调后的模型生成新的逻辑依据来迭代这个过程。不断重复这个过程直到达到性能瓶颈。在这个过程中,一旦收集到一个新的数据集,就对初始的预训练模型 M M M 进行训练,而不是继续训练一个模型,以避免过拟合。该过程如算法1所示。

1
算法1. STaR
蓝色代表应用逻辑依据化(rationalization)的部分

算法1描述了完整的算法,用蓝色表示的部分对应逻辑依据化。如果没有这些部分,算法1对应的是没有逻辑依据化的STaR。对逻辑依据化产生的数据集进行微调,对于将模型暴露在其微调数据集中本来不会出现的困难问题上有着至关重要的好处。这可以理解为挑战模型对其失败的问题进行"跳出盒子外的思考"。逻辑依据化的第二个好处是数据集规模的增加。

逻辑依据化(rationalization)

逻辑依据生成引导算法具有一定的局限性。由于模型只在其正确回答的实例上进行训练,当模型在训练集中不能解决新问题时,改进就结束了。这在根本上是由于算法无法从失败的样本中获得任何训练信号。本文提出了一种被称之为"逻辑依据化(rationalization)"的技术。具体来说,提供答案作为对模型的提示,并要求模型按照与前一个理据生成步骤相同的风格生成理据。

在给定答案的情况下,模型能够反向推理,从而更容易产生导致正确答案的理由。例如,在图2中,在提示语中提供了"(b) 购物车是正确答案"的提示,以生成理由。对于逻辑依据生成模型未能解决的问题,采用逻辑依据化处理。当在数据集中添加一个逻辑依据化产生的逻辑依据时,并不会在其相应的prompt中包含暗示,就像模型在没有暗示的情况下提出了理由一样。过滤后,在先前生成的数据集上结合合理化生成的数据集进行微调。

实验

实现细节

本文选择了6B参数模型 GPT-J 作为基础语言模型,因为检查点和微调代码是公开可用的,并且该模型足够大,可以产生高质量的逻辑依据。

数据集
  • Arithmetic

    算术任务,目的是计算两个n位整数之和。该数据集用于评估模型的符号推理能力。

  • CommonsenseQA

    多选项常识推理任务常识QA (CQA) 是由概念网( ConceptNet )构建的,概念及其关系的语义图有超过百万个节点。该数据集有12,247个问题,每个问题有5个选择。

  • Grade School Math (GSM8K)

    本文还在年级数学( Grade School Math, GSM8K )数据集上进行了评估,该数据集包含7,473个训练和1,319个测试的年级-学校-等级的单词问题示例。这些数学问题都是用自然语言提出的,需要经过2到8个计算步骤才能得出最终答案。该数据集结合了算术和常识推理所需的技能。

实验结果
符号推理 (Arithmetic)

图2给出了每次循环迭代时模型在1~5位上的精度。运行STaR进行16次迭代后,总体准确率为89.5 %。作为参考,在10,000个没有逻辑依据的样本上训练5,000步的基线达到76.3 %的准确性。值得注意的是,算术问题的few-shot准确率很低,即使有逻辑依据:2位数加法的准确率也低于1%,更多位数的准确率接近零。

伴随逻辑依据化,准确性能够快速提高。在对模型生成的新数据集进行一次微调迭代后,2位加法的准确率从不足1 %提高到32 %。在没有逻辑依据化的情况下,性能提升是分阶段的:直到模型在(n-1)位加法上取得良好性能时,在n位加法上的性能才能显著提升。在逻辑依据化的情况下,模型可以同时学习多个位数。

2
图2. Arithmetic实验结果
对STaR算法每次迭代的n位求和精度进行了可视化,并对算法进行了逻辑依据化和非逻辑依据化处理。每一条曲线对应两个n位数字求和的精度。

自然语言推理(CQA)

CommonsesenseQA ( CQA )数据集引入了几个新的挑战。在算术任务中,推理步骤中的不正确暂存器(scratchpad),以及程度较低的逻辑依据化步骤,极有可能导致不正确的答案。另一方面,CQA问题是5道选择题,因此无论推理的质量如何,在大约20%的问题上,会随机得到正确的答案。此外,一些简单的启发式算法(例如语义相似性)可以在没有任何推理的情况下有意义地将其提高到≈30 %。

如表1所示,在整个数据集上,无逻辑依据化的STaR尽管在更少的数据上进行训练,但在最终答案上的表现优于直接微调的GPT-J。逻辑依据化的加入使这一性能提高到72.5 %,更接近GPT-3的73 %(其参数是GPT-J的30倍大)。正如预期的那样,可以看到STaR超过了few-shot基线,包括更大的137B LaMDA模型。本文预期如果将STaR应用到少样本表现更好的模型中,准确率会进一步提高。

3
表1. CQA实验结果

数学推理(GSM8K)

本文在GSM8K上再次发现,STaR在有逻辑依据的情况下显著超过了few-shot和训练直接预测答案(无逻辑依据)的表现,如表2所示。需要注意的是,在训练时,需要对第30次迭代的训练步数(经过7912步)进行限制,以防止训练过程变得过长。STaR的最终结果是在没有逻辑依据化的情况下迭代36次,及在逻辑依据化的情况下再迭代10次的结果。

3
表2. GSM8K实验结果

相关知识链接

论文原文

STaR: Self-Taught Reasoner Bootstrapping reasoning with reasoning

总结

  • 本文提出了一种从具有逻辑依据的少量初始例子(few-shot)中迭代生成逻辑依据数据集,而不需要检查生成逻辑依据的正确性的引导机制。
  • 本文用逻辑依据化来补充逻辑依据生成,对于模型不能解决的问题,用正确答案进行暗示,然后用回答正确的问题对应的逻辑依据扩充数据集,进行后续迭代训练。该方法加速并优化了模型自学过程。
  • 本文首次提出了允许预训练LLM迭代地使用其语言建模能力来改进自身的技术。

[局限]

  • 针对不同领域的下游任务或数据集,需要进行单独的微调(后续Quiet-STaR改进)

[启发]

  • 本文用到了类似强化学习的技术,将模型是否正确回答问题类比奖励函数,对模型进行后续的改进
  • 有效利用了模型自身的语言建模能力来改进其自身

BibTex

@article{zelikman2022star,title={Star: Bootstrapping reasoning with reasoning},author={Zelikman, Eric and Wu, Yuhuai and Mu, Jesse and Goodman, Noah},journal={Advances in Neural Information Processing Systems},volume={35},pages={15476--15488},year={2022}
}

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

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

相关文章

揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出?

目录 揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出? 一、算法秘境:深度挖掘,教学相长 二、跨界融合:场景为王,合作共赢 企业和高校之间在:场景,算法,数据,算力的优势,高校优势不明显,仅仅在算法方面存在一些优势但并不明显。高校怎样做 揭秘!高校如何逆袭…

2024最新盘点:国内外主流的10款流程管理系统!

本文将盘点十款流程管理系统,为企业选型提供参考! 想象一下,在一个企业中,各个部门的工作流程混乱,审批环节繁琐,信息传递不及时。这时,流程管理系统就如同一位高效的指挥官,将企业的…

软件测试干了5年,都白忙活了。。。

本科非计算机专业,在深圳做了5年软件测试工作,从一开始一脸懵的点点点,到现在会自动化测试了,浅谈一下从事软件测试的一点点心得体会,仅供参考交流。如果你本科且非计算机专业的话可以试下(但就目前环境建议…

使用Fiddler Classic抓包工具批量下载音频资料

1. 通过F12开发者工具,下载音频文件 浏览器打开音频列表->F12快捷键->网络->媒体,播放一个音频文件,右边媒体下生成一个音频文件,右击“在新标签页中打开”,可以下载这个音频文件。 2.通过Fiddler Classic抓…

简单题100. 相同的树 (python)20240922

问题描述: python: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right rightclass Solution(object)…

浅谈EXT2文件系统----inode table

Inode table概述 在 EXT2 文件系统中,inode 表(Inode Table)是一个非常重要的结构,用于存储文件和目录的元数据。每个文件和目录都由一个 inode(索引节点)来表示,inode 中包含了关于该文件或目…

中兴交换机三层配置

中兴交换机三层配置 目的:将1-10端口划分到3001vlan,11-20端口划分到3002vlan中去 客户端客户端IPvlan网关主机A88.88.1.1203001192.168.1.254主机B192.168.100.1303002192.168.100.254 1、通过Console线登录设备 **********************************…

CCPQT:2024年10月珠海学术会议

第三届计算、通信、感知与量子技术国际会议(CCPQT 2024) The 3rd International Conference on Computing, Communication, Perception and Quantum Technology 会议地点:中国珠海 会议时间:2024年10月25日-27日 主办单位&…

D盘格式化了,数据怎么恢复?

在日常使用电脑的过程中,我们有时可能会遇到一些意外情况,比如不小心格式化了D盘,导致重要数据丢失。面对这种情况,很多人可能会感到手足无措,不知道该如何恢复丢失的数据。其实,只要掌握正确的方法&#x…

精益生产管理咨询公司哪家好?这份攻略请拿好

面对市场上琳琅满目的精益生产管理咨询公司,企业往往难以抉择:精益生产管理咨询公司哪家好?本文,天行健咨询将从专业性、实战经验、定制化服务、持续支持等多个维度,深入探讨如何评估并选择一家优秀的精益生产管理咨询…

24 C 语言常用的字符串处理函数详解:strlen、strcat、strcpy、strcmp、strchr、strrchr、strstr、strtok

目录 1 strlen 1.1 函数原型 1.2 功能说明 1.3 案例演示 1.4 注意事项 2 strcat 2.1 函数原型 2.2 功能说明 2.3 案例演示 2.4 注意事项 3 strcpy 3.1 函数原型 3.2 功能说明 3.3 案例演示 3.4 注意事项 4 strcmp 4.1 函数原型 4.2 功能说明 4.3 案例演示 …

2021 电子设计大赛-周期信号波形识别及参数测量装置( j 题)-SZPT领跑团队-凌云

目录 一、团队介绍 二、队伍介绍 三、题目要求 四、设计摘要 五、题目分析 1.基本要求 2.发挥部分 六、总体设计框图 七、硬件电路组成 (1)挡位检测 (2)挡位选择 (3)电压抬升电路 (…

商标管理软件如何实现高效商标申请与管理?

在数字化时代,商标管理正逐步向智能化、自动化转型。企业对于商标管理软件的需求不再仅仅局限于内部流程的优化,更希望这些软件能够与外部系统无缝对接,实现一键递交官方的高效体验。启服云商标管理软件凭借其强大的技术实力和丰富的行业经验…

Python之一些列表的练习题

1.比较和对比字符串、列表和元组。例如,它们可以容纳哪类内容以及在数据结构上可以做哪些操作。 1. 内容类型:- 字符串: 只能包含字符(文本)。- 列表: 可以包含任意类型的数据,如数字、字符串、其他列表等。- 元组: 可以包含任意类型的数据,与列表类似。3. 操作:(1…

RK3568教学实验箱_操作教程:5-15 直流电机控制实验

一、产品简介 TL3568-PlusTEB人工智能实验箱 国产高性能处理器 64 位 4 核低功耗 2.0 GHz超高主频 1T 超高算力 NPU 兼容鸿蒙等国产操作系统 二、实验目的 1、熟悉Qt程序的开发流程; 2、掌握Qt Creator的基础开发使用; 3、通过编写Qt程序实现直流…

操作无法完成,因为文件已在 SWVisualize2022.BoostService 中打开

在使用 Windows 卸载文件的时候,会出现下面的情况 类似于Linux的强制删除,我们需要首先停止服务,解决方案如下, 进入 cmd 命令行窗口,首先停止服务 net stop "SWVisualize2022.BoostService" 如果需要&am…

ANSYS Workbench三维随机多面体骨料混凝土细观

在三维混凝土细观的有限元模拟中,混凝土细观几何模型的建立是仿真前提,也是其难点。在ANSYS内高效的建立三维几何模型以匹配混凝土中多面体骨料的外形、分布、级配等参数,是三维混凝土细观有限元仿真模拟的关键。 随机多面体骨料3D模型的建…

香港科技大学广州|金融科技学域博士招生宣讲会——武汉大学、华中科技大学

🔔🔔🔔明日宣讲🔔🔔🔔 💐香港科技大学广州|金融科技学域博士招生宣讲会 📍武汉大学专场 🕙时间:2024年9月24日(星期二)1…

fmql之字符驱动设备(1)

上一篇文章,记录了模块入口和出口函数的编写。 这一篇要继续编写字符驱动程序了。 仍然参考正点原子: 第3.3讲 我的第一个Linux驱动-字符设备驱动框架搭建实验_哔哩哔哩_bilibili 驱动注册和卸载 字符驱动设备的注册函数位register_chrdev 卸载函数…

让PlatformIO支持ESP32C3 SuperMini

先介绍一下这块小尺寸板子: ESP32C3SuperMini是一款基于 Espressif ESP32-C3 WiFi/蓝牙双模芯片的 IoT 迷你开发板。ESP32-C3 是一款32 位 RISC-V CPU,包含FPU(浮点单元),可进行32 位单精度运算,具有强大的…