Poketto

只加一句“Let's think step by step”,大模型数学题正确率从 17.7% 涨到 78.7%?

目录

论文主题概念插画

配图:AI 生成的概念示意图,非论文原图、实验结果或真实数据。

TL;DR:2022 年,东京大学和谷歌大脑的研究者发现,在题目后面加一句“Let's think step by step”(让我们一步一步思考),不给任何示例,就能让大模型在算术题测试 MultiArith 上的正确率从 17.7% 升到 78.7%。这个结果是真实的,但它来自特定模型(text-davinci-002)和特定测试集;换成难度更高的 GSM8K,提升是 10.4% 到 40.7%,而且仍不如精心设计示例的做法。

这篇论文发表于 2022 年(arXiv 首版为 2022 年 5 月 24 日,后被 NeurIPS 2022 收录),不是新闻,但它改变了很多人使用大模型的方式。

背景:思维链要靠示例

2022 年初,“思维链”(chain-of-thought)提示刚刚出现:在提问时先给几道带完整解题步骤的例题,模型就会模仿着一步步推理,数学和逻辑题的表现明显变好。问题是,每个任务都得人工写好例题,很麻烦。

当时的普遍看法是,这种能力来自“看了例子才会”的少样本学习。

论文做了什么

作者 Takeshi Kojima、Shixiang Shane Gu、Machel Reid、Yutaka Matsuo 和 Yusuke Iwasawa 想试一个最省事的版本:完全不给例题,只在回答前加一句“Let's think step by step”。

做法分两步:先用这句话让模型写出推理过程,再把推理过程连同问题一起交回去,让它给出最终答案。整个流程对所有任务用同一个模板,不需要为每类题目单独设计。

关键数字

主要实验使用 InstructGPT(text-davinci-002),论文还在 540B 参数的 PaLM 上看到了量级相近的提升:

  • MultiArith(多步算术):17.7% → 78.7%
  • GSM8K(小学数学应用题):10.4% → 40.7%

提升不限于算术,符号推理(如拼接单词末尾字母)、日期理解、物体交换追踪等任务上也有改善。

它没有说什么

这句话不是万能咒语。论文自己承认,零样本思维链的表现低于精心写好示例的少样本思维链。另外,提升依赖模型规模和任务类型,不能理解为“任何模型加这句话都会涨到 78%”。

作者的结论也比较克制:大模型里可能存在尚未被挖掘的零样本推理能力,这种简单方法可以作为后续研究的强基线。

为什么重要

它让人意识到,同一个模型的“笨”与“聪明”,有时只差一句提示。此后,“让模型先写推理再回答”成了提示词工程的常识,也成为后来推理模型发展的一条背景线索。

论文地址:arXiv:2205.11916

关注这个空间,它的新文章会出现在你的关注动态里。