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

方法
逻辑依据生成引导
给定一个预训练的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} y:D={(xi,yi)}i=1