在大语言模型(LLM)领域,思维链(Chain-of-Thought, CoT) 是一种提示(Prompting)技术或模型内部推理过程的体现,旨在引导或揭示模型如何从问题输入逐步推导到最终答案的中间推理步骤。其核心思想是模仿人类的推理过程:遇到复杂问题时,我们不会直接给出最终答案,而是会一步步思考、分解问题、应用知识或逻辑规则,最终得出结论。CoT 就是试图让 LLM 也展现出这种逐步、透明的推理能力。
2022年1月,谷歌研究院的Jason Wei等人在一篇名为《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》的论文中,首次正式提出了“思维链”这个概念。研究人员发现,只要在提问时给模型看几个带有详细推理步骤的示例(这被称为Few-shot),模型在回答新问题时就会模仿这种“展示工作”的方式,从而大幅提升数学、逻辑和常识推理等复杂任务的准确率。有趣的是,提出者Jason Wei后来加入了OpenAI,并参与了ChatGPT的研发。这也使得思维链技术很快在ChatGPT中得到应用,并随着ChatGPT的爆火而闻名于世。
思维链(Chain of Thought, CoT)确实和我们通常理解的“技术”不太一样。它更像是一种巧妙的沟通艺术,或者说是一种“提示技巧”,而不是一段需要修改底层代码的复杂算法。
我们可以用一个比喻来理解。假设你问一个学生一个复杂的数学题,有两种教法:
直接问:“17 x 24 等于多少?”(学生可能直接蒙一个答案,容易错)
启发式问:“来,我们一步步想。17 x 24 可以先算 17 x 20,再算 17 x 4,然后把两个结果加起来。现在,你试着自己算一下?”
思维链就相当于第二种“启发式教学”。它不直接要求大模型输出答案,而是在提问(Prompt)中引导或展示一个分步骤的推理过程,让模型“照着学”,从而显著提升它在复杂推理任务上的表现。
比如,直接问模型一个数学题它可能会答错,但如果在问题后面加一句神奇的咒语“让我们一步步思考(Let"s think step by step)”,模型就会自动开始分步推理,并给出更准确的答案。
为什么说它不像“技术”?因为它不改变模型本身的结构和参数,只是在输入端巧妙地设计提示词来激发模型已有的能力。研究发现,思维链之所以有用,是因为当模型参数规模大到一定程度(比如超过1000亿)时,这种分步推理的能力会突然“涌现”出来。也就是说,大模型本身可能就潜藏着推理能力,而思维链提示就像一把钥匙,把它给激发了出来。对于小模型,用这招就没啥用了。
这是最经典和有效的方式。在提示(Prompt)中,除了任务指令外,提供几个(Few-Shot)包含完整问题、详细推理步骤(思维链)和最终答案的示例。模型通过模仿这些示例中的推理模式,在面对新问题时也能生成类似的推理链和答案。示例如下所示:
用户的问题:小明有5个苹果,他吃掉了2个,又买了3个橙子。他现在有多少个水果?
大模型的思考过程:首先,他吃掉了2个苹果,所以剩下 5 - 2 = 3 个苹果。然后,他买了3个橙子。水果包括苹果和橙子,所以总水果数是剩下的苹果加上新买的橙子:3 + 3 = 6。
大模型的答案:6个水果。
不需要提供示例。直接在问题末尾添加一个触发模型生成推理链的指令短语,如 “Let"s think step by step.” 或 “请一步步推理。”。模型接收到这个指令后,会首先生成推理步骤,然后在推理步骤的末尾生成最终答案。这种方式简便,但效果通常不如 Few-Shot CoT 稳定和强大,尤其对较小或能力较弱的模型。
思维链自提出以来,迅速成为大模型推理研究的核心方向之一,催生了大量相关工作和变体。在思维链(CoT)的发展历程中,有三篇论文的地位举足轻重,它们分别代表了“开创奠基”、“零样本突破”和“结构拓展”三个关键节点。
(1)Chain of Thought Prompting Elicits Reasoning in Large Language Models (Wei et al., NeurIPS 2022)
这篇论文正式提出了思维链(CoT)的概念。它证明了通过在提示中给大模型展示几个带有详细推理步骤的示例(即Few-shot CoT),就能极大地激发模型在算术、常识和符号推理等复杂任务上的表现。它的突破在于,发现大模型的推理能力可以通过这种方式被“涌现”出来,无需修改模型本身。
(2)Large Language Models are Zero-Shot Reasoners (Kojima et al., NeurIPS 2022)
第一篇论文需要人工编写推理示例,而这篇论文发现了一个更简单的方法。只需在问题后加上一句神奇的提示语——“Let"s think step by step”(让我们一步步思考),即便不提供任何示例(Zero-shot),也能让模型自动生成推理链并显著提升准确率。这让CoT技术从一个需要精心设计示例的“手艺活”,变成了一个可以大规模应用的“咒语”,极大地推动了普及。
(3)Tree of Thoughts: Deliberate Problem Solving with Large Language Models (Yao et al., ArXiv preprint 2023)
传统的CoT是线性的“链条”,容易一条道走到黑。这篇论文将推理过程从链状结构升级为树状结构(Tree of Thoughts)。它允许模型在每一步探索多条不同的推理路径,并能评估、回溯,选择最优的路线继续思考。这更接近人类解决复杂问题时的“试错与规划”模式,为后续更复杂的思维图(GoT)等研究打开了全新的方向。
这个效果之所以神奇,核心在于它把一个直觉反应,变成了有依据的推理。你可以把大模型想象成一个超级快但很马虎的心算高手。你直接问难题,它靠的是瞬间的“直觉”和记忆匹配,很容易被数字或逻辑陷阱带偏,这就是“一步到位”的风险。而加入人工编写的推理步骤(思维链),相当于给了它一张草稿纸,强迫它慢下来。这带来了三个关键改变:
(1)分解复杂问题:它把一道大题拆成了几道简单的小题,每道小题模型闭着眼都能算对,正确率自然远高于直接去蒙那个复杂的最终答案。
(2)把隐式知识显性化:直接问它“A是B的谁”,它需要在大脑里凭空运算。但有了思维链,它会先在草稿纸上写“因为A是C,C又是B,所以A是B”,把藏在神经元里的关系一步步画出来,逻辑漏洞就无所遁形了。
(3)自我修正:大模型每生成下一个词,都要回看上文。如果它生成的“因为”和“所以”已经写在对话里了,后文就会顺着这个逻辑往下推,发现矛盾时更容易及时刹车调整,而不是一条道走到黑。
简单说,思维链是把大模型从“凭感觉快答”强行扭转为“展示推导过程”,性能自然就显著提升了。