[NeurlPS 2022] STaR: Self-Taught Reasoner Bootstrapping Reasoning With Reasoning

  • NeurlPS 2022,CCF-A,NLP 顶会
  • 有可能是 GPT o1 背后的技术之一,因此重新引起关注;
  • 开源代码:https://github.com/ezelikman/STaR

本文的想法是一种简洁的美。LLM 论文不一定需要花里胡哨的数学公式。

翻译说明:

  • rationales:本文翻译为“理由”,这里大概含义是答案的思考过程/做题思路。
  • rationalization:文本翻译为“合理化”

【UPD:2024/12/08】增加了对 STaR 开源代码的解读:[NeurlPS 2022] STaR 开源代码实现解读

文章相关知识

  • 离散隐变量:离散隐变量模型是一种统计模型,它假设观测数据是由一些未观测到的(隐含的)变量决定的。在这种情况下,离散意味着这些隐变量的值是可以从有限集合中选取的。例如,在自然语言处理中,一个离散隐变量模型可能用来预测一个词给定上下文的概率,其中隐变量可以是词的潜在语义类别。

  • GPT-J:GPT-J 是一个基于 GPT-3,由 60 亿个参数组成的自然语言处理 AI 模型。该模型在一个 800GB 的开源文本数据集上进行训练,并且能够与类似规模的 GPT-3 模型相媲美。

  • 数据集:

    • CommonsenseQA (CQA)
    • Grade School Math (GSM8K)

几个细节

Q1:微调后,STaR 是否也需要回答之前迭代中正确回答的问题?
A1:需要

Q2:STaR 微调后是否有可能导致之前回答正确的问题,现在回答不正确了?
A2:如Fig.5,里面是震荡上升,说明存在这种情况。

Q3:合理化让模型强行给出解释,如果模型还是回答不对,这个数据是否会被用于微调?
A3:不会

Q4: 合理化是否会引入偏见?
A4: 参考fig4,不合理化虽然慢,但慢工出细活、大器晚成(但训练代价大),合理化后,上限低于前着(但学的更快)

Q5:本文设置的温度,贪婪解码的次数对STaR方法的影响是什么?
A5:


正文

Abstract

生成逐步的“思维链”理由(rationales)能够提高语言模型在复杂推理任务上的表现,比如数学或常识问答。然而,目前诱导语言模型生成理由要么需要构建庞大的理由数据集,要么只能通过少量样本推理牺牲准确性。我们提出了一种技术,通过迭代利用少量理由示例和一个没有理由的大型数据集,来引导模型逐渐掌握更复杂的推理能力。这项技术,名为“自我教学推理器”(STaR),依赖于一个简单的循环:生成理由以回答许多问题,提示一些理由示例;如果生成的答案是错误的,尝试在给定正确答案的情况下再次生成理由;对所有最终得出正确答案的理由进行微调;重复这个过程。我们展示了 STaR 在多个数据集上的性能显著提高,与直接微调以预测最终答案的模型相比,并且在CommensenseQA 上的表现与微调一个 30 倍大的最新语言模型相当。因此,STaR 让模型通过学习自己生成的理由来提升自己。

1 Introduction

人类决策往往是一系列思考的结果[1, 2]。最近的工作表明,明确的中间推理(“理由”)也能提高大型语言模型(LLM)的性能[3-8]。例如,[5]展示了LLMs明确训练使用“草稿本”进行中间步骤可以在算术上达到完美的分布内性能,并且在分布外泛化方面表现强劲,而直接训练预测答案的模型则无法做到这两点。这些工作表明,在给出最终答案之前生成明确的“理由”对LLMs在多种任务上是有价值的,包括数学推理、常识推理、代码评估、社会偏见推断和自然语言推理。然而,诱导理由生成的两种主要方法都有严重的缺点。

一种理由生成的方法是构建一个理由的微调数据集,无论是由人工注释者手动完成,还是通过手工制作的模板自动完成[3-5, 9]。手动方法成本高昂,并且为每个有趣的问题构建这样的数据集是不切实际的[3]。同时,基于模板的方法依赖于自动生成的理由,但这只在一个通用解决方案已经知道[5]或者可以制定合理的硬编码启发式方法时才有效[4]。

另一种选择是利用上下文学习(in-context learning),通过在语言模型提示中只包含少量理由示例来实现。这已被证明可以相对于没有理由的提示(“直接”提示)提高数学和符号推理任务的准确性[5, 6]。然而,尽管带有理由的少量样本技术往往胜过不带的方案,它们通常大大逊色于使用大型数据集微调模型直接预测的答案[5, 6]。

在这篇论文中,我们采取了不同的方法:通过利用大型语言模型(LLM)的现有推理能力,我们迭代地引导模型生成高质量的理由。 具体来说,我们通过少量样本提示一个大型语言模型来自我生成理由,并通过微调那些导致正确答案的理由来进一步提炼模型的能力。我们重复这个过程,每次都使用改进后的模型来生成下一组训练数据。这是一个协同过程,其中理由生成的改进提高了训练数据的质量,而训练数据的改进又进一步改进了理由生成。

然而,我们发现这个循环最终无法解决训练集中的任何新问题,因为它没有直接的训练信号来解决它未能解决的问题。为了克服这个问题,我们提出了合理化:对于模型未能正确回答的每个问题,我们通过提供正确的答案来生成一个新的理由。这允许模型反向推理——已知正确答案,模型可以更容易地生成一个有用的理由。然后,这些理由被收集为训练数据的一部分,这通常可以提高整体准确性。

因此,我们开发了自我教学推理器(STaR,见图1)方法,这是一种可自我扩展的(scalable bootstrapping)方法,允许模型学习生成自己的理由,同时也学习解决越来越困难的问题。在我们的方法中,我们重复以下过程:在每次迭代中,首先尝试使用当前模型的理由生成能力来构建一个微调数据集;然后,使用合理化来增强这个数据集,为模型未能解决的问题的理由提供依据;最后,在合并的数据集上微调大型语言模型。

将 STaR 应用于算术、数学应用题和常识推理,我们观察到它能够有效地将少量的少量样本提示转化为大型理由数据集,从而显著提高性能。在常识问答(CommonsenseQA)[10]上,我们发现STaR 在性能上超过了few-shot baseline(+35.9%)和直接微调以预测答案的 baseline(+12.5%),并且与一个 30 倍大的微调模型表现相当(72.5% vs 73.0%)。

因此,我们做出以下贡献:

  1. 我们提出了一种 bootstrapping 机制,可以从少量初始示例中迭代生成理由数据集,而无需检查新理由的正确性。
  2. 我们将理由生成与合理化相结合,其中模型被赋予解释答案的任务,然后像它在没有任何提示的情况下提出理由一样进行微调。我们展示了合理化加速并改进了 bootstrapping 过程。
  3. 我们在数学和常识推理领域使用多种消融技术评估了这些技术。
  4. 据我们所知,我们提出了第一种技术,允许预训练的大型语言模型迭代地使用其语言建模能力来提升自身

2 Background and Related Work

上下文学习 最近,一系列研究工作探讨了大型语言模型进行上下文学习的能力[11, 12]。本质上,上下文学习将少量样本学习视为一个语言建模问题,通过在上下文(即提示)中展示几个示例,并允许模型学习和识别应用于新示例的模式。一些研究基于贝叶斯推断从语言建模目标出发研究上下文学习[13],而另一些研究则尝试从“induction heads”的角度 mechanistically 地描述这一过程[14]。此外,提示配置的差异已被证明对少量样本性能有显著影响。一些人甚至发现,用可以在嵌入空间中优化的“软提示”替换少量样本提示可以获得显著提升[15]。与强调问题的表现不同,我们关注的是模型的输出;特别是,我们关注的是模型在得出结论之前对问题进行推理的能力

理由 关于理由对语言模型性能影响的初步工作是[3],该研究表明在数据集上训练语言模型,使其在答案前明确展示理由,可以提高模型生成最终答案的能力。然而,这需要成千上万的训练示例由人工注释者手动标注人类推理。最近,[5]展示了逐步的“草稿本”可以提高在算术、多项式求值和程序评估等任务上微调的大型语言模型(LLM)的性能和泛化能力。类似地,[6]使用单个少量样本“思维链”推理提示来提高模型在一系列任务上的性能,而无需微调。最后,[16]表明,如果满足以下条件,课程学习方法可以帮助解决形式数学问题:1)它们被翻译成Lean(一种定理证明语言[17]),2)可以直接评估证明的有效性,3)可以为每个问题采样许多潜在的解决方案,4)训练了一个单独的值函数模型,5)从GPT-f(一个已经微调在大型数学数据集上的模型[18])开始。我们注意到,在许多领域并非所有这些条件都适用。此外,一些工作旨在解释为什么理由有这种有益的效果:一些人从潜在变量模型的角度分析了它们的影响[19],而其他人则提供了中间任务监督益处的正式证明[20]。

迭代学习 提出了多种迭代学习算法,其中找到的解决方案或成功的方法反过来被用来找到更多的解决方案[21, 22, 16]。[21]引入了专家迭代(ExIt),这是一种强化学习技术,也是我们方法的灵感来源。本质上,它由“学徒”的 self-play 循环组成,随后是来自是 slower “专家”的模仿学习以及反馈,然后将专家替换为现在改进的学徒。[16]在ExIt的基础上进行形式推理,而[22]将迭代学习应用于使用可以组合成模块化网络的视觉问答。STaR和专家迭代方法[21]之间有进一步的相似之处。例如,基于最终答案是否与目标匹配来过滤生成的示例可以被视为专家反馈。然而,我们有一个固定的“专家”,并且不训练一个单独的值函数。

自然语言解释 从可解释机器学习的角度讨论自然语言解释,重点在于解释而不是推理[23, 24]。这一工作线的动机主要基于可解释的决策制定,类似于[3],普遍没有发现要求事后解释可以提高模型性能。

3 Method

3.1 Rationale Generation Bootstrapping (STaR Without Rationalization)

我们有一个预训练的大型语言模型M和一个包含问题x和答案y的初始数据集: D = { ( x i , y i ) } i D = 1 D = \{(x_i, y_i)\}^D_i=1 D={(xi,yi)}iD=1。我们的技术从一个小的提示集 P 开始,其中包含带有中间理由的示例: P = { ( x p i , r p i , y p i ) } i D P=\{(x_{p_i},r_{p_i},y_{p_i})\}^D_i P={(xpi,rpi,ypi)}iD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真·skysys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值