本文系统梳理思维链(CoT)技术在大模型推理中的演进路径,解析其在数学推理、逻辑决策等场景的革新性突破,并探讨技术瓶颈与未来发展方向。

前言

AI 圈大型魔幻的玄学现场,搞大模型的程序员集体变身功德箱狂魔 —— 每天烧着八位数电费炼丹,就为等模型 “显灵” 的那一刻。

人们一直在琢磨,怎么才能让大模型 “涌现”。

所谓 “涌现”,在大模型领域指的是当模型突破某个规模时,性能显著提升,表现出让人惊艳、意想不到的能力。比如语言理解能力、生成能力、逻辑推理能力等。一般来说,模型在 100 亿(10B) 到 1000 亿(100B) 参数区间,可能产生能力涌现。

但老话说得好 “氪不救非,玄不改命”。靠砸钱和运气,只一味把模型做的大大大,未必能让 AI “显灵”。

往功德箱里砸硬币 —— 心诚则灵?

强大的逻辑推理是大语言模型 “智能涌现” 出的核心能力之一,好像 AI 有了人的意识一样。而推理能力的关键,在于一个技术 —— 思维链(Chain of Thought,CoT)。

什么是 CoT

CoT 本质是给 AI 安装 “戏精系统”,强行加戏中间推理步骤。结果却意外发现这帮 AI 原来不是学渣,是故意装傻的影帝!

在大模型 (LLM) 领域,CoT 指 Chain-of-Thought,也常被称作思维链,是一种大模型提示技巧,被认为最具开拓性和影响力的提示工程技术之一。与传统的提示方法强调直接的输入和输出互动不同,CoT 迫使模型将推理过程划分为中间步骤,像老师逼着学霸写解题过程:你可以心算得出答案,但必须把‘解:设未知数为 X…’一步步写出来,否则扣分!!!

通过一系列的中间步骤进行推导,逐步的生成最终答案。CoT 思想十分符合人类的思思维逻辑:一步一步推导计算得出的数学题的答案,显然比直接写一个结果要靠谱的多。

CoT 如何突破大模型推理瓶颈?

虽然从时间维度看,尽管 CoT 的概念早在 2022 年就已提出,但因为这项技术应用不深,加上在 Input 和 Output 过程中增加多步推理会增加相应的计算时间和算力成本,CoT 当时并没有受到太大关注。

直到 2023 年以来,大语言模型在算术、常识、符号推理等任务上越发面临瓶颈,同时人们对大模型解决复杂任务的需求呼声越来越高,以 CoT(思维链)为代表的大语言模型提示推理技术逐渐受到重视,并开始嵌入到主流的大模型的训练或推理中,成为显著提高大模型在算术、常识、符号推理等任务上的性能的关键技术。

那么,CoT 究竟如何突破了大模型的推理瓶颈。

谷歌之前在大模型下了很大功夫,GPT 生成式预训练模型中的 “T”,也就是 Transformer,就是谷歌大脑搞出来的。但是,预训练 + 精调的大模型搞了几年,仍然没办法很好地完成多步骤推理任务,比如数学问题和常识推理。

理想很丰满,现实很骨感,某些千亿参数的巨无霸模型做题水平还不如小学生。直到某个谷歌叛将(划掉)天才研究员 Jason Wei,在功德箱里塞了张写着 “解:设…” 的小纸条 —— 思维链(CoT)横空出世!

思维链的提出者 Jason Wei 起初是 谷歌大脑的高级研究员,在任职期间,提出了思维链的概念,发现思维链可以在大语言模型中增强推理能力。2023 年 2 月他离开谷歌,加入了 OpenAI,进入 ChatGPT 团队,这也是思维链在 OpenAI 发扬光大,让 ChatGPT 拔得头筹的原因之一。

  • 常识推理能力赶超人类。以前的语言模型,在很多挑战性任务上都达不到人类水平,而采用思维链提示的大语言模型,在 Bench Hard (BBH) 评测基准的 23 个任务中,有 17 个任务的表现都优于人类基线。比如常识推理中会包括对身体和互动的理解,而在运动理解 sports understanding 方面,思维链的表现就超过了运动爱好者(95% vs 84%)。
  • 数学逻辑推理大幅提升。一般来说,语言模型在算术推理任务上的表现不太好,而应用了思维链之后,大语言模型的逻辑推理能力突飞猛进。MultiArith 和 GSM8K 这两个数据集,测试的是语言模型解决数学问题的能力,而通过思维链提示,PaLM 这个大语言模型比传统提示学习的性能提高了 300%!在 MultiArith 和 GSM8K 上的表现提升巨大,甚至超过了有监督学习的最优表现。这意味着,大语言模型也可以解决那些需要精确的、分步骤计算的复杂数学问题了。
  • 大语言模型更具可解释性,更加可信。我们知道超大规模的无监督深度学习,打造出来的大模型是一个黑盒,推理决策链不可知,这就会让模型结果变得不够可信。而思维链将一个逻辑推理问题,分解成了多个步骤,来一步步进行,这样生成的结果就有着更加清晰的逻辑链路,提供了一定的可解释性,让人知道答案是怎么来的。Jason Wei 这位奇男子提出的思维链,可以说是大语言模型惊艳世界的必要条件。

发展关系

  • Few-shot → Zero-shot → CoT-SC→ ToT→CoAT
  • CoT-SC 是对 CoT 进行增强,使其更加稳定可靠。
  • ToT 则借鉴了 CoT 和 CoT-SC 的思想,并进一步结构化,使推理过程更像搜索和规划。
  • 从 Few-Shot 到 ToT 的演进,本质是推理过程从线性向结构化转变。而 COAT 的出现,标志着这一进程进入自我优化阶段 —— 模型不仅能规划推理路径,还能动态评估路径质量并重启搜索。

从 Few-shot 到 ToT 的演进,不仅是技术形式的迭代,更是推理范式从被动响应到主动规划的跃迁。以下将逐层解析各阶段的核心突破

Few-shot-CoT

区别于传统的 Prompt 从输入直接到输出的映射 input—>>>output 的方式,CoT 完成了从输入到思维链再到输出的映射,input—>>>reasoning chain—>>>output。如果将使用 CoT 的 Prompt 进行分解,可以更加详细的观察到 CoT 的工作流程。

一个完整的包含 CoT 的 Prompt 往往由指令(Instruction) ,逻辑依据(Rationale) ,示例(Exemplars)三部分组成。

  • 指令:用于描述问题并且告知大模型的输出格式;
  • 逻辑依据:指 CoT 的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识;
  • 示例:指以少样本的方式为大模型提供输入输出对的基本格式,每一个示例都包含:问题,推理过程与答案。

核心是通过人工编写包含问题、详细推理步骤和答案的示例(demonstrations),引导大语言模型生成中间推理链以解决复杂任务。 这一方法被归类为 Few-shot-CoT,即需要提供少量示例来激发模型的推理能力

以一个数学题为例:


可以看到模型无法做出正确的回答。但如果说,我们给模型一些关于解题的思路,就像我们数学考试,都会把解题过程写出来再最终得出答案,不然无法得分。CoT 做的就是这件事!

Zero-Shot-CoT

Few-shot-CoT 通过人工示例引导推理,显著提升了模型性能。然而,这种方法在开放域任务中面临挑战 —— 当缺乏高质量示例时,模型表现可能大幅下降。为此,研究者进一步提出了零样本思维链(Zero-shot-CoT),试图仅通过自然语言指令激活模型的推理能力

零样本思维链(Zero Shot Chain of Thought,Zero-shot-CoT)提示过程是对 CoT prompting 的后续研究,引入了一种非常简单的零样本提示。他们发现,通过在问题的结尾附加 “Let’s think step by step” 这几个词,大语言模型能够生成一个回答问题的思维链。从这个思维链中,他们能够提取更准确的答案。

用‘Let’s think step by step’激活 Zero-shot-CoT,本质上和对着路由器疯狂磕头念叨‘求求你快连上’没啥区别 —— 但神奇的是,它居然真 TM 管用!

这么牛逼?哄一哄它它就生成解题过程和答案?AI:我这么好骗的吗?

其实 Zero-shot-CoT 是一个 pipeline。也就是说 “Let’s think step by step” 这句话,只是通过这个 prompt 让 LLM 尽可能生成一些思考过程,然后再将生成的 rationale(理由) 和 question 拼在一起,重新配合一个 answer 指向的 prompt 如 “The answer is ” 来激励模型生成答案。

从技术上讲,完整的零样本思维链(Zero-shot-CoT)过程涉及两个单独的提示 / 补全结果。在下图中,左侧生成一个思维链,而右侧接收来自第一个提示(包括第一个提示本身)的输出,并从思维链中提取答案。这个第二个提示是一个自我增强的提示。

Chain-of-Thought-Self-Consistency

尽管 Zero-shot-CoT 摆脱了对人工示例的依赖,但其生成的单一路径仍存在可靠性问题:一步错误可能导致全局崩溃。就像你要去广东,但是你错上了去广西的车,最终只会有人叫你 diao 毛,没有人会叫你靓仔!!!

Self-Consistency Improves Chain of Thought Reasoning in Language Models

这篇文章是 CoT 后很快的一个跟进工作,是 CoT 系列改进的重要一步,在 2022 年 3 月在 arxiv 上被放出来。文章提出的方法叫 思维链自一致性(Chain-of-Thought-Self-Consistency,也缩写成 CoT-SC),是对 CoT 的自然扩展

传统 CoT 依赖单一路径生成中间推理步骤,容易因某一步骤错误导致最终答案错误;这篇文章几乎用的和 CoT 完全一样的数据集和设置,主要改进是对答案进行了多数投票(majority vote),并且发现其可以显著地提高思维链方法的性能。 Self-Consistency 通过构建多个思维链,对每个思维链进行评估,最终选择最有效、最连贯的思维链。

想象 CoT-SC 是让 AI 召唤多重影分身

  • 分身 1(钢铁侠):用微积分狂炫技,三步解出答案;
  • 分身 2(美队):坚持传统数学公式,规规矩矩推导;
  • 分身 3(浩克):暴力穷举所有可能性,算力爆炸…

最后,AI 本体像灭霸一样打个响指,把分身们的答案收束成唯一真理 —— 哪个答案票数多,谁就是正确答案!

示例: 一个简单的使用实例

通过多次调用模型生成多条推理链。例如:

1
2
3
4
5
6
7
8
9
问题:小明有5个苹果,吃了2个,还剩几个?
思考过程1:第一步,小明最初有5个苹果;第二步,小明吃了2个苹果;第三步,5 - 2 = 3。
答案1:3个苹果。

思考过程2:第一步,小明有5个苹果;第二步,吃掉2个后剩下3个。
答案2:3个苹果。

思考过程3:第一步,5个苹果减去2个等于3个。
答案3:3个苹果。

-对多条推理链的答案进行投票或加权平均,选择高频答案(如 “3”)。

Tree-of-Thoughts

如果把 CoT 看作 “让模型学会思考”,CoT-SC 是 “让模型更自洽地思考”,而 ToT 则是 “让模型像人一样灵活地思考”,具备搜索、评估和优化能力。

ToT 的提出标志着 CoT 技术从线性推理向结构化搜索的跨越,为后续多模态推理奠定了基础

CoT-SC 通过多路径验证提升了推理的稳定性,但其生成的路径彼此独立,缺乏全局规划能力。受此启发,研究者提出了树状思维链(Tree of Thoughts, ToT),将线性推理扩展为结构化搜索,使模型能够像人类一样动态调整推理路径。

如果说 CoT 是让 AI 沿着一条路走到黑,ToT 就是给 AI 装上‘分身术’:遇到岔路口时,派几个分身去探路,最后选一条最靠谱的走。

让 AI 学会分身术探路,不亚于把解题玩成密室逃脱:选 A 门还是 B 门?分头行动!这条路不通?时空回溯!

Tree-of-Thoughts (ToT) 的演进依赖于 Chain-of-Thought (CoT)Self-Consistency (CoT-SC) 的思想,但它并非直接继承,而是在这些技术的基础上进行了创新和扩展。

CoT-SC 通过生成多条推理链并集成答案,提升了模型的鲁棒性。ToT 借鉴了这种多路径思想,但将其扩展为树状结构,支持更复杂的路径探索与优化。

CoT-SC 的多路径推理是独立生成的,路径之间缺乏显式关联,而 ToT 通过树状结构将多路径关联起来,支持更复杂的全局规划。

ToT 中搜索算法的选择需权衡任务特性:

  • 广度优先搜索(BFS):适用于路径深度有限但分支较多的任务(如代码纠错)。
  • 深度优先搜索(DFS):适合需长程规划的场景(如复杂数学证明)。
    注意:CoT-SC 是独立路径,ToT 是结构化树状路径

ToT 以树的形式组织其解决问题的策略。每个节点都被称为 “思维”,是一个连贯的语言序列,是通往最终答案的一步。通过将问题划分为离散的 “思想” 单元 —— 从填字游戏中的一系列简短单词到数学方程的一个组成部分 ——ToT 确保问题的每个阶段都得到系统的解决。

ToT 的优势在于其有条不紊的组织。首先,系统会将一个问题分解,并生成一个潜在推理步骤或 “思维” 候选者的列表。然后,对这些想法进行评估,系统会衡量每个想法产生所需解决方案的可能性。

为了帮助模型识别最有效的思维序列,系统使用了常用的搜索算法,比如广度优先搜索(BFS)和深度优先搜索(DFS)。

ToT 的重要性在于它的整体设计、适应性和效率都很高。其中,思维链提示是 ToT 框架中的一个特定实例。它的模块化性质意味着各个组件可以独立运行,包括问题的初始分解和所使用的搜索算法。

ToT 的树状搜索机制,本质上是通过对推理路径的显式规划,模拟人类解决问题的试错过程。以 24 点游戏为例,其完整的推理流程如下:

24 点游戏(概述版)

1
2
3
4
5
问题:用数字2、3、4、6和加减乘除得到24。
当前状态:2, 3, 4, 6
下一步操作1:2 + 3 = 5;剩余数字:4, 6
下一步操作2:2 * 3 = 6;剩余数字:4, 6
下一步操作3:4 + 6 = 10;剩余数字:2, 3
  • 结果:通过搜索算法找到最优路径 “2 * 3 = 6;6 * 4 = 24”。

24 点游戏(详解版)

目标:用数字 2、3、4、6 和加减乘除(每个数字用一次),得到 24

ToT 的完整推理流程

  1. 定义节点与状态
  • 根节点:初始状态为可用数字 [2, 3, 4, 6],目标为 24
  • 中间节点:每次操作生成的新数字组合(如 2+3=5 → 剩余数字 [4, 5, 6])。
  • 叶节点:最终状态(如只剩一个数字,判断是否等于 24)。
  1. 生成可能的中间步骤(分支扩展)

模型在每一步生成所有可能的操作,例如:

第一步操作(初始状态 [2, 3, 4, 6]):

  • 操作 1:2 + 3 = 5 → 剩余数字 [4, 5, 6]
  • 操作 2:2 × 3 = 6 → 剩余数字 [4, 6, 6]
  • 操作 3:4 + 6 = 10 → 剩余数字 [2, 3, 10]
  • 操作 4:6 ÷ 2 = 3 → 剩余数字 [3, 3, 4]
  • …(其他可能的操作)
  1. 搜索与回溯(选择最优路径)

ToT 会尝试所有可能的路径,并选择最终能达成目标的路径。以下是两种典型路径的对比:

路径 1:错误尝试

  1. 第一步2 + 3 = 5 → 剩余 [4, 5, 6]
  2. 第二步5 + 4 = 9 → 剩余 [6, 9]
  3. 第三步6 + 9 = 15失败(15 ≠ 24)

结论:此路径无法达成目标,需回溯到上一步。

路径 2:成功路径

  1. 第一步2 × 3 = 6 → 剩余 [4, 6, 6]
  2. 第二步6 × 4 = 24 → 剩余 [6, 24]
  3. 第三步24 ÷ 6 = 4失败(但此时已生成 24,提前终止)

结论:在第二步已生成 24,提前终止并返回成功路径: 2 × 3 = 6 → 6 × 4 = 24

ToT 的 Prompt 设计

实际使用时,Prompt 需要引导模型生成中间状态并评估路径可行性。例如:

1
2
3
4
5
6
7
8
9
10
问题:用数字2、3、4、6和加减乘除得到24。
当前可用数字:[2, 3, 4, 6]
请生成所有可能的下一步操作:
- 操作1:2 + 3 = 5 → 剩余数字:[4, 5, 6]
- 操作2:2 × 3 = 6 → 剩余数字:[4, 6, 6]
- 操作3:4 + 6 = 10 → 剩余数字:[2, 3, 10]
- 操作4:6 ÷ 2 = 3 → 剩余数字:[3, 3, 4]

请选择最有可能达成目标的路径:
(模型通过搜索算法选择操作2 → 继续生成下一步操作)

优势:

  • 全局规划能力超越 CoT 和 CoT-SC,适合需多步回溯的任务(如代码生成、游戏策略)。

前沿探索

Graph-of-Thoughts

将树结构演化为直接非循环图,引入了自我循环。自我循环可以巩固一条特定的思路,也可以将多个想法聚合成一个连贯的思路。

思维图(GoT)框架CoTToT 方法的更进一步。

在 GoT 中,一个 LLM 思想被建模为一个顶点,而一条边是这些思想之间的依赖关系。使用 GoT,人们可以通过构造具有多个传入边的顶点来聚合任意的思想。总的来说,GoT 所使用的图抽象无缝地将 CoT 和 ToT 概括到更复杂的思维模式,而不诉诸于任何模型更新。

GoT 框架的核心是将思想概念化为有向无循环图(DAG)中的顶点

在这种情况下,每个顶点都对应于输入刺激引发的特定想法解决方案,无论是初步的、中间的还是最终的。

图中的有向边描述了这些思想之间的相互依存关系。具体地说,如果一条边从思维 t1 延伸到 t2,则表示 t2 是基于 t1 构思的。

这种系统化允许思想的多样性,因为节点可以分为不同的类别,如 “计划” 或 “结果”。

GoT 的新颖之处在于它能够对这些想法进行转换,进一步完善推理过程。主要的转变包括

  • 聚合,即将几个想法融合成一个统一的想法;
  • 精化,对单个思想进行连续迭代,以提高其精度;
  • 生成,有利于从现有思想中产生新的思想。

这种转换强调推理路线的融合,相对于之前的 CoT 或 ToT 模型,提供了更复杂的观点。

此外,GoT 引入了一个评估维度,通过评分和排名来对每个单独的想法进行评估。每个想法都由顶点表示,并根据其相关性和质量进行评估。

评估过程中,考虑了整个推理链,并分配了可能与图中其他顶点相关的分数。

这个框架还允许系统根据分数对这些想法进行分级,这对于确定哪些想法值得优先考虑或实施非常有用。

Graph-of-Thoughts(GOT)主要适用于需要多步逻辑推理和非线性思考的复杂任务场景。具体来说,它在以下场景中表现尤为突出:

  • 数学与逻辑推理:例如解决排序问题、数学证明、多步算术问题、24 点游戏等任务,GOT 能够通过聚合和回溯多个思维节点来提高推理准确性。
  • 任务分解与规划:在需要将复杂问题拆分为多个子任务,再整合子任务结果的场景(如文档合并、集合运算、复杂计划制定等),GOT 的图结构能更灵活地捕捉各个子任务之间的依赖关系。
  • 多模态和检索增强应用:在涉及多模态信息或者需要结合外部知识库进行事实核查和生成时,GOT 也可作为一种增强推理的机制,通过非线性整合多个信息来源来提高答案的可信度和准确性。
  • 代码调试与算法设计:对于需要逐步展开和验证不同逻辑分支的编程或算法问题,GOT 能够帮助模型更系统地探索问题解决路径,进而生成更合理的解决方案。

示例

示例问题:

示例提示词(Prompt):

1
2
3
4
5
6
7
8
9
10
11
12
13
请以“图的思维”(Graph-of-Thoughts)的方式详细展示你的推理过程,要求如下:
1. 将整个推理过程分解成若干个“节点”,每个节点代表一个独立的思考步骤;
2. 用箭头 “->” 表示节点之间的依赖关系(即后续节点基于前面节点的信息生成);
3. 对于每个节点,请给出简短的描述,并说明该步骤的主要逻辑或公式推导;
4. 最后,请将所有节点的信息进行聚合,给出最终证明的结论。

例如,输出格式如下:
节点1:【问题分析】说明问题的关键点,例如指出需要证明不等式对于 \( n \geq 5 \) 成立;
节点2:【基础验证】计算 \( n=5 \) 时 \( 2^5 \) 与 \( 5^2 \) 的大小,验证初步成立情况(节点1 -> 节点2);
节点3:【归纳假设】假设对于 \( n=k \) 时不等式成立,说明归纳假设(节点2 -> 节点3);
节点4:【归纳证明】证明 \( n=k+1 \) 时不等式依然成立,解释归纳步骤(节点3 -> 节点4);
节点5:【结论聚合】整合所有思路,给出最终证明结论。
现在,请用这种图的方式详细展示你的推理过程,并给出证明的结论。

Algorithm-of-Thoughts

ToT 和 GoT 是通过基于搜索的机制来解决 LLM 推理的挑战的。它们能够生成许多图形形式的推理路径。然而,这两种方法都非常依赖于大量的 LLM 查询。有时,单个问题的查询数量甚至可以达到数百个。这导致了计算效率的下降。

思维算法(AoT) 是一种创新的方法,它具有动态和可变的推理路径。AoT 的核心思想是通过不断演化和改进思考过程,从而达到更好的推理结果。通过维持一个单一的不断发展的思维上下文链,AoT 巩固了思想探索,提高了效率并减少了计算开销。这种方法的优势在于它能够灵活地适应不同的问题和情境,并且能够根据需要进行调整和优化。

除此之外,受 “LLM 遇到熟悉的新问题时,偶尔会求助于以前的解决方案” 启发,AoT 吸收了上下文中的例子,从经过时间考验的搜索算法中提取,如深度优先搜索 (DFS) 和广度优先搜索 (BFS)。通过模拟算法行为,AoT 强调了实现成功结果和从失败尝试中收集见解的重要性。

AoT 包括四个主要组成部分:

1)将复杂问题分解为可理解的子问题,同时考虑它们的相互关系和单独解决的容易程度;

2)以连续和不间断的方式为这些子问题提出连贯的解决方案;

3)直观地评估每个解决方案或子问题的可行性,而不依赖于明确的外部提示;

4)根据上下文示例和算法指南,确定最有希望探索或回溯的路径。

Skeleton-of-Thought

思维框架(SoT)范式的独特设计主要是为了减少端到端生成延迟的挑战,而不是为了增强大型语言模型(LLM)的推理能力

SoT 的想法源于 LLM 和人类处理信息的方式的区别。

按顺序生成答案,而人类在很多情况下,会先提炼出答案的骨架,然后添加细节来解释每一点。SoT 就是按照这种人类的思维方式,将生成过程分为两个阶段:首先,SoT 让 LLM 生成答案的骨架,然后再让 LLM 给出骨架中每一点的答案。

在最初的骨架阶段中,系统不会生成全面的响应,而是提示模型生成简洁的答案骨架。通过精心制作的骨架模板,这种缩写表达抓住了预期答案的核心元素,从而为下一阶段奠定了基础。

在接下来的扩展阶段中,LLM 系统会对答案骨架中的每个组成部分进行放大。它利用点扩展提示模板,同时阐述骨架的每个片段。

这种二分法将生成过程分为两个步骤:首先是生成初步的骨架公式,然后是并行进行详细扩展。这种方法不仅可以加快响应生成的速度,还可以努力维护输出的一致性和准确性。

SoT 进行独立且并行的点扩展。因此,它不适用于需要逐步推理的问题,例如数学和编码。

为此,我们提出了 SoT 的扩展,称为带路由的 SoT(SoT-R),它只在适当时自适应地触发 SoT。

Program-of-Thoughts

将问答背后的推理过程公式化为一个可执行程序,将程序解释器输出作为最终答案的一部分。

** 思维程序(PoT)** 是一种独特的 LLM 推理方法。旨在提升大型语言模型(LLM)在数值推理任务中的表现。与传统的思维链(Chain-of-Thought,CoT)提示不同,PoT 通过引导模型生成可执行的 Python 代码来表示推理过程,然后利用 Python 解释器执行这些代码以获得结果。这种方法将计算与推理分离,提高了模型在复杂数值推理任务中的准确性和效率。

与直接模型相比,这种方法强调将推理分解为顺序步骤,并将语义与变量相关联的能力。因此,PoT 提供了一个更清晰、更具表达力和基础的答案推导模型,提高了准确性和理解力,尤其是对于需要进行数值计算的数学类型逻辑问题。

需要注意的是,PoT 的程序执行不一定针对最终答案,而是可以作为最终答案的中间步骤的一部分。

核心思想

  1. 代码即推理:将问题的解决过程转化为可执行的程序代码(例如生成 Python 脚本),利用代码的精确性和计算能力弥补纯文本推理的不足。
  2. 外部执行:生成的代码在外部环境(如 Python 解释器)中运行,直接输出结果,避免自然语言描述的模糊性。
  3. 分工协作:LLM 负责理解问题并生成代码,外部工具负责执行计算,两者结合提升复杂任务的准确性

适用场景:

  1. 复杂数值计算:PoT 通过生成可执行的 Python 代码,将复杂的数值计算任务交由 Python 解释器执行,避免了大型语言模型在处理复杂计算时可能出现的错误,提高了计算的准确性。
  2. 多步骤推理:在需要多步骤推理的问题中,PoT 能够将问题分解为多个可执行的代码片段,逐步解决子问题,增强了模型的推理能力。
  3. 数学和金融领域:研究表明,PoT 在数学问题(如 GSM8K、AQuA 等数据集)和金融问题(如 FinQA、ConvFinQA 等数据集)上,相较于传统的思维链(CoT)方法,表现出更高的准确性。

Chain-of-Action-Thought

最新黑科技 COAT 已经能让 AI 边做题边改错,像极了学霸做完卷子还要给自己出模拟题。某些小模型靠着这套 “作弊器” 居然反杀 GPT-4,AI 圈即将进入 “内卷修仙” 时代。

ToT 的树状搜索虽实现了结构化推理,但其搜索过程仍需依赖人工设计的启发式规则。为突破这一限制,研究者开始探索模型的自我优化能力。实现启发式搜索时,关键挑战在于让 LLM 能够在没有外部干预的情况下,判断何时进行反思、继续推理,或是探索替代方案。

Satori: Reinforcement Learning with Chain-of-Action-Thought Enhances LLM Reasoning via Autoregressive Search

2025 年 MIT 与哈佛团队提出的「行动 - 思维链」(Chain-of-Action-Thought, COAT)技术,标志着 CoT 进入自我优化新阶段,AI 也要 “三省吾身”。

该框架有以下特点:

  • ** 启发式搜索能力:** 使其能够在没有外部指导的情况下自我反思并自我探索替代策略
  • 元动作标记设计:引入 <|continue|>, <|reflect|>, <|explore|> 等特殊 token,赋予大模型动态调整推理策略的能力
    • 继续推理(<|continue|>):鼓励模型生成下一个中间步骤。
    • 反思(<|reflect|>):验证之前的推理步骤是否正确。
    • 探索替代方案(<|explore|>):识别推理中的漏洞并探索新的解决方案。
  • 两阶段训练机制:先通过 10k 级小数据格式调优掌握推理范式,再采用重启探索 (RAE) 强化学习实现自我优化
    • 小规模格式调优阶段:在少量推理轨迹示例的小数据集上进行微调,使模型熟悉 COAT 推理格式。
    • 大规模自我优化阶段:通过强化学习(RL)优化模型性能,采用重启与探索(RAE)技术,提升模型的启发式搜索能力。
  • 迁移能力突破:在 GSM8K 数学数据集上,7B 参数的 Satori 模型正确率达 83.6%,超越 GPT-4 的 78.2% 这验证了 “小模型 + 精细推理架构” 替代纯参数扩展的可能性

小结

技术演进:需求倒逼创新的四个阶段

发展阶段 待解问题 关键技术突破
前 CoT 时代 复杂推理任务准确率 < 30% 传统端到端提示
Few-shot 需要显式引导推理路径 人工编写分步示例
Zero-shot 开放域任务无示例可用 “Let’s think step by step” 触发
CoT-SC 单一路径可靠性不足 多路径自洽验证
ToT 线性推理缺乏全局规划 树状搜索 + 回溯机制

从时间顺序和技术演进来看,Few-shot-CoT 是 CoT 技术的起点,而 Zero-shot-CoT 是其自然延伸。两者的差异反映了研究者对大模型能力认知的深化:从依赖显式引导(Few-shot)到挖掘隐式能力(Zero-shot)。

思维链(Chain-of-Thought, CoT)技术不仅提升了模型的推理能力,还为我们提供了一个观察模型内部推理过程的窗口,从而帮助我们理解模型犯错的原因,并为进一步优化模型提供了机会。

CoT 一定程度上解决了 传统模型的 “黑箱” 问题,CoT 技术通过引导模型生成中间推理步骤(如 “第一步:……;第二步:……”),将模型的思考过程显式化。这使得我们能够清晰地看到模型是如何一步步推导出最终答案的。通过 CoT 生成的推理步骤,我们可以逐条检查模型的思考过程,从而定位错误发生的具体环节。通过分析 CoT 生成的推理步骤,我们可以发现模型的弱点,并针对性地改进模型。这种透明性使得 CoT 不仅是一种推理工具,更是一种分析和改进模型的强大手段。

应用场景

  1. 数学推理 在复杂的数学问题中,逐步推理有助于模型正确计算。例如,解决方程、计算面积等问题。
  2. 逻辑推理 处理逻辑谜题或需要逻辑推导的问题时,CoT 可以确保模型按照逻辑顺序推断。
  3. 问答系统 CoT 技术可以提高问答系统对复杂问题的回答准确性,特别是需要综合信息的问题。
  4. 代码生成与调试 通过逐步描述编码逻辑,模型可以更准确地生成代码或进行代码修复。
  5. 高风险决策支持 法律文书审查:通过思维链分解法律条款适用性(如合同纠纷中的过错认定步骤) 医疗鉴别诊断:展示病症推理路径供医生交叉验证(需配合知识图谱约束) 自动驾驶决策:记录突发路况的处置逻辑链,满足法规可追溯要求

CoT 的优势

  1. ** 提高准确性:** 逐步推理可以减少模型在复杂问题上的错误率,尤其是在数学和逻辑问题中。
  2. 增强解释能力: CoT 提供了解答过程的可解释性,用户可以清晰地理解模型是如何得出答案的。
  3. 适应多步骤任务: CoT 特别适用于需要多步骤推导的问题,如数学计算、逻辑推理和因果推断。

CoT 的局限

尽管 CoT 在数学推理、代码生成等场景中表现亮眼,但其实际落地仍面临诸多挑战。这些局限性既源于技术本身的设计约束,也与大模型的能力边界密切相关

  1. 对模型能力的高度依赖
  2. 模型规模敏感性: CoT 的效果严重依赖大模型的参数量(如 GPT-4、PaLM 等)。小模型(<10B 参数)难以生成连贯的推理步骤,且易出现逻辑混乱。CoT 就像健身房的 VIP 服务 —— 只有‘大块头’模型(比如 GPT-4)才能享受。小模型(小于 100 亿参数)用它,就像让小学生举铁,不仅举不动,还可能扭伤腰。
  3. 领域知识限制: 模型对任务领域的熟悉程度直接影响推理质量。若预训练数据中缺乏相关领域知识(如专业数学、法律),生成的推理步骤可能错误频出。
  4. 提示设计与示例的强依赖性
  5. 提示词敏感: 模型表现对提示词(如 “Let’s think step by step”)的设计非常敏感,不同指令可能导致结果差异巨大。
  6. Few-shot 示例的质量门槛: Few-shot-CoT 需要人工编写高质量示例(问题→推理步骤→答案),低质量示例会误导模型,增加使用成本。
  7. 推理过程的可靠性问题
  8. 逻辑错误与不连贯性: 模型生成的推理步骤可能包含逻辑漏洞(如错误公式、遗漏关键条件)或前后矛盾。
  9. 错误传播风险: 若某一步骤出错(如计算错误),后续步骤可能延续错误,导致最终答案完全偏离正轨。
  10. 任务适用性局限
  11. 开放域任务表现弱: 对主观性强、无标准答案的任务(如创意写作、道德判断),CoT 的推理步骤可能牵强或无效。
  12. 多模态支持不足: CoT 目前主要针对文本任务,对需要结合图像、视频等多模态数据的复杂推理支持有限。
  13. 计算与成本瓶颈
  14. 计算开销大: 生成多步推理需要更多计算资源(如 token 数量、GPU 时间),导致推理速度慢、成本高。
  15. 实时性受限: 在需要快速响应的场景(如实时对话),CoT 的额外推理步骤可能影响用户体验。
  16. 可解释性的表面性
  17. 伪逻辑风险: 模型生成的推理步骤可能 “看似合理但实际错误”,本质仍是统计拟合而非真正的逻辑推理,可解释性有限。
  18. 人类理解偏差: 用户可能过度信任模型生成的推理步骤,忽略其中潜在的逻辑漏洞。

展望

尽管 CoT 技术仍存在诸多不足,但其展现出的潜力已为 AI 推理开辟了全新方向。未来,围绕模型自我优化、多模态协同、低资源适配等方向的研究,或将成为突破当前瓶颈的关键。

魔杖可靠,而魔法尚未驯服。