CoT(Chain-of-Thought) 链式思维

或称为:思维链

Chain-of-Thought的定义和原理

"Chain-of-Thought"(简称CoT)是一种思维方法,其原理是建立一个由一系列关联的思考步骤组成的思考链。该方法通过将思考过程分解成一系列有序的步骤,帮助人们更系统地思考问题和产生创造性的想法。该方法适用于各种思考场景,如创新、决策、问题解决等。CoT方法的核心思想是:将一个大的问题分解成若干个小问题,然后将每个小问题再分解成更小的问题,直到每个问题都可以得到简单、明确的答案。这样一来,人们可以更加清晰地理解问题,并找到更优的解决方案。

我们可以将Chain-of-Thought比作拼图,每一块拼图代表问题的一个方面,只有将这些拼图连接起来,才能获得完整的答案。例如,当我们在学习一门新知识时,可以通过Chain-of-Thought来建立起各个知识点之间的关系,从而更好地理解和记忆这门知识;当我们在解决问题时,可以运用Chain-of-Thought的思维方式,将问题拆解成多个子问题,然后逐步解决,最终得到一个完整的解决方案。

大数据领域的解释

思维链(CoT)提示过程是一种最近开发的提示方法,它鼓励大语言模型解释其推理过程。下图显示了 few shot standard prompt(左)与链式思维提示过程(右)的比较。

出一个新问题,如何让大模型计算这道题绝对正确:
一只鸡每天下六个蛋,我今天收了一次鸡蛋,吃掉了其中一半。第二天我又收了一次鸡蛋,吃了其中两个,第三天又收了一次鸡蛋,请问现在我还剩下多少鸡蛋?

Wei等人(2022)(opens in a new tab)中引入的链式思考(CoT)提示通过中间推理步骤实现了复杂的推理能力。您可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。

思维链的主要思想是通过向大语言模型展示一些少量的 exemplars,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。

现实生活中的例子

在日常生活中,CoT 链式思维也随处可见。比如,我们在做菜的时候,需要先准备材料,然后进行烹饪,最后盛出来。这就是一个典型的 CoT 链式思维的过程。再比如,我们在学习一个新知识点的时候,需要先了解基础知识,然后再学习进阶内容

我们可以将Chain-of-Thought比作拼图,每一块拼图代表问题的一个方面,只有将这些拼图连接起来,才能获得完整的答案。例如,当我们在学习一门新知识时,可以通过Chain-of-Thought来建立起各个知识点之间的关系,从而更好地理解和记忆这门知识;当我们在解决问题时,可以运用Chain-of-Thought的思维方式,将问题拆解成多个子问题,然后逐步解决,最终得到一个完整的解决方案。

优缺点

hain-of-Thought(CoT)是一种思维方法,它通过将思考的过程分解成一系列有机链接的步骤来提高思考的效率和质量。它的优点包括:

  1. 帮助人们更好地组织和控制思想流程,从而更好地解决问题。
  2. 支持连续思考,促进创造性思维。
  3. 通过追踪思考过程,可以更好地检查和优化思考质量。
  4. 可以被用来解决各种复杂问题,从组织到创新等。

CoT的缺点是:

  1. CoT需要大量知识储备和分析能力,不适合初学者
  2. CoT需要耗费时间和思考精力,在紧迫的时间限制下难以使用
  3. 每个人的思考模式可能不同,因此对于不同人来说CoT可能不是最好的思考方法。

笔记

1/ 从Chain-of-Thought (CoT) 到 Let's think step by step 最近每天都可以看到大语言模型进展的文章,LLM的能力从简单文字的处理,逐步演化到复杂的reasoning推断,甚至可以做decision making来完成api调用及tool的使用。 此条thread回顾了两篇重要的CoT文章作为读书笔记。

Fs33flTaYAIrmjF

2/ Paper 1: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 此文是CoT的开山之作,作者Jason Wei当时就职于google brain,如今在openAI,同时也是ChatGPT的重要作者。 CoT是解锁LLM 推理能力的重要钥匙,一举开启了挖掘LLM隐藏技能的新的paradigm

Fs33f-MagAIo5zq

3/ 在CoT出现之前, LLM的发展遇到了尴尬的瓶颈,模型越来越大,处理文字能力越来越强,但却似乎没有涌现出接近人类的推理能力,包括算术(e.g. 8只鸡4只兔同笼,一共多少只脚),常识(e.g. 鸭梨能漂在水中么?)以及符号(e.g. 抛硬币若干次,到底哪面朝上)的推理。

4/ 作者Jason发现,传统的prompting中,总是让模型一步到位地解决一个复杂multi-step问题,而我们人类的认知方式则是分步骤解决复杂推理问题。 所以,他提出了一个简单有效的prompting方法,把人类思考问题的过程,所谓chain of thought,用自然语言的形式,显性的放在prompt message中。

Fs33gkcakAAb8yZ

5/ 这样以来,prompt的message形式由 <input, output> 转化为: <input, chain of thought, output>

6/ 之前的thread讲过language modeling,而CoT的思想与之呼应。当chain of thought被放在prompt中时,就会强制LLM在给出答案前, 把chain of thought输出。 从条件概率分布的角度来讲,答案在chain of thought后,其准确的可能性更大。 这也反应了一个问题,即LLM或许没有思考,它只在乎输出。

7/ 作者经过实验,发现这种简单的prompting方式在超过1000亿的大模型上非常有效,而在小模型上效果不明显。 如果将‘涌现’定义为: “由量变引起的质变” 那么虽然作者没有直接证明大模型可以推理,但直接证明了经过CoT, 大模型的推理能力可以被解锁,并且这种能力在超过1000亿的超大模型上得以涌现。

8/ 题外话,ChatGPT一种涌现的工具,其强大的涌现能力与作者Jason有直接的联系,我们有理由怀疑,不开源的ChatGPT下,或针对用户的输入和任务,有着隐含的CoT,来引导大模型获得更加突出的表现。

9/ Paper 2: Large Language Models are Zero-Shot Reasoners Jason的文章中,所用的CoT是手动设计的,所以隶属于few-shot-CoT, 需要一定的人工成本。 此文作者小岛武,进一步简化了CoT的过程,简单的将 ‘Let's think step by step’ 放进prompt message, 让LLM自动生成CoT, 所谓的zero-shot-CoT.

Fs33hl5acAAfsXL

10/ ‘Let's think step by step’这句神奇的话,仿佛咒语,将解锁LLM的能力的过程一步简化! 具体来说,完成逻辑推理任务,只需要两步: 1) 念咒语‘Let's think step by step’, 生成CoT 2)将CoT再此嵌入prompt message,完成任务。

Fs33iBBakAEQOrZ

11/ 下面给出一个在@LangChainAI

中使用 chain-of-thought 来完成SQL query generation的例子

Fr2bmeJXsAEskN6

12 / Paper 1 链接:https://arxiv.org/abs/2201.11903 Paper 2 链接:https://arxiv.org/abs/2205.11916

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注