1. CoT的概念

一个完整的包含COT的Prompt往往由

指令(用于描述问题并且告知大模型的输出格式)、

逻辑依据(CoT的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识),

示例(以少样本的方式为大模型提供输入输出对的基本格式(问题,推理过程与答案))

三部分组成

2. CoT的核心

构造合适的prompt以触发LLM一步一步生成推理路径,并且生成最终答案

3. CoT的作用

1、COT允许模型把一个复杂问题拆解成多个步骤,也就是说需要更多推理步骤的问题可以多分点计算量。

2、COT提供了一个观察模型为何会犯错的窗口,因此也就提供了一个debug模型的机会

3、COT能用在数学应用题、常识推理和符号操作上,也就有可能用在任何人类通过语言能解决的问题上

4、COT支持任何语言模型使用,加在 few-shot的样例中就能生效。省去了重新训练模型的功夫。

4. CoT(Chain - of -Thought)的方式

三种模式:按部就班、三思后行和集思广益

按部就班。在按部就班模式中,模型一步接着一步地进行推理,推理路径形 成了一条逻辑连贯的链条。在这种模式下,模型像是在遵循一条预设的逻辑 路径,“按部就班”的一步步向前。这种模式以 CoT、Zero-Shot CoT、 Auto-CoT等方法为代表。

三思后行。在三思后行模式中,模型每一步都停下来估当前的情况,然后从 多个推理方向中选择出下一步的行进方向。在这种模式下,模型像是在探索 一片未知的森林,模型在每一步都会停下来评估周围的环境,“三思后行”以 找出最佳推理路径。这种模式以 ToT、GoT等方法为代表。

集思广益。在集思广益模式中,模型同时生成多条推理路径并得到多个结果, 然后整合这些结果,得到一个更为全面和准确的答案。在这种模式下,模型像 是在召开一场智者的会议,每个智者都带来了自己的见解,最终通过讨论和 整合,“集思广益”得出一个更优的结论。这一类模式以 Self-Consistency等方法为代表。

按部就班:Zero-Shot CoT 和 Auto-CoT

  • Zero-Shot CoT

无需人工标注 CoT 数据,即可激发大语言模型内在的推理能力。

  • Auto-CoT

Auto-CoT引入与待解决问题相关的问题及 其推理链作为示例,以继续提升 CoT 的效果。

利用聚类技术从问题库中筛选出与用户提问位于一个簇中的问题。

然后,借助 Zero-Shot CoT 的方式,为筛选出的问题生成推理链,形成示例。

这些示例包含了不同问题及其对应的推理内容,可为模型提供不同解题思路, 辅助模型做出更为审慎的推理。

在这些示例的基础上,Auto-CoT 以“让我们一步一步思考” 引导大语言模型 生成针对用户问题的推理链和答案。

三思后行——思维树(Tree of Thoughts, ToT)和思维图(Graph of Thoughts, GoT)

  • ToT思维树: 拆解-> 衍生(根据当前子问题生成可能的下一步推理方向->两种方式:样本启发和命令提示) -> 评估(投票或者打分模式) -> 搜索(深搜或者广搜)

  • GoT 将树扩展为有向图, 以提供了每个思维自我评估修正 以及思维聚合的操作。该图中,顶点代表某个问题(初始问题、中间问题、最终问 题)的一个解决方案,有向边代表使用“出节点”作为直接输入,构造出思维“入 节点”的过程。

GoT 核心优势: 思维自我反思,思维聚合的能力

集思广益

汇集多种不同的观点和方法来优化决策过程

Self-Consistency

不依赖于特定的 CoT 形式,可以与其 他 CoT 方法兼容。

(1) 在随机采样策略下,使用 CoT 或 Zero-Shot CoT 的方式来引导大语言模型针对待解决问题生成一组多样化的推理路径;

(2) 针对大语言模型生成的每个推理内容,收集其最终的答案,并统计每个答案在所有推理路径中出现的频率;

(3) 选择出现频率最高的答案作为最终的、最一致的答案。

推理路径生成 -> 生成不同结果 -> 基于投票给出最终答案

Unversal Self-Consistency 利用LLM本身来选择最一致答案。

以上图片来源于《大模型基础》 毛玉仁、高云君等著

github 链接为:https://github.com/ZJU-LLMs/Foundations-of-LLMs

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐