上个月写过一篇 few-shot:同一个大模型,在提示词里塞几个例子,效果就能上一个台阶。发出去之后有读者追问:例子非得带「解题过程」吗?只给问题和答案行不行?
这个问题问到点子上了。今年年初,我司有个做智能客服的团队就吃过这个亏。他们的排查机器人总在第二步算错运费,改了两个月提示词没起色,后来只是把例子改成带步骤的写法,一次通过率从 54% 涨到 83%。没换模型,没加预算,就改了例子的写法。
今天这篇就把这件事讲透:什么是思维链(Chain-of-Thought,简称 CoT),为什么「一步步想」比直接要答案管用,以及零样本场景下一句「让我们一步一步思考」到底值多少分。
先看一道不需要代码的数学题
小学应用题:小明去小店买东西,付了 50 元,买了一套 24 元的笔记本,老板要找他多少钱?
这题你口算就能出 26。但大模型不这么干活,它是逐个 token 往外蹦的,每生成一个字都是一次概率预测。要求它一口气输出最终答案,等于让它把「读题、列式、计算」压缩进一次预测里,中间哪一步出错,后面就一路错下去。
思维链的做法是让模型把中间步骤写出来。每写一步,输出就并回输入,模型算下一步时能「看着」前面刚写的内容,等于发草稿纸。草稿纸上的每个数字都带着概率,会错,但错的只有那一步,检查和修正都有抓手。
这不是玄学,是论文里有数字的结论。2022 年 1 月,Google 的 Jason Wei 等人发了那篇著名的 Chain-of-Thought Prompting 论文(arXiv 2201.11903),九位作者。他们拿 5400 亿参数的 PaLM 做实验:同一个数学题基准 GSM8K,只给 8 个带解题步骤的例子,直接超过了当时经过微调的 GPT-3 加验证器的成绩,拿到当时的最好结果。
顺带说一句,这个能力对模型规模有要求,小模型给了带步骤的例子也学不像,论文里管这叫「涌现」。你手里如果是 7B 级别的小模型,思维链未必见效,别硬套。
不给例子,一句提示词也行
上面的玩法要手写高质量例子,例子写得糙,效果就打折。2022 年 5 月,东京大学的 Kojima 等人往简单了一路走:什么例子都不给,就在问题后面加一句「Let's think step by step」(让我们一步一步思考)。
别小看这一句。他们的论文(arXiv 2205.11916)里有个对比,同一批数学题:
- MultiArith 基准:正确率从 17.7% 涨到 78.7%。
- GSM8K 基准:正确率从 10.4% 涨到 40.7%。
什么都没多给,一句提示词翻了四倍多。业内管这叫 Zero-shot-CoT,加上 2201 那篇的手写例子版,思维链的两大玩法就齐了:
- Few-shot CoT:例子里带步骤,模型照着写,麻烦但稳,适合成规模的调用。
- Zero-shot CoT:一句「一步一步思考」,零成本,效果因模型而异,先用它试水。
顺带把概念掰清:few-shot 是「给例子」,CoT 是「给过程」。两个词经常一起出现,但说的是两件事,可以只用其中一,也可以叠加用。这正是上篇 few-shot 文章里埋的钩子,这篇补上。
3 个真实场景,从「瞎猜」到「看得出错在哪」
概念讲完,说说我自己天天在用的地方。
场景一:数学和账单。谁提思维链都绕不开数学题,因为这是它最拿手的。我自己常拿它对账单:把一堆含税价、折扣、运费混在一起,让模型一步步列式。它可能算错,但错在哪一步看得清清楚楚,指出来重算就行。
场景二:逻辑题和排查问题。「甲乙丙三人只有一人说真话」这类题,让 AI 瞎猜十次错九次。让它把每个人的话列成表格一步步推,正确率肉眼可见地上来。查问题也一样,我见过同事把报错日志喂给模型加一句「一步步分析」,排直弯路,省了不少时间。
场景三:写代码。先让模型把解题思路用注释写出来,思路顺了再动手写。思路错了你一眼能看出来,改思路比改代码便宜。有模型自带「思考」模式(推理模型),不开的时候,提示词层面自己加上 CoT 效果也会好一点。
两个坑别踩
坑一:AI 会编过程。思维链能提升推理成绩是真的,但它写出来的步骤不一定是它「真实的计算过程」。模型完全可能先猜中答案,再倒着编一套像模像样的过程。忠实性(faithfulness)研究这块讨论很多,结论并不统一。实际使用里我的建议是:关键数字自己动手验算。
「AI 会编过程」还有一个更常见的场景:数据不够、证据不足时,它会顺着问题编一条通顺的故事线,过程看着挺合理,起点就是错的。所以加一句「只根据我给的材料推理,材料里没有的就说不确定」,再让它一步步来,瞎编的情况能少不少。
坑二:别用在意想不到的地方。CoT 不是万能开关。写一首诗、起个标题、把这段话改得委婉些,直接说需求就行,强行加「让我们一步一步思考」反而容易把简单任务复杂化。判断标准很简单:这道题你人工做时需不需要草稿纸?需要,就用 CoT;不需要,就别加。
和推理模型是什么关系
2024 年之后的推理模型(o1、DeepSeek-R1 这类)出来后,有人问 CoT 是不是过时了。没有。推理模型可以理解为「思维链内置化」:你不说它也会先想后答。但提示词层面的 CoT 依然有用,比如非推理模型的 API,或者推理模型没开思考模式的时候,自己写「一步步来」依然能换来更好的结果。推理模型什么时候用、怎么省钱,我写过一篇推理模型什么时候用、怎么省钱,这里不展开。
把这几天讲的概念串一下:few-shot 给例子,CoT 给过程,两个叠加效果更好;推理模型把「过程」内置了,但提示词层面的手法没有失效。下次遇到「AI 一算多步就翻车」的任务,先想想这道题需不需要草稿纸。