Chain-of-Thought Reasoning without Prompting
摘要
在增强大型语言模型(LLMs)的推理能力方面,先前的研究主要集中在特定的提示技术上,如少样本或零样本的链式思维(Chain-of-Thought, CoT)提示。这些方法虽然有效,但通常涉及手动密集的提示工程。我们的研究提出了一种新颖的方法:LLMs能否在没有提示的情况下有效推理?我们的研究发现,有趣的是,通过简单地改变解码过程,可以从预训练的LLMs中引出CoT推理路径。我们不再采用传统的贪婪解码,而是研究了前k个备选词元,发现CoT路径经常存在于这些序列中。这种方法不仅避开了提示的混淆因素,还使我们能够评估LLMs的内在推理能力。此外,我们观察到,解码路径中存在CoT与模型解码答案的更高置信度相关。这种置信度指标有效地区分了CoT和非CoT路径。在各种推理基准上的广泛实证研究表明,所提出的CoT解码方法有效地从语言模型中引出了推理能力,这些能力在标准贪婪解码中被掩盖了。
1. 介绍
大型语言模型(LLM)在多种复杂推理基准测试中展示了卓越的表现。LLM的这些推理能力通常通过提示技巧引出,可以是通过包含中间步骤的少样例提示(few-shot prompting)进行示例增强,或是通过带有具体指令的零样例提示(zero-shot prompting),要求展示某些中间步骤。另一种常见的引出LLM推理能力的策略是通过使用大量的链式思维(CoT)推理数据进行模型训练或指令微调。
提示技巧虽然有效,但通常会编码任务特定的人为先验,因而难以评估语言模型的内在推理能力。理想情况下,语言模型应能够独立推理并提供最佳响应,而无需人为反复调整或改进提示词。如果初始响应不理想,模型微调的代价较高,并且需要大量的监督数据。本文从不同角度进行探讨,提出:LLM能否在不依赖提示的情况下有效推理?它们的推理能力究竟到何种程度?我们发现,通过简单地改变解码过程,存在一种与任务无关的方法可以从预训练LLM中引出CoT推理。图1展示了这种现象:给定一个推理问题,LLM通过标准的贪婪解码路径生成了错误答案,但通过替代的前k个词元(token)检查,揭示了内在的CoT路径(例如解码路径2和4),这些路径能够准确解决问题。该解码修改跳过了提示过程,完全在无监督的情况下实现,无需进行模型微调。
图1 | CoT解码的示例。预训练的LLM无需依赖提示,通过考虑替代的前k个词元(token),而不仅仅依赖于单一的贪婪解码路径(top-1),可以展现其内在的推理能力。此外,当解码路径中存在CoT推理路径时,这些模型往往在生成最终答案时表现出更高的信心(以较深的阴影颜色表示)。
更具体而言,我们采用标准的问答格式来进行输入构造:“Q:[question]\nA:[answer]”。尽管大部分现有研究表明,LLM在这种直接的问答情境中在推理上表现不佳,但我们的发现揭示了一个更为细微的情况。我们观察到,LLM确实在仅依赖贪婪解码路径时面临推理困难。然而,当考虑前k个词元中的替代路径时,CoT推理模式自然地在LLM的解码轨迹中显现。此外,我们还观察到一个有趣的模式:当解码过程中存在CoT推理路径时,模型对最终答案的信心增加。如图1所示,路径2和4显示出更高的确定性,得出正确答案“8”,而导致错误答案“5”的路径则表现出高度的不确定性。基于这种现象,我们开发了一种方法,通过筛选前k个解码路径来提取最可靠的路径,称之为CoT解码,从而隔离出最可靠的模型输出路径。
我们的贡献总结如下:
-
提出了一个新颖的发现:LLM可以通过简单的解码调整进行推理,而无需依赖提示。与以往研究关注通过优化提示来引出LLM的推理能力不同,我们的研究首次表明,通过简单的解码调整即可轻松引出推理过程。此外,我们质疑了文献中普遍存在的观点,即LLM在没有提示的情况下无法有效推理。我们证明,这种看法实际上是仅关注贪婪解码路径所导致的结果,通过遍历替代解码路径可以揭示模型的推理路径。
-
我们的方法在不引入人为先验的情况下,更好地理解LLM的内在推理能力。复杂的提示技术通常会引入各种人为先验,使得难以区分模型的推理能力究竟是来自“人为教学”,还是模型的独立推理能力。我们的方法绕过了提示引入的混杂因素,使得能够更真实地评估模型的内在推理能力。我们的研究显示,预训练语言模型本身具有多项任务(包括数学和常识推理)的推理能力,现有的提示方法主要作用在于将这些内在推理路径推到解码的最优路径上。相比之下,在复杂和高度合成的任务中,少样例CoT示例则起到了“教学”作用,引导模型如何解决任务,模型主要是在模仿这些提示的格式来生成准确的推理路径。
-
我们进一步提出了基于答案置信度可靠选择CoT路径的CoT解码方法。我们发现,当解码路径中存在CoT时,语言模型对其最终答案的置信度会提高。利用这一置信度的增加,我们提出了CoT解码方法,以选择更可靠的解码路径,并在多个推理基准测试中相较于贪婪解码显著提升了表现。
2. Chain-of-Thought (CoT) 解码
2.1 预训练模型可以在没有提示的情况下进行推理
我们研究预训练语言模型在没有明确提示或人为干预的情况下,是否本身具备推理能力。在表1中,我们展示了数学和常识推理任务中不同的解码路径示例。我们使用预训练的PaLM-2大型模型来比较其贪婪解码路径(𝑘 = 0,当前最先进LLM推理任务中广泛使用)与替代解码路径(𝑘 > 0),其中𝑘表示在首次解码步骤中选择的第𝑘个词元。
表 1 | PaLM-2 Large 模型上的贪婪解码路径和替代 top-k 路径的示例。模型对答案的置信度(粗体)以蓝色突出显示
若仅考虑贪婪解码路径,LLM确实无法进行有效推理。首先,我们观察到使用贪婪解码的模型通常不包含链式思维(CoT)路径,而是倾向于直接解决问题。这一倾向可能源于模型在预训练期间主要接触到较简单问题,因此对问题难度的理解有所偏差,导致其倾向于直接解答问题。这一观察与之前研究的发现一致,直接回答的问题提示通常在推理任务上准确率较低,即使是大型语言模型也如此。
如果考虑替代的解码路径,LLM则能够进行推理。相反,当在首次解码步骤中探索替代的前𝑘(𝑘 > 0)个词元时,出现了一种有趣的现象。从这一点继续贪婪解码的过程中,在许多情况下自然展现出CoT推理。这些发现表明,大型语言模型在预训练之后具备多项任务的内在推理能力,但由于普遍使用贪婪解码,这些能力被掩盖。通过引入替代解码路径,可以轻松揭示这些推理路径。
例如,在GSM8K问题中(表1),当𝑘 = 9时出现了有效的CoT路径。同样地,在年份奇偶性任务中,贪婪解码在𝑘 = 0时尝试直接回答奇偶性问题,导致在“偶数”和“奇数”之间随机选择,通常得出错误答案。然而,当探索𝑘 > 0时,模型在𝑘 = 3和𝑘 = 7自然生成了CoT路径,先确定年份再解决奇偶性问题。
2.2. 用于提取 CoT 路径的 CoT 解码
在本节中,我们进一步展示了如何在解码过程中可靠地提取这些CoT路径。表1显示,CoT路径在模型的概率评估中并不总是高于非CoT路径。此外,CoT路径往往不代表所有路径中占主导地位的答案,使得诸如自我一致性的方法不适用。例如,在GSM8K问题中,普遍答案“60”与贪婪解码结果一致,但未能作为正确路径的可靠指示。
有趣的是,通过检查模型的logits,我们发现CoT路径的存在通常会导致对最终答案的更高置信度,其特征是顶级和次级词元之间的显著概率差异:
Δ k , answer = 1 ∣ answer ∣ ∑ x t ∈ answer ( p ( x t 1 ∣ x < t ) − p ( x t 2 ∣ x < t ) ) . \Delta_{k,\text{answer}} = \frac{1}{|\text{answer}|} \sum_{x_t \in \text{answer}} \left( p(x_t^{1} | x_{<t}) - p(x_t^{2} | x_{<t}) \right). Δk,answer=∣answer∣1xt∈answer∑(p(xt1∣x<t)−p(xt2∣x<t)).
其中, x t 1 x_t^{1} xt1和 x t 2 x_t^{2} xt2分别表示在第 k k k条解码路径中第 t t t步解码的前两个词元,这两个词元是基于其在softmax后的最大概率从词汇表中选择的,前提是 x t x_t xt属于答案词元。这种不确定性度量类似于最小边距方法。在我们的案例中,模型对最终答案的整体置信度通过对所有相关答案词元 x t x_t xt的概率差异进行平均来近似。例如,对于表1中的GSM8K问题,给定答案“60”,我们对答案中所有词元(即“6”和“0”)的概率差异进行平均。
这个公式用于衡量在解码过程中,模型在生成某个答案时的置信度,通俗的讲,在第t步解码时,模型选择第一个token的概率和模型选择第二个token的概率的差值越大,说明模型对第一个token选择的确定性越大,代表置信度越大。最后对所有|answer|次解码做平均得到最终的置信度。
这种方法被称为CoT解码,它从模型的解码路径中提取出包含CoT的路径。如表1所示,每条解码路径都用对应的 Δ \Delta Δ 值标记,显示为蓝色(答案词元加粗)。很明显,包含CoT成分的路径具有显著更高的 Δ \Delta Δ 值,显示出模型更高的置信度,而不包含CoT的路径则没有这种特性。我们还对GSM8K中的前100个问题进行了定量分析,手动检查了这些问题的解码路径。在这些问题中,如果选取前10条解码路径中答案置信度最高的路径,那么其中88%的路径包含CoT路径。这表明模型的答案置信度与CoT路径之间存在极高的相关性。
比较不同的CoT路径提取方法。在表2中,我们比较了从前10条解码路径中提取CoT路径的不同方法。可以很容易地看出,模型自身的概率度量并不可靠,模型的长度归一化概率也不可靠(因为直觉上认为CoT路径通常较长,但事实并非总是如此,例如在年份奇偶性任务中)。相比之下,CoT解码能够可靠地提取CoT路径,从而显著提升模型的推理表现。
识别答案范围。计算 Δ \Delta Δ 需要识别模型响应中的答案范围。对于公开模型,常用的一种方法是在数学推理任务中提取最后一个数值,或在集合推理任务中提取最终选项,遵循Tülu评估方法。另外,类似于Kojima等人(2022)使用的方法,我们也可以在模型输出中添加提示语“所以答案是”,然后将这些扩展部分与模型解码路径中的相应范围对齐,作为答案。
在标准问答格式下进行采样。CoT解码在首次解码步骤中探索替代词元。那么一个自然的问题是:采样是否可以达到类似的效果,并揭示CoT推理路径?我们发现,虽然采样在few-shot CoT提示下效果很好,但在没有提示的情况下并未展现出预期的效果(见表3)。采样效果不佳的原因在于,模型在解码过程中有强烈的倾向直接给出答案,因此第一个词元的多样性较低,而CoT解码通过明确鼓励在首次解码步骤中的多样性来运作,从而取得更好的效果。
在其他解码步骤进行分支。另一个自然的问题是,相比仅在首次解码步骤进行分支,是否可以在后续解码阶段进行分支。在图2中,我们突出了在随后的解码步骤中考虑替代词元的影响。很明显,早期分支(例如在首次解码步骤)显著增强了潜在路径的多样性。相反,后期分支则受到先前生成词元的显著影响。例如,如果解码从词元“5”开始,则纠正错误路径的可能性大大降低。然而,最佳的分支点可能因任务而异;在年份奇偶性任务中,中途分支可以有效地生成正确的CoT路径。
解码路径的聚合。由于我们已经解码了前𝑘条路径,一个自然的扩展是对所有这些路径的答案进行聚合,类似于自我一致性方法,但不使用提示。聚合的背后原理是减少对模型logits中微小差异的敏感性,尤其是在仅依赖于最大 Δ \Delta Δ 的路径时。表1中的示例显示,答案的多数票往往不是正确的。相反,我们提出了一种加权聚合方法,即选择使 Δ ~ a = ∑ k Δ k , a \tilde{\Delta}_a = \sum_k \Delta_{k,a} Δ~a=∑kΔk,a 最大的答案,其中 Δ k , a \Delta_{k,a} Δk,a 是第 k k k 条解码路径中答案为 a a a 的路径。我们发现,采用这种方法可以增强结果的稳定性。
3. 实验
实验设置。对于所有实验,模型的默认输入是标准的问答格式,即“Q: [问题]\nA:”,其中[问题]根据任务填入实际的问题,并要求模型在此前缀的基础上继续生成。在解码过程中,默认使用𝑘 = 10,即在第一个解码位置选择前𝑘个替代词元,然后继续贪婪解码。
数据集。对于数学推理,我们使用了小学数学问题数据集(GSM8K)和多步算术数据集(MultiArith)。对于常识推理,我们研究了“年份奇偶性”任务,该任务被认为是大语言模型仍然面临挑战的领域。具体任务是询问模型“[人名]出生年份是偶数还是奇数?”,其中“[人名]”由随机名人姓名替代。现有研究表明,即使是最先进的模型(如GPT-4)在直接提示下也难以完成此类任务,仅能达到接近随机的准确率(约50%)。此外,我们还研究了Big-Bench-Hard中的符号推理任务。
模型。我们使用了三个公开模型:(1) PaLM-2(具有不同规模,包括X-Small、Small、Medium和Large);(2) Mistral-7B;以及(3) Gemma-7B。我们的实验主要关注预训练模型,但也包括了部分指令微调模型(记为“inst-tuned”或“IT”)的实验。
3.1 CoT 解码有效地从语言模型中引出推理
CoT解码是唯一能够有效提升语言模型推理能力的解码策略。在表4中,我们展示了Mistral-7B预训练模型上的一些常见解码基线的结果,包括温度采样、top-𝑘采样、核采样和束搜索。可以看出,CoT解码是唯一能够有效促进语言模型推理的解码策略,而一些解码方法相较于贪婪解码甚至会降低模型的推理表现。
CoT解码能够在不同的语言模型中有效引出推理能力。在图3中,我们展示了在PaLM-2、Mistral和Gemma三种语言模型家族中,CoT解码能够有效引出模型的推理能力,在数学和常识推理任务上都带来了显著的准确率提升,有时甚至达到了贪婪解码的两倍或三倍的表现。
CoT解码在不同模型规模上均能引出推理能力。在图4中,我们展示了CoT解码在不同规模的PaLM-2模型家族中对推理能力的增强效果。在GSM8K数据集上,CoT解码稳定地带来10-30%的绝对准确率提升。在年份奇偶性任务上,使用贪婪解码时,即使模型规模增加,模型的表现也保持不变,这与之前研究结果一致。相比之下,CoT解码通过恢复CoT路径显著提升了表现,在更大规模的模型上接近完美的准确率。
CoT解码在无需任何监督数据的情况下,部分缩小了预训练模型与指令微调模型之间的推理差距。有趣的是,我们观察到CoT解码使得预训练模型能够达到接近指令微调模型的表现:在图4(左)中,CoT解码在预训练的PaLM-2 Large模型上实现了63.2%的准确率,接近同规模指令微调模型的67.8%。结果表明,通过在预训练模型中修改解码过程,可以在一定程度上达到指令微调中通过大量CoT数据所实现的效果。
更有趣的是,我们观察到CoT解码还能进一步提升指令微调模型的表现(见图4左和表5)。指令微调过程(Chung等,2022)已经在微调过程中加入了大量的CoT注释。因此,在解决推理任务时,模型本应内在地生成CoT路径。然而,通过分析具体示例,我们发现即使在指令微调之后,模型有时仍会尝试直接回答问题。相比之下,CoT解码通过首先触发CoT,从而增强了对替代路径的探索,最终得到更准确的答案。
关于𝑘的选择。在图5中,我们展示了𝑘值(即考虑的前几个替代词元数目)对总体准确率的影响。整体上,我们发现较高的𝑘值通常会带来更好的模型表现,这表明在许多情况下,正确的CoT路径确实存在,但往往在模型解码过程中被排在较低的位置。对于指令微调模型,𝑘的影响较小,这表明指令微调过程有效地将大多数CoT路径提升到了前几个解码路径中。
3.2. CoT 解码可以更好地理解模型的内在推理能力
相比于通过更好的人工提示来提升模型推理能力的现有方法,我们提出的方法的一个关键区别在于完全消除了人工提示。这一改进使得更真实地评估语言模型的内在推理能力成为可能。在上一节中,我们展示了语言模型在小学级数学问题和简单常识推理任务上本身具备的推理能力。在本节中,我们将系统地调整合成任务的难度级别,以便通过CoT解码更全面地了解语言模型的内在推理能力。
我们考虑了以下符号推理任务:(1)来自Coin Flip任务,设置2、3、4轮可能的翻转;以及来自Big-Bench-Hard的两个任务:(2) Web of Lies,设置3、4、5个真假陈述,和(3) 多步算术任务,设置不同的深度 d d d和长度 l l l。对于每个任务,我们针对每个难度级别生成了100个示例,除了Web-of-Lies (5)任务我们使用了现有的数据集。此外,我们还包括了两个基于自然语言但属于合成任务的Big-Bench任务,即Sports Understanding和Object Counting,以探查模型解决合成任务的内在能力。
正确的CoT路径的出现取决于任务的难度级别,并且与该任务在预训练分布中的重要性相关。表6(基于PaLM-2 L模型)的结果显示,尽管CoT解码在几乎所有任务上都帮助引出了更好的推理,收益在不同任务难度级别上差异显著:任务越简单,找到正确推理路径的可能性越大。我们还查看了模型的top-𝑘解码路径,发现当解答只涉及最多1或2步知识操作时,模型可以生成正确的CoT路径;而当步骤增加到3步或更多时,模型开始难以生成正确的CoT路径。见图5(右侧),随着任务复杂性增加(较高的 d d d和 l l l值),模型的准确率仅在更大的𝑘值下有所改善。这一现象表明,随着任务变得更合成化,正确的CoT路径变得更难以找到。这与(McCoy et al., 2023)的发现相似,即语言模型的表现受其训练分布的影响很大。
CoT解码揭示了模型在推理中的内在脆弱性。我们的结果还揭示了语言模型仍然面临的具体挑战:例如,在Coin-Flip和Web-of-Lies任务中,我们观察到模型可以生成逐步模拟过程的CoT路径,但在任务复杂性增加时容易丢失状态,这揭示了模型在进行准确状态跟踪方面的内在脆弱性。在多步算术任务中,我们观察到模型在CoT解码路径中往往从左到右依次进行计算,而不是遵循正确的数学运算顺序。这些观察指出了未来改进模型的方向。
此外,在这些合成任务中,我们发现Big-Bench-Hard上的现有CoT提示在引导模型解决此类任务方面起到了更大的“教学”作用,大多数情况下模型只是模仿CoT提示中的模式来生成正确的响应。例如,少样例CoT提示教会模型在Web-of-Lies任务中的每一步进行明确的状态跟踪。在Sports Understanding任务中,CoT解码能够更好地揭示LLM在解决问题时的内在策略,而不受外部提示的影响,这些提示可能会受到提示设计者的偏见影响。相比之下,少样例CoT提示将模型限制在通过人为知识和干预策划的人工策略上。
3.3.将 CoT 解码与 CoT 提示相结合
我们进一步展示了CoT解码可以轻松与CoT提示结合使用,从而在多个语言模型上实现更大的推理增益(见表7)。当CoT解码与CoT提示结合使用时,其性能相比自我一致性方法仍保持较强的表现。由于自我一致性方法是通过聚合多条路径来提升推理效果,我们也展示了基于我们路径聚合算法的性能,该算法在类似的计算成本下显著提升了模型的推理能力。为确保公平比较,对于所有需要多条解码路径的方法,我们统一使用𝑘 = 10。
4. 总结
我们研究了语言模型在解码过程中生成链式思维(CoT)推理路径的内在能力,不依赖任何特殊提示。我们的研究结果表明,与普遍采用的贪婪解码不同,探索解码空间中的替代top-𝑘词元能够揭示模型中自然存在的推理路径。此外,我们的实验观察表明,存在CoT推理路径与模型在解码其最终答案时的置信度增加之间存在关联。基于这一观察,我们引入了CoT解码,以提取语言模型中更可靠的解码路径,从而提升其整体推理表现。
讨论与局限性。探索替代解码路径会增加额外的计算成本。未来的研究可以利用CoT解码路径来微调模型,以进一步增强其推理能力。此外,在答案更具开放性的情况下,利用前两个词元的概率差异作为模型偏向某个答案的指示器可能不够精确。尽管现有研究利用模型的激活空间来揭示潜在知识,其适用范围限于是非问题。我们希望未来的研究能够克服这一限制,通过深入探索模型在更广泛的开放性答案空间中的内部表示。
此外,我们当前的探索集中在首个词元处的分支,但未来的研究可以探索在任意词元处进行分支,并在解码阶段寻找最佳路径。尽管这样会显著增加计算成本,如何在搜索过程中可靠地识别最佳词元也是一个值得探索的方向。