论文标题:Self-Consistency Improves Chain of Thought Reasoning in Language Models
论文链接:https://arxiv.org/abs/2203.11171
论文来源:ICLR 2023
一、概述
尽管语言模型在一系列NLP任务中展现出了显著的成功,但它们在推理能力方面仍然面临一些限制,这种限制不能仅仅通过增加模型规模来克服。为了解决这些问题,Wei等人(2022)提出了思维链提示(chain-of-thought prompting),即提示语言模型生成一系列模拟人在解决任务时可能使用的推理过程的短句。例如,给出问题“If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?”时,不直接回答“5”,而是提示语言模型以完整的思维链回答:“There are 3 cars in the parking lot already. 2 more arrive. Now there are 3 + 2 = 5 cars. The answer is 5.”。实验结果显示思维链提示显著提高了模型在各种多步推理任务中的性能。
在本文中,我们引入了一种新的解码策略,称为自洽性(self-consistency),以替代思维链提示中使用的贪婪解码(greedy decoding)策略,这进一步显著提高了语言模型的推理性能。自洽性利用了一个直觉,即对于复杂的推理任务,通常可以通过多个推理路径达到正确的答案。对一个问题需要进行更多的深思熟虑和分析,可以得到答案的推理路径的多样性就越大。
下图用一个例子说明了自洽性方法。我们首先用思维链提示语言模型,然后我们不是贪婪地解码最优推理路径,而是提出了一种“采样和边际化”(sample-and-marginalize)解码程序:我们首先从语言模型的Decoder中采样,生成一套多样的推理路径;每个推理路径可能会导致不同的最终答案,因此我们通过边际化采样的推理路径来确定最优答案,找出在最终答案集合中最一致(consistent)的答案。这种方法类似于人类的经验,即如果多种不同的思考方式都能得出相同的答案,人们对最终答案的正确性就会更有信心。与其他解码方法相比,自洽性避免了贪婪解码中困扰的重复性(repetitiveness)和局部最优性(local-optimality),同时减轻了单一采样生成的随机性。
自洽性思维链比之前那些要么训练额外的verifier,要么在给定额外人类标注以提高生成质量的情况下训练一个re-ranker的方法要简单得多。相反,自洽性完全是无监督的,可以直接与预训练的语言模型一起使用,无需额外的人类标注,也避免了任何额外的训练,辅助模型或微调。自洽性也不同于典型的集成(ensemble)方法,其中训练多个模型并聚合每个模型的输出,它更像是一个作用在单一语言模型之上的“自我集成”。
我们在广泛的算术和常识推理任务上评估了自洽性思维链,这些任务涵盖了四种不同规模的语言模型:UL2-20B、GPT-3-175B、LaMDA-137B和PaLM-540B。在所有四种语言模型上,自洽性在所有任务上都显著提高了思维链提示的效果。在额外的实验中,我们展示了自洽性可以在一些添加思维链可能会降低与标准提示相比的性能的NLP任务上鲁棒地提升性能。我们还展示了自洽性显著优于sample-and-rank,beam search以及基于集成的方法,并且对采样策略和不完美的提示具有鲁棒性。
二、方法
人类的一个显著特点是思考方式各异。很自然地,我们会假设在需要深思熟虑的任务中,可能有几种方法来解决问题。我们提出,这样的过程可以通过从语言模型的Decoder中进行抽样在语言模型中进行模拟。例如,如上图所示,一个模型可以针对数学问题生成几个可能的回答,所有的回答都能得出同样正确的答案(输出1和3)。由于语言模型并不是完美的推理者,模型也可能产生一个不正确的推理路径,或者在推理步骤中出现错误(例如,在输出2中),但是这样的解决方案不太可能得出相同的答案。也就是说,我们假设,即使正确推理过程是多样的(diverse),它们在最终答案上的一致性也往往大于错误的过程。
我们利用这个直觉,提出了以下的自洽性方法。首先,用一组手工编写的思维链示例提示语言模型。接下来,我们从语言模型的Decoder中抽取一组候选输出,生成一组多样的候选推理路径。自洽性与大多数现有的抽样算法兼容,包括温度抽样、top-k抽样,以及核采样。最后,我们通过边际化出采样的推理路径并聚合答案,选择在生成答案中最一致的答案。
更详细地说,假设生成的答案来自一个固定的答案集合,,其中索引的是从Decoder采样的个候选输出。给定一个提示和一个问题,自洽性引入了一个额外的隐变量,这是一个代表第个输出中推理路径的token序列,然后将的生成耦合在一起,其中,即,推理路径是可选的,只用于到达最终答案。例如,考虑上图中的输出3:前几句“She eats 3 for breakfast ... So she has 9 eggs * $2 =$18.”构成了,而最后一句中的答案18,“The answer is $18”,即是。在从模型的Decoder中采样多个后,自洽性对进行边际化(边际化的意思就是说不管推理路径了,只看最终答案),并且在上应用多数投票,即将作为最终答案,或者我们定义为在最终答案集中最“一致”的答案。
在下表中,我们使用不同的答案聚合策略显示了一组推理任务的测试准确率。除了多数投票外,在聚合答案时,还可以通过为每个赋予权重。注意,要计算,我们可以给定(prompt,question)
条件下生成的未归一化概率,也可以通过输出长度来归一化条件概率,也就是:
❝ ❞
其中,是在前一个token的条件下生成中第个token的对数概率,是中的总token数。下表中显示了,“unweighted sum”,即,直接对进行多数投票,得出的准确率与使用“normalized weighted sum”进行聚合的准确率非常相似。我们仔细查看了模型的输出概率,发现这是因为对于每个,归一化的条件概率彼此非常接近,即,语言模型认为这些生成是“同样可能的”。此外,当聚合答案时,下表中的结果显示,“normalized weighted sum”(即上面的等式)比对应的“unnormalized weighted sum”产生的准确率要高得多。为了完整起见,我们还在下表中报告了采取“weighted avg”的结果,即,每个得分为其weighted sum除以,这导致了性能大大降低。
自洽性探索了在开放式文本生成和固定答案的最优文本生成之间的一个有趣的空间。推理任务通常有固定的答案,这就是为什么研究者们通常考虑贪婪解码方法。然而,我们发现,即使期望的答案是固定的,在推理过程中引入多样性也可以带来很大的益处;因此,我们利用常用于开放式文本生成的采样来实现这个目标。需要注意的是,自洽性只能应用于最终答案来自固定答案集的问题,但原则上,如果可以在多个生成之间定义一种一致性的合适的度量,比如,两个答案是否一致或者相互矛盾,那么这种方法就可以扩展到开放式文本生成问题。
三、实验
主要结果
思维链会造成性能下降的实验
与其他先用方法的对比
其他研究