AI Agent系列【七】
- 前言
- 一、CoT技术详解
- 1.1 CoT组成
- 1.2 CoT的特点
- 二、CoT的作用
- 三、CoT的好处
- 四、CoT适用场景
- 五、CoT的推理结构
前言
思维链(Chain of Thought,CoT),思维链就是一系列中间的推理步骤(a series of intermediate reasoning steps),通过要求模型在输出最终答案之前,显式输出中间逐步的推理步骤这一方法来增强大模型的算数、常识和推理能力。
一、CoT技术详解
COT方式通过让大模型逐步参与将一个复杂问题分解为一步一步的子问题并依次进行求解的过程可以显著提升大模型的性能。
如下图所示的对比,CoT 完成了从输入到思维链再到输出的映射,即<input——>reasoning chain——>output>,完全区别于之直接到输出的映射 <input——>output> 。
这个实例很好的解释了再没有CoT的情况下和增加了相应的逻辑思维过程后相应的计算结果的差异,思维链提示给出了正确答案,而直接给出答案的传统提示学习,结果是错的。
CoT思维链提示在给出答案之前,还给出相应的推理过程如下:
“罗杰先有 5 个球,2 罐 3 个网球等于 6 个,5 + 6 = 11”
“食堂原来有 23 个苹果,用 20 个做午餐,23-20=3;又买了 6 个苹果,3+6=9”
1.1 CoT组成
一个完整的包含 CoT 的提示词一般由指令(Instruction,告诉模型需要干什么),逻辑依据(Rationale,告诉模型怎么干),示例(Exemplars,给模型举例说明指令和逻辑依据)三部分组成。
1)指令:用于描述问题并且告知大模型的输出格式;
2)逻辑依据:指 CoT 的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识;
3)示例:指以少样本的方式为大模型提供输入输出对的基本格式,每一个示例都包含:问题,推理过程与答案。
1.2 CoT的特点
有效的思维链应该具有以下特点:
-
逻辑性:思维链中的每个思考步骤都应该是有逻辑关系的,它们应该相互连接,从而形成一个完整的思考过程。
-
全面性:思维链应该尽可能地全面和细致地考虑问题,以确保不会忽略任何可能的因素和影响。
-
可行性:思维链中的每个思考步骤都应该是可行的,也就是说,它们应该可以被实际操作和实施。
-
可验证性:思维链中的每个思考步骤都应该是可以验证的,也就是说,它们应该可以通过实际的数据和事实来验证其正确性和有效性。
二、CoT的作用
1、CoT允许模型把一个复杂问题拆解成多个步骤,也就是说需要更多推理步骤的问题可以多分点计算量。
2、CoT提供了一个观察模型为何会犯错的窗口,因此也就提供了一个debug模型的机会。
3、CoT能用在数学应用题、常识推理和符号操作上,也就有可能用在任何人类通过语言能解决的问题上。
4、CoT支持任何语言模型使用,加在 few-shot的样例中就能生效。省去了重新训练模型的功夫。
三、CoT的好处
CoT 的能力已经被无数工作所验证,对使用 CoT 的好处可以归纳为以下四点:
增强了大模型的推理能力:CoT 通过将复杂问题分解为多步骤的子问题,相当显著的增强了大模型的推理能力,也最大限度的降低了大模型忽视求解问题的“关键细节”的现象,使得计算资源总是被分配于求解问题的“核心步骤”;
-
增强了大模型的可解释性:对比向大模型输入一个问题大模型为我们仅仅输出一个答案,CoT 使得大模型通过向我们展示“做题过程”,使得我们可以更好的判断大模型在求解当前问题上究竟是如何工作的,同时“做题步骤”的输出,也为我们定位其中错误步骤提供了依据;
-
增强了大模型的可控性:通过让大模型一步一步输出步骤,我们通过这些步骤的呈现可以对大模型问题求解的过程施加更大的影响,避免大模型成为无法控制的“完全黑盒”;
-
增强了大模型的灵活性:仅仅添加一句“Let’s think step by step”,就可以在现有的各种不同的大模型中使用 CoT 方法,同时,CoT 赋予的大模型一步一步思考的能力不仅仅局限于“语言智能”,在科学应用,以及 AI Agent 的构建之中都有用武之地。
四、CoT适用场景
在非符号推理类别和数据集上,特别是那些主要包含常识(CSQA、PIQA、SiQA)、语言理解(WinoGrande)和阅读理解(AGI LSAT、ARC-Easy、ARC-Challenge)的问题上,零样本 CoT 和零样本直接回答的性能几乎没有区别。尽管这些数据集涉及推理,但 CoT 并没有带来增益。
相比之下,数学和符号类别(以及符号和半符号数据集)获得了更大的提升。CoT 在 MATH 和 GSM8k 上带来的增益分别高达 41.6% 和 66.9%。在 ContextHub 和 MuSR Murder Mysteries 等半符号数据集上,CoT 表现出了中等程度的增益。这些数据集需要应用逻辑规则才能得出答案,例如从简单的自然语言(ContextHub)或更复杂的常识性陈述(MuSR Murder Mysteries)中解析得到的一阶逻辑。
五、CoT的推理结构
CoT 构造主要将传统线形,链式的 CoT 转化为如表格、树状、图状格式,如 PoT,Tab-CoT,ToT 以及 GoT-Rationale,四种方法可通过如下图获取对应的异同。
PoT: P 指 Programm 即程序,PoT 的思想也非常简单,对思维链中大模型有可能出错的一些计算问题,让大模型生成出编程语言在解释器中运行,以将复杂计算与模型的文本生成解耦。
Tab-CoT: Tab 指 Tabular 表格,在 ToT 中,研究者迫使大模型在每一步的推理中记录一个“∣步数∣子问题∣过程∣结果∣”的推理表格,并让大模型在推理时从生成的表格中提取答案,从而增强大模型的推理能力。
ToT: T 指 Tree 即思维树,简单理解就是将 CoT 的链式结构扩展为树形结构。ToT 让大模型在解决子问题时生成多个不同的答案选择,通过此建立的树形结构让大模型可以展望未来确定下一步的决策并且通过追溯来纠正历史决策。
GoT:基于 ToT 的思想,将 Tree 拓展为 Graph。GoT 系统的核心在于一个“控制器”,控制器处理对图的操作(GoO)以及图状态推理(GRS),其中 GoO 用于将一个给定的任务进行图分解,将一个任务分解为相互连接的节点-边关系,而 GRS 则负责维护大模型在 GoO 生成的图上的推理过程,记录当前步的状态,决策历史等等信息。
参考文件
https://zhuanlan.zhihu.com/p/670907685