
Q: Roger has 5 tennis balls. He buys 2 more cans of tennis balls. Each can has 3 tennis balls. How many tennis balls does he ha ve now?
问题:罗杰有5个网球。他又买了2罐网球,每罐有3个网球。现在他总共有多少个网球?
这是一道小学级别的数学推理题,对如今的我们而言轻而易举。即使是大多数主流大语言模型(LLM),答对此题也并不稀奇。但一个语言模型为何能正确解答这种需要逻辑推理的数学题?这一现象本身,就非常值得深入探讨。
遵循人类常见的思考路径,要解这道题,首先得明确当前网球数量——5个。接着计算新购买的部分:两罐,每罐3个,共计6个。最后相加,得出11个。这种环环相扣的推导过程,正是所谓的思维链(Chain-of-Thought)。
思维链技术同样可以应用于LLM。它模仿人脑处理信息的逻辑链条——面对复杂问题时,模型会自然地将其拆解为若干子问题,逐一求解,再整合为完整答案。借助思维链提示(Chain-of-Thought Prompting),语言模型得以模拟这一过程,一步步推理出正确答案。这项技术最早起源于2022年的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》。研究者发现,引导模型生成一系列中间推理步骤,能显著增强大语言模型完成复杂推理任务的能力。
思维链提示(Chain-of-Thought Prompting)
该论文详细探讨了这一提示技术:通过复现人类逐步思考的模式,让模型在输出答案前先走完一整套逻辑链条。实验证明,只需在少量示例中嵌入思维链,大语言模型在算术推理、常识推理、符号推理等任务上就能取得明显进步。更重要的是,这种方法不仅提升了推理能力,还让模型的决策过程更加透明——你可以直观地看到它的思考路径。此外,由于任何人类能用语言表达的任务都可以套用这一思路,思维链提示的适用范围远比想象中广阔。
思维链提示为何如此引人关注?几个关键特性值得留意:
第一,原则上,思维链将多步骤问题分解为中间步骤,这意味着可以为需要更多推理步骤的任务分配额外计算资源——模型不会“跳过”任何环节。
第二,思维链提供了一个可解释的窗口。你可以清楚看到模型得出答案的推理路径,甚至能顺着链条定位错误根源(当然,要完全解释模型背后的计算逻辑,目前仍是一个开放性问题)。
第三,思维链推理可以应用于数学文字题、常识推理、符号操作等多种场景,理论上任何人类通过语言能解决的任务都适用。
第四,只需在少量示例的提示中加入思维链样本,现有的大语言模型就能直接学会这种推理方式,无需额外训练。
算术推理(Arithmetic Reasoning)
研究背景与目标
- 算术推理对人类来说很简单,但语言模型以往的表现经常掉链子。借助思维链提示,尤其是搭配540B参数的大模型时,其性能可以比肩专门微调的模型,甚至能在GSM8K这个高难度基准上刷新纪录。
实验设置
- 研究者在多个算术文字题基准上测试了不同模型的思维链提示效果,包括GSM8K、SVAMP、ASDiv、AQuA和MAWPS五个数据集。对比了两种方法:标准提示(仅提供输入-输出对)和思维链提示(每个示例中附加一条推理链)。
实验结果
- 思维链提示在大模型上效果显著,尤其是参数规模达到100B左右时,性能提升非常明显。对于像GSM8K这样的复杂问题,提升幅度更大;而简单问题上提升较小,有时甚至不明显。使用GPT-3 175B和PaLM 540B进行思维链提示,在多个数据集上都达到了新的最佳水平。
错误分析
- 研究者手动检查了LaMDA 137B在GSM8K上生成的思维链:答案正确的情况下,几乎所有的思维链在逻辑和数学上都正确。答案错误的情况则分为两类——部分思维链几乎全对,只是漏了个小错误;其他的则在语义理解或连贯性上出现了较大问题。
消融研究
为了探明思维链究竟为何有效,研究者还做了几个消融实验:
- 仅方程提示:对复杂问题帮助不大,只在简单问题上略有改善。
- 仅变量计算:表现与基线基本持平——说明单纯列出变量不构成思维链。
- 答案后的思维链:让模型先输出答案再写推理过程,结果性能与基线持平——这说明顺序推理是思维链成功的关键,并非仅仅是“激活已有知识”。
思维链的稳健性
- 不同注释者编写的思维链虽然风格各异,但所有思维链提示都显著优于标准基线。更换示例集、注释者、大模型,结果依然稳定。这表明思维链提示具备相当好的稳健性。
结论
- 思维链提示是一种简单但适用范围广的方法,能够显著提升语言模型在算术推理任务上的表现。它的效果不依赖于特定的语言风格,并且在大模型上展现出很强的复杂问题解决能力。这项工作也表明,通过少量示例和自然语言数据,大语言模型就能学会执行多步骤推理任务。
常识推理(Commonsense Reasoning)
研究背景与目标
- 思维链提示虽然最初在数学文字题上大放异彩,但其语言本质决定了它几乎适用于所有常识推理问题。而常识推理是机器与世界交互的基础,目前自然语言理解系统在这方面仍有不少短板。
基准数据集
- 研究者挑选了五个覆盖不同常识推理类型的标准数据集:
- CSQA:涉及复杂语义的世界常识问题。
- StrategyQA:要求模型推断出回答问题的多步骤策略。
- Date Understanding:从给定上下文中推断日期。
- Sports Understanding:判断与体育相关的句子是否合理。
- SayCan:将自然语言指令映射到一系列离散的机器人动作。
实验设置
- 实验延续了之前的做法:对CSQA和StrategyQA,从训练集随机选取示例并手动编写思维链作为少量样本;对没有训练集的两个BIG-bench任务,直接取评估集的前十个例子作为示例,在其余评估集上报告结果;对SayCan数据集,采用了Ahn等人(2022)的六个训练例子,同样手动编写思维链。
实验结果
- 思维链提示在所有任务上都显著提升了性能,其中PaLM 540B的提升最为惊人。例如在StrategyQA上,思维链提示帮助PaLM 540B超越了此前的最佳水平(75.6% vs 69.4%);在体育理解任务上,甚至超过了未经特殊训练的体育爱好者(95.4% vs 84%)。不过,在CSQA上的提升相对较小——可能因为这个任务本身对推理步骤的要求不那么明确。
结论
- 思维链提示不仅是数学题的专属武器,它也能切实提升语言模型在常识推理任务上的表现。只要在少量示例中加入思维链,尤其是配合大模型,推理能力就能上一个台阶。这进一步证明了思维链是一种强大且灵活的方法,可以拓宽语言模型在多种复杂任务上的应用边界。
符号推理(Symbolic Reasoning)
研究目标
- 想探究思维链提示能否让语言模型解决那些标准提示下完全无法处理的符号推理任务,甚至还能处理比提示示例更长的输入序列。
任务设计
- 姓氏字母连接任务:将姓名中每个词的最后一个字母连接起来(例如“Amy Brown” → “yn”)。这是对已有“首字母连接”任务的扩展。
- 硬币翻转任务:给定一些人的翻硬币动作(有人翻,有人不翻),问最终硬币是否正面朝上。例如“硬币正面朝上。Phoebe翻转了硬币。Osvaldo没有翻转。硬币还是正面朝上吗?”答案是“否”。
实验设置
- 为了测试模型的泛化能力,每个任务设计了领域内(in-domain)和领域外(OOD)的测试集。领域内测试的示例步骤数与训练/少量示例的步骤数一致;领域外测试中,示例步骤数更多——比如在姓氏字母连接任务中,模型只见过两个词的姓名,测试时却要处理三个词、四个词的姓名;硬币翻转任务中,模型只见过两次翻转,测试时要处理更多次翻转。
实验结果
- 领域内测试:PaLM 540B配合思维链提示,几乎达到了100%的解出率。有趣的是,标准提示在硬币翻转任务上也能让PaLM 540B表现不错,但对LaMDA 137B则不行。
- 领域外测试:标准提示在两个任务上都失败了。而思维链提示则展现出向上的性能提升曲线——虽然相比领域内表现有所下降,但确实在逐步改善。这表明,只要模型规模足够大,思维链提示能帮助模型在从未见过的更长思维链上实现泛化。
结论
- 思维链提示不仅提高了语言模型在符号推理任务上的性能,还促进了模型对更长序列的泛化能力。实验结果再次强调了模型规模的重要性——只有在模型参数达到100B左右时,才开始展现对未见符号进行抽象操作的能力。这项工作进一步确认了思维链是一种强大且灵活的方法,可以扩展语言模型在更多复杂任务上的应用,也为未来的研究打开了新方向。
