自我一致性提升大模型中的思维链推理能力 原创
摘要:结合预训练大型语言模型的链式思考提示在复杂推理任务上已取得令人鼓舞的成果。本文提出了一种新的解码策略——自我一致性,以替代链式思考提示中使用的朴素贪婪解码。该策略首先采样一套多样化的推理路径,而非单一的贪心路径,并通过边缘化采样的推理路径来选择最一致的答案。自我一致性利用了这样一种直觉:一个复杂的推理问题通常允许通过多种不同的思考方式达到其唯一正确的答案。广泛的实证评估表明,自我一致性显著提升了链式思考提示在一系列流行算术和常识推理基准上的性能,包括GSM8K(+17.9%)、SVAMP(+11.0%)、AQuA(+12.2%)、StrategyQA(+6.4%)以及ARC挑战赛(+3.9%)。
1、引言
尽管语言模型在众多自然语言处理任务中展现出卓越的成功,但它们展现推理能力的能力常被视为局限,这一局限性不能仅通过增加模型规模来克服(Rae等人,2021;BIG-bench合作项目,2021等)。为了应对这一不足,Wei等人(2022)提出了链式思考提示方法,即促使语言模型生成一系列简短句子,模拟个人在解决问题时可能采用的推理过程。例如,面对问题“停车场有3辆车,又有2辆车到达,现在停车场有多少辆车?”时,语言模型不是直接回答“5”,而是被提示输出整个思考链:“停车场已有3辆车。又有2辆到达。现在是3+2=5辆车。答案是5。”。人们观察到,链式思考提示显著提高了模型在多种多步推理任务上的表现(Wei等人,2022)。
在本文中,我们引入一种新颖的解码策略——自我一致性,用以替代链式思考提示(Wei等人,2022)中使用的贪婪解码策略,进一步显著提升语言模型的推理性能。自我一致性利用了这样一个直觉:复杂的推理任务通常允许多条推理路径达到正确答案(Stanovich & West, 2000)。一个问题越是需要深思熟虑和分析(Evans, 2010),能恢复答案的推理路径多样性就越大。图1通过示例说明了自我一致性方法。我们首先使用链式思考提示激发语言模型,然后不是贪心地解码最优推理路径,而是提出一个“采样-边缘化”解码过程:我们首先从语言模型的解码器中采样生成多样化的推理路径集合;每条路径可能导致不同的最终答案,因此我们通过对采样的推理路径进行边缘化,从最终答案集中找出最一致的答案。这种方法类似于人类的经验,如果多种不同的思考方式都能得出相同的答案,人们对最终答案的正确性会有更大的信心。与其他解码方法相比,自我一致性避免了贪婪解码的重复性和局部最优性,同时减轻了单次采样生成的随机性。
图 1:自一致性方法包含三个步骤:(1)使用链式思维(CoT)提示来提示语言模型;(2)将 CoT 提示中的“贪婪解码”替换为从语言模型的解码器中采样,以生成多样化的推理路径集合;(3)对推理路径进行边际化处理,并通过选择最终答案集中最一致的答案进行汇总。
(注释:这张图展示了“自一致性”方法在使用链式思维(Chain-of-Thought, CoT)提示中的应用过程,用于提高语言模型在复杂推理任务中的准确性。图中通过三个步骤展示了自一致性方法如何优化推理过程和最终答案。
1. Chain-of-Thought 提示
首先,通过链式思维提示方法,向语言模型(Language Model)提供一个问题以及推理过程的提示。例如,问题是:
- Q: 如果停车场里已经有3辆车,又来了2辆车,那么停车场里有多少辆车?
- A: 停车场里已经有3辆车,又来了2辆车。现在3 + 2 = 5辆车。答案是5。
然后给出一个更复杂的问题:
- Q: 珍妮的鸭子每天产16个蛋。她每天早上吃3个蛋做早餐,并用4个蛋烤松饼给她的朋友们。她把剩下的蛋以每个蛋2美元的价格卖掉。她每天能赚多少钱?
2. 贪心解码(Greedy Decode)
传统方法使用贪心解码,即模型一次生成一个最可能的下一个词,直到完成整个回答。在图中,贪心解码给出的答案是:
- 她每天用3 + 4 = 7个蛋。她把剩下的蛋以每个蛋2美元的价格卖掉,所以她每天卖7 * 2美元 = 14美元。答案是14美元。
但这个答案可能不是最优的,因为贪心解码没有探索其他可能的推理路径。
3. 自一致性方法
3.1 生成多样化的推理路径
自一致性方法通过从语言模型的解码器中采样,生成一组多样化的推理路径,而不是单一的贪心解码。例如,在图中,生成了多个推理路径:
- 路径1:她有16 - 3 - 4 = 9个蛋剩下。所以她每天赚2美元 * 9个蛋 = 18美元。答案是18美元。
- 路径2:这意味着她把剩下的蛋以每个2美元的价格卖掉,所以她每天赚2美元 * (16 - 4 - 3) = 26美元。答案是26美元。
- 路径3:她每天早餐吃3个蛋,所以她有16 - 3 = 13个蛋剩下。然后她用4个蛋烤松饼,所以她有13 - 4 = 9个蛋剩下。所以她每天赚2美元 * 9个蛋 = 18美元。答案是18美元。
3.2 推理路径的边际化(Marginalize out Reasoning Paths)
在生成了多个推理路径后,自一致性方法通过边际化这些推理路径来汇总最终的答案。即选择最一致的答案作为最终答案。图中显示,答案“18美元”在多个路径中出现,因此被选择为最终答案。
通过这种方法,自一致性方法可以更好地处理复杂的推理任务,提供更准确的答案。通过生成多样化的推理路径并选择最一致的答案,这种方法克服了贪心解码的局限性,提高了语言模型的推理能力和准确性。)
自我一致性远比那些需要训练额外验证器(Cobbe等人,2021)或给定额外人工注释以改进生成质量的重排序训练方法(Thoppilan等人,2022)更为简单。相反,自我一致性完全是无监督的,可即插即用与预训练语言模型配合,无需额外的人工注释,也不需要任何额外训练、辅助模型或微调。自我一致性也不同于典型的集成方法,后者需要训练多个模型并将每个模型的输出汇总,自我一致性更像是在单一语言模型之上的“自集成”。
我们在四种不同规模的语言模型上,包括公开的UL2-20B(Tay等人,2022)和GPT-3-175B(Brown等人,2020),以及两个密集激活的解码器型语言模型LaMDA-137B(Thoppilan等人,2022)和PaLM-540B(Chowdhery等人,2022),评估了自我一致性在广泛的算术和常识推理任务上的表现。在所有四个语言模型上,自我一致性在所有任务上都显著超越了链式思考提示。特别是,当与PaLM-540B或GPT-3结合使用时,自我一致性在算术推理任务上达到了新的最佳水平,包括GSM8K(Cobbe等人,2021)(绝对准确率提高17.9%)、SVAMP(Patel等人,2021)(+11.0%)、AQuA(Ling等人,2017)(+12.2%),以及在诸如StrategyQA(Geva等人,2021)(+6.4%)和ARC挑战(Clark等人,2018)(+3.9%)等常识推理任务上。在额外的实验中,我们展示自我一致性能在添加链式思考可能损害性能的标准提示相比时,稳健地提升NLP任务的性能(Ye & Durrett, 2022)。我们也证明自我一致性显著优于采样排序、波束搜索、基于集成的方法,并且对采样策略和不完美提示具有鲁棒性。
2、自一致性在多样化推理路径中的应用
人类思考问题的方式各不相同,这一点非常明显。在需要深思熟虑的任务中,往往会有多种解决问题的方法。我们提出,通过从语言模型的解码器中进行采样,可以模拟这种过程。例如,如图1所示,模型可以对一个数学问题生成多个合理的回答,并且都得出正确的答案(输出1和输出3)。由于语言模型不是完美的推理工具,模型可能会产生错误的推理路径或在某个推理步骤中犯错(如输出2),但这样的解决方案较少能得出相同的答案。我们假设,正确的推理过程,即使是多样化的,最终答案的一致性往往高于错误的过程。
我们利用这一直觉,提出了以下自一致性方法。首先,用一组手动编写的链式思维示例(Wei等,2022)对语言模型进行提示。接下来,从语言模型的解码器中采样,生成一组多样化的候选推理路径。自一致性方法兼容大多数现有的采样算法,包括温度采样(Ackley等,1985;Ficler & Goldberg,2017)、top-k采样(Fan等,2018;Holtzman等,2018;Radford等,2019)和核采样(Holtzman等,2020)。最后,通过边际化采样的推理路径,选择生成答案中最一致的作为最终答案。
更详细地说,假设生成的答案ai 来自固定答案集ai∈ A,其中 i = 1, . . . , m 标识从解码器中采样的m 个候选输出。给定一个提示和一个问题,自一致性方法引入一个额外的潜在变量 ri,它是表示第i个输出中推理路径的一系列标记,然后结合生成 (ri, ai),其中 ri→ai,即生成推理路径ri 是可选的,仅用于得出最终答案ai。例如,考虑图1中的输出3:前几句话“她吃了3个蛋做早餐……所以她有9个蛋*2美元=18美元。”构成了 ri,而最后一句话中的答案18,即“答案是18美元”,则解析为 ai。
在从模型的解码器中采样多个(ri, ai)后,自一致性方法通过对ri进行边际化,采取多数投票来选择答案,即 maxaΣmi=11(ai = a),或我们定义为最终答案集中最“一致”的答案。
在表1中,我们展示了在一组推理任务上使用不同答案聚合策略的测试准确率。除了多数投票外,在聚合答案时,也可以通过 P(ri, ai| 提示, 问题) 对每个(ri, ai)进行加权。注意,为计算P(ri, ai| 提示, 问题),我们可以采取模型生成 (ri, ai) 给定 (提示, 问题) 的非归一化概率,或者我们可以通过输出长度进行归一化的条件概率(Brown等,2020),即
其中 log P(tk | 提示, 问题, t1, ..., tk-1)是在先前标记的条件下生成第k 个标记 tk的对数概率,K 是 (ri, ai)中标记的总数。
在表1中,我们展示了直接对ai进行多数投票的“未加权总和”方法与使用“归一化加权总和”进行聚合的准确率非常相似。我们仔细观察了模型的输出概率,发现这是因为对于每个 (ri, ai),归一化的条件概率 P(ri, ai| 提示, 问题)非常接近,即语言模型认为这些生成是“同样可能的”。此外,当聚合答案时,表1中的结果显示“归一化”加权总和(即公式1)的准确率远高于未归一化的对应方法。为了完整性,表1中还报告了“加权平均”方法的结果,即每个答案 a 得到的分数为其加权总和除以Σmi=11(ai = a),这导致了更差的性能。
自一致性探索了开放式文本生成和具有固定答案的最佳文本生成之间的有趣空间。推理任务通常有固定答案,这就是为什么研究人员通常考虑贪心解码方法(Radford等,2019;Wei等,2022;Chowdhery等,2022)。然而,我们发现即使期望的答案是固定的,引入推理过程中的多样性也非常有益;因此我们利用采样,作为常用于开放式文本生成的方法(Radford等,2019;Brown等,2020;Thoppilan等,2022),来实现这一目标。需要注意的是,自一致性只能应用于最终答案来自固定答案集的问题,但原则上,如果能够定义多个生成之间一致性的良好度量,这种方法可以扩展到开放文本生成问题,例如两个答案是否一致或矛盾。
3、实验(略)
4、相关工作
语言模型中的推理。众所周知,语言模型在第2类任务上存在困难,例如算术、逻辑和常识推理(Evans,2010)。以前的工作主要集中在改进推理的专业方法上(Andor等人,2019;Ran等人,2019;Geva等人,2020;Pi˛ekos等人,2021)。与以往的工作相比,自我一致性适用于广泛的推理任务,无需额外的监督或微调,同时仍然显著提高了Wei等人(2022)提出的思维链提示方法的性能。
语言模型中的采样和重新排序。在文献中提出了多种语言模型的解码策略,例如温度采样(Ackley等人,1985;Ficler和Goldberg,2017)、top-k采样(Fan等人,2018;Holtzman等人,2018;Radford等人,2019)、核心采样(Holtzman等人,2020)、最小贝叶斯风险解码(Eikema和Aziz,2020;Shi等人,2022)和典型解码(Meister等人,2022)。其他工作试图在解码过程中明确促进多样性(Batra等人,2012;Li等人,2016;Vijayakumar等人,2018)。重新排序是提高语言模型生成质量的另一种常用方法(Adiwardana等人,2020;Shen等人,2021)。Thoppilan等人(2022)收集额外的人类注释来训练一个重新排序器进行响应过滤。Cobbe等人(2021)训练一个“验证器”对生成的解决方案进行重新排序,与仅仅微调语言模型相比,这在数学任务上的解决率有了显著提高。Elazar等人(2021)通过扩展预训练增加额外的一致性损失来提高事实知识提取的一致性。所有这些方法都需要额外训练一个重新排序器或收集额外的人类注释,而自我一致性不需要额外的训练、微调或额外的数据收集。
提取推理路径。一些以前的工作考虑了识别推理路径的任务特定方法,例如构建语义图(Xu等人,2021a)、学习一个RNN在Wikipedia图上检索推理路径(Asai等人,2020)、在数学问题上用人类注释的推理路径进行微调(Cobbe等人,2021)或用基于启发式的伪推理路径训练提取器(Chen等人,2019)。最近,推理过程中的多样性的重要性已经被注意到,但只通过任务特定的训练来利用,要么通过额外的QA模型在提取的推理路径上(Chen等人,2019),要么通过在常识知识图中引入潜在变量(Yu等人,2022)。与这些方法相比,自我一致性要简单得多,不需要额外的训练。我们提出的方法是简单地通过从解码器中采样将生成推理路径和最终答案结合起来,使用聚合来恢复最一致的答案,而不需要额外的模块。
语言模型中的一致性。一些以前的工作表明,语言模型在对话(Adiwardana等人,2020)、解释生成(Camburu等人,2020)和事实知识提取(Elazar等人,2021)中可能会有不一致性。Welleck等人(2020)使用“一致性”来指代在递归语言模型中生成无限长度序列。Nye等人(2021)通过添加一个受System 2启发的逻辑推理模块来提高System 1模型样本的逻辑一致性。在本文中,我们关注一个稍微不同概念的“一致性”,即利用多样化推理路径中的答案一致性来提高准确性。
5、结论与讨论
我们介绍了一种称为自我一致性的简单而有效的方法,并观察到它显著提高了在一系列算术和常识推理任务中的准确性,涵盖了四种不同规模的大型语言模型。除了准确性的提升,自我一致性在执行推理任务时收集理由、提供不确定性估计以及改善语言模型输出的校准时也具有用处。
自我一致性的一个限制是它会增加计算成本。在实践中,人们可以尝试少量路径(例如,5或10条)作为一个起点,在不增加太多成本的情况下实现大部分收益,因为在大多数情况下性能会迅速饱和(见图2)。作为未来工作的一部分,可以使用自我一致性生成更好的监督数据来微调模型,以便模型在微调后的单次推理运行中给出更准确的预测。此外,我们观察到语言模型有时可能会生成不正确或无意义的推理路径(例如,表4中的StrategyQA示例,两个人口数字并不完全正确),需要进一步的工作来更好地基础化模型的理由生成。
Wang X, Wei J, Schuurmans D, et al. Self-consistency improves chain of thought reasoning in language models[J]. arXiv preprint arXiv:2203.11171, 2022.
Google Research, Brain Team
本文转载自公众号AIRoobt ,作者:AIRoobt
原文链接:https://mp.weixin.qq.com/s/RTQP54E9m2_HXVmlDVVrxA