AI 中的 CoT 是什么?一文详解思维链
文章目录
- CoT 的组成
- CoT 的作用
- CoT 的推理结构变体
- CoT 的特点
- CoT 的适用场景
- 总结
在人工智能领域,尤其是自然语言处理和机器学习中,有一种名为思维链(Chain of Thought,CoT)的技术,它正逐渐改变着我们对 AI 模型推理能力的认知。CoT 由 Google 在 2022 年的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中首次提出,其核心思想是让大模型逐步参与将一个复杂问题分解为一步一步的子问题并依次进行求解,通过显式输出中间逐步的推理步骤来增强大模型的算数、常识和推理的质量。
CoT 的组成
一个完整的包含 CoT 的提示词一般由以下三部分组成:
- 指令(Instruction) :用于描述问题并且告知大模型的输出格式,让模型明确知道需要做什么。
- 逻辑依据(Rationale) :指 CoT 的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识,是模型思考过程的具体体现。
- 示例(Exemplars) :以少样本的方式为大模型提供输入输出对的基本格式,每个示例都包含问题、推理过程与答案,帮助模型更好地理解和学习如何进行推理。
根据是否包含示例,可将 CoT 分为 Zero-Shot-CoT 与 Few-Shot-CoT。Zero-Shot-CoT 仅在指令中添加一行经典的 “Let’s think step by step”,无需提供具体示例,即可唤醒大模型的推理能力;而 Few-Shot-CoT 则在示例中详细描述了解题步骤,让模型照猫画虎得到推理能力。
CoT 的作用
- 提升模型推理能力 :CoT 将复杂问题分解为多个子问题,使模型能够逐步解决,从而更好地应对复杂任务,显著提高了大语言模型在复杂推理任务上的性能,如在数学推理任务 GSM8K 上,PaLM-540B 的准确率从 17% 提升至 58%。
- 增强模型的可解释性 :显式输出的中间推理步骤为人们提供了一个观察模型思考过程的窗口,方便使用者了解模型是如何得出答案的,也便于发现模型可能存在的错误,进而提高了大模型推理的可解释性和可信度。
- 具有广泛的适用性 :CoT 能用在数学应用题、常识推理和符号操作等多种任务上,几乎涵盖任何人类通过语言能解决的问题,并且支持任何语言模型使用,只需将其加在 few-shot 的样例中即可生效,无需重新训练模型。
CoT 的推理结构变体
- PoT(Program of Thought) :对思维链中大模型有可能出错的一些计算问题,让大模型生成编程语言在解释器中运行,将复杂计算与模型的文本生成解耦,从而提高计算的准确性和可靠性。
- Tab-CoT(Tabular Chain of Thought) :迫使大模型在每一步的推理中记录一个 “∣步数∣子问题∣过程∣结果∣” 的推理表格,并从生成的表格中提取答案,增强大模型的推理能力。
- ToT(Tree of Thought) :将 CoT 的链式结构扩展为树形结构,让大模型在解决子问题时生成多个不同的答案选择,通过建立的树形结构展望未来确定下一步的决策,并通过追溯来纠正历史决策。
- GoT(Graph of Thought) :基于 ToT 的思想,将 Tree 拓展为 Graph,其核心在于一个 “控制器”,控制器处理对图的操作以及图状态推理,将任务分解为相互连接的节点 - 边关系,并维护大模型在生成的图上的推理过程。
CoT 的特点
- 以人类解决问题的方式为灵感 :CoT 模仿人类解题时的思考模式,通过一系列连贯的逻辑推导来促进系统地解决问题,使 AI 模型更接近人类的思维方式。
- 涌现性 :当模型参数量达到百亿级别时,CoT 才能显著生效,发挥出其在提升模型推理能力方面的作用。
CoT 的适用场景
- 数学应用题 :对于复杂的数学问题,CoT 可以帮助模型逐步分解问题,进行算术推理,从而得到正确的答案。
- 常识推理 :在涉及常识的问答中,CoT 能够让模型展示出其推理过程,更好地运用常识进行推理和判断。
- 符号操作 :如代码生成等任务,CoT 可引导模型按照逻辑步骤生成正确的代码。
- 其他需要逻辑推理的任务 :如逻辑谜题解答、数据解读等,只要是可以将问题分解为多个步骤并通过逻辑推理解决的场景,CoT 都有其用武之地。
总结
CoT 作为一种简单而有效的方法,为提高 AI 模型的推理能力和可解释性提供了一种新的思路和解决方案。它通过引入中间推理步骤,使模型能够更像人类一样逐步思考和解决问题,在各种复杂任务中展现出了巨大的潜力和价值。随着研究的不断深入,CoT 将不断进化和完善,并与其他技术相结合,进一步推动 AI 模型的发展和应用,为我们带来更强大、更智能的人工智能系统。