思维链(Chain of Thought, CoT)

CoT 是通过引导模型一步步思考来解决复杂问题的一种方法,

CoT不是直接让模型输出最终答案, 而是要求它输出一个详细、逻辑连贯的推理过程, 然后基于推理得出结论

最简单的的实现方法就是直接在提示词末尾追加一句 "必须一步步思考" 类似的话

CoT 的核心不是为了保证最终结果绝对正确, 而是让模型构建出一条清晰、正确的逻辑路径

CoT 的首要作用是为了让模型正确理解和分解问题, 这是解决问题的基础。其次是通过观察模型输出的思考过程为错误的步骤进行优化。合理的推理步骤有助于后续的工具调用, 模型只要知道在哪一步该调用哪个工具就可以完成任务


自我一致性(Self-Consistency)

自我一致性主要是通过 "少数服从多数" 原则来提高结果的可靠性

具体的实现方式是让模型使用 CoT 对同一个问题进行多次、多样化的推理, 然后从对不同推理路径出现次数最多的那个答案作为最终答案。

自我一致性的好处就是即使模型在某一次推理出现错误, 但大部分推理路径都指向了正确答案, 最终还是会获得一个高可信度的结果。极大的增强了复杂推理任务的稳定性和准确性

比如让模型对问题进行多次推理并对解决方案分析各自优缺点, 然后对比优缺点选择最优的答案作为最终答案

实现步骤

  1. 多次用相同的Prompt调用模型: 以奇数次进行推理, 确保能超过半数投票决策
  2. 收集推理结果: 记录每次模型输出的完整推理路径和最终结果
  3. 汇聚和分析结果: 把收集的结果再次交给模型进行总结/统计, 判断哪个结论在多个推理路径中出现最频繁
  4. 输出最终结果: 选择出现次数最多/一致性最高的结果作为最终结果

步骤优化

  1. 并发调用: 可以并发多次调用模型
  2. 参数调节: 适当调整tempature温度系数或者top-p等参数, 控制输出的多样性

思维树(Tree of Thoughts, ToT)

ToT 的核心思想是不要满足于第一个想到的答案,而是像下棋一样, 探索多种推理路径, 并进行前瞻性评估, 最终选择最优解

注意: 自我一致性是多次输出后再把多次输出交给模型做最终选择, 是在答案层筛选。而思维树是推理过程中生成多个方案并选择最优输出, 是在推理层筛选。所以, 两种方法可以结合使用

传统方法的危险

传统方法是模型一步步推到出一个答案。对于复杂问题很危险, 因为容易造成一条道走到黑的结果

  • 第一步就走上了错误的推理路径
  • 只产生一种思路,没有备选方案
  • 无法进行"回溯"或者"自我纠正"

把ToT想象成下象棋

  • 思维分解: 思考下一步怎么走
  • 思维生成: 想到了3种可能的走法(走马,拱兵,飞象)
  • 状态评估: 逐一推演每种走法对应对手怎么防御,以及后续几步局势,最终判断"走马"能带来最大优势
# 任务
设计订单到期关闭方案

# 步骤一
设计三种订单到期关闭方案
# 步骤二
对每种方案评估优缺点
#步骤三
分析方案及优缺点,选择最优方案

反思机制(Reflection)

反思机制是让模型自我批评的方法。先让模型生成一个初步答案, 然后引导模型对答案进行评估和反思, 找到其中的不足, 最终生成一个经过优化的最终版本

实现步骤

  1. 生成初步答案: 把原始问题发给模型生成初步结果
  2. 反思审查: 把原始问题和初步答案一起发给模型,分析判断答案是否满足要求,不满足则提出改进意见,满足则直接输出
  3. 结果修订: 不满足要求时则把原始问题、初步答案、改进意见进行汇聚并结构化分层再次发送给模型,要求生成修订后答案并附带修订说明(哪里有错误、怎么修正、修订成什么样了)
  4. 输出最终结果: 把修订后的结果和原始问题进行总结输出

步骤优化

增加迭代环节, 反思审核和结果修订可以循环迭代, 可以提高结果精度

增加迭代也意味着响应时间增大、上下文增大( 很容易超过上下文限制, 需要其他优化策略, 比如记忆压缩、摘要提取等等 )


ReAct推理+行动(Reason and Act)

ReAct 框架让模型具备实时与外部世界互动以及动态规划的能力

ReAct 是一种结合思考 reason和行动 action的智能体框架。进行复杂任务时,通过思考、行动、观察、反馈的反复迭代来逐步逼近或者完成任务。这种交错循环模范人类解决问题的自然模式 (先思考后行动, 再观察后修正)

实现步骤

  • 思考推理: 规划下一步、分解复杂任务或者分析上一步行动结果,生成具体的执行计划。
  • 行动(工具调用): 基于执行计划指令要求,自主选择并执行一个外部工具/API
  • 观察/反馈: 获取工具执行结果后,将会根据原始问题和工具执行结果判断任务是否完成,如果未完成则继续返回思考推理,生成下一步行动结果,反复迭代。如果完成则直接进入总结阶段
  • 输出总结: 当判断任务完成时,整合所有迭代收集到的关键信息,生成一个全面、连贯的最终答案