想要彻底理解思维链(CoT),请看此篇!

随着人工智能语言模型的不断进步,如何引导它们提供更透明、逻辑性强、可验证的输出成为了一个重要课题。思维链(Chain of Thought,简称CoT)作为一种Prompt提示技术,通过模拟人类解决问题的逐步思考过程,显著提升了模型在复杂任务中的表现。本文将深入探讨CoT的概念、应用场景以及实际案例,帮助读者彻底理解CoT的底层逻辑和实践价值。

图片

随着人工智能语言模型变得越来越高级,引导它们产生更透明、逻辑性强、可验证的输出的需求日益增加。CoT提示通过鼓励模型展示其工作过程,类似于人类处理复杂问题解决任务的方式,来满足这一需求。这种技术不仅提高了AI响应的准确性,还使它们更具可解释性和可信度。 思维链(CoT)

记得第一次看到CoT的时候,还以为是一种大模型底层的训练方案,实际了解过之后,才发现这个更像是一种思路,一种写好Prompt的思路。 

CoT(Chain of Thought)从定义上来说是一种Prompt提示技术,用于指导大型语言模型(LLMs)在复杂推理任务中表现出更好的性能。它通过在问题和答案之间插入中间推理步骤,模拟人类解决问题时的逐步思考过程,以提高模型在算术推理、常识推理和符号推理等任务中的表现。 

CoT的作用一般有三点: 

提升复杂问题解决能力:CoT通过将复杂问题分解为多个子问题,提高模型解决复杂问题的能力。

增强模型可解释性:CoT提供了模型推理过程的可见性,使得模型的决策过程更加透明。

促进学习和进化:CoT帮助模型更好地理解问题本质,促进模型的学习和进化。

通过CoT的三种能力,我们会发现,CoT一般被应用于需要复杂推理的场景,比如: 

数学问题解决

常识推理

符号推理

逻辑谜题

语言理解

在实际写法上,一般是将“让我们一步一步思考”、“让我们逐步思考”等方式融入到提示词中,下面我根据上面的5种应用场景,分别举例分析一下。 案例1: 数学应用题

Prompt:  Plain Text 请举例说明Kappa系数是怎么计算的,请一步一步思考,严谨认真地对待每一个过程

分析: 经过上面的思考过程的引导,模型能够正确理解并解决数学问题,后面再提问这类问题,模型就会按照这个思考过程给出期望的数学结果了。 

比如在单独问这道题,大模型会有数据计算的不准,比如下面,在计算医生A诊断糖尿病和医生B诊断糖尿病的交叉数据时,正确的应该是4,但是大模型给出的是5: 

图片

加上思考引导之后,大模型计算的精度就提升了,不会出现上面明显的计算错误: 

图片

案例2: 常识推理

Prompt:  Plain Text问:一个农夫带着一只羊站在河边。河上有一条船,可以容纳一个人和一只羊。那么农夫带着一只羊渡河所需的最少渡河次数是多少?答:1次。问:一个农民带2只鸡过河,一只船只能容纳一个人和2个动物,那么农夫带着两只鸡渡河所需的最少渡河次数是多少?

分析: 经过上面的思考过程,模型能够正确理解并解决数学问题,后面再提问这类问题,模型就会按照这个思考过程给出期望的数学结果了。 

比如在单独问这道题,大模型就开始自以为是的用错误逻辑分析了: 

图片

当提供思考案例后,大模型有一个思维路径后,就会按照正确的思路去分析数学问题: 

图片

案例3: 符号推理

Prompt: Plain Text 将单词‘Apple’和‘Banana’的最后一个字母连接在一起。让我们一步一步思考:‘Apple’的最后一个字母是‘e’,‘Banana’的最后一个字母是‘a’,所以连接起来是‘ea’。

分析: 通过告诉大模型如何连接符号,可以正确完成字符串连接任务。 

比如:在没有使用CoT之前 

图片

使用了CoT之后 

图片

案例4: 逻辑谜题

Prompt: 

Plain Text

问题:

学生小赵、小钱、小孙、小李和小周,他们都想选某老师作为自己的指导老师,现已知:

①5名学生中有3名属于20岁以下年龄段,2名属于20岁及以上年龄段

②有2名学生的专业是哲学,其他3名学生的专业是文学

③小赵和小孙的年龄段相同,小李和小周的年龄段不同

④小钱和小周的专业相同,小孙和小李的专业不同

最终结果为,该老师选择了一名年龄大于20岁的哲学专业学生。

由此可以推出,这名学生是:

A.小赵

B.小钱

C.小孙

D.小李

试题解析:

第一步,确定题型。

题干有需要匹配的对象和信息,确定为分析推理。

第二步,进行推理。

根据“小赵和小孙的年龄段相同,小李和小周的年龄段不同”和“有3名属于20岁以下年龄段,2名属于20岁及以上年龄段”,可知小李和小周必有一个大于20岁、有一个小于20岁,可以推出钱大于20岁,赵孙一定小于20岁,排除A、C项;根据“小钱和小周的专业相同,小孙和小李的专业不同”和“有2名学生的专业是哲学,其他3名学生的专业是文学”,可以推出钱、周是文学专业,排除B项。

因此,选择D选项。

问题:一个班共有18人,他们分别来自S省、J省、Z省、A省和F省五省。在18

人中,每个省至少有1人,且来自各省的人数均不相同。已知:

(1)S省和J省共有5人;

(2)J省和Z省共有6人;

(3)Z省和F省共有7人。

根据以上信息,可以推出以下哪项?

A.18人中来自S省的有1人

B.18人中来自Z省的有2人

C.18人中来自F省的有5人

D.18人中来自A省的有6人

分析: 通过引导模型按步骤思考逻辑题,从而根据引导解决逻辑题。 

如果直接给出问题,AI思考链路会非常单一,得出错误的答案,比如: 

图片

当我们给出思考链路后,AI会根据正确的思考链路给出答案: 

图片案例5: 语言理解

Prompt: Plain Text请首先把每个选项中成语的含义与适用场景分析出来,最后再联系问题的场景一步一步的分析哪个成语最符合场景。

分析: 模型通过逐步解释,正确理解并解释了成语。 

比如在下面我们常见的成语填空问题中,如果没有思维链的搭建,模型对于成语在哪种语境使用是会有误差的,会得出错误的结论: 

图片

当我们加上了思维链的提示,大模型就能一步一步的理解成语与语境,得出正确的答案。 

图片

图片

自动思维链(Auto-CoT)

当我们体验到思维链的好处之后也发现一个问题,生活中的场景这么多,如果每个场景我们都写个思维链,岂不要累死,于是Amazon Science团队提出了自动思维链(Auto-CoT)的概念,它通过自动化流程构建“让我们一步步思考”的思维过程,以提高模型在复杂推理任务中的表现。 

图片

自动思维链的实现方法主要有2个阶段: 

问题聚类:将给定数据集的问题划分为几个簇。

示例抽样:从每个簇中选择一个代表性问题,并使用简单的启发式方法使用零样本CoT生成其推理链。

简单理解就是提前把问题分类,然后自动生成每个问题分类下的思维链。 

如果有技术团队当前遇到了无法一个一个写思维链的困扰,可以尝试用这个方法,

项目地址:https://github.com/amazon-science/auto-cothttps://github.com/amazon-science/auto-cot

拿走不谢~ 

总结 

思维链在写Prompt初期的确会获得比较好的表现,不过有些项目只靠让AI进行启发式推理并不能得到我们想要的结果,所以思维链只是写好Prompt的一个小环节,所以千万不要一招鲜,吃遍天,后面我还会分享更多Prompt相关的知识,敬请期待! 

本文由人人都是产品经理作者【宋恒达】,微信公众号:【产品自由之路】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。