CoT = Chain of Thought
在提示词中,让语言模型分步骤处理用户的请求,往往会有更好的效果。
实时反馈和目标对齐
在实际使用 CoT 的过程中,从使用的直观效果上看,CoT 对问题做了分步拆解,用户可以看到语言模型思考的每一个步骤,在每一个步骤中做出及时的反馈,在过程中把控语言模型的思维方向。
我将其看作是用户深度参与到 AI 协作中的一个过程,使得 AI 的目标在思维链过程中不断获得调整和用户的目标做对齐。
分步执行的深度化计算
这篇论文2402.12875 的研究者使用电路复杂度理论方法研究了语言模型在使用 CoT 之后的性能提升。从题目中可以看出,论文考察的问题主要是“序列问题”,即为需要按照步骤来一步步解决的问题。
受益于 CoT 的分步计算,提升了语言模型处理问题的迭代数,可以从以下两个方面理解:
- 并行计算的结构:语言模型的并行结构决定了在计算过程中不同计算部分之间的交际较少,因为其互相之间没有数据交换所以无法互相参考。而 CoT 拓展了计算步骤,使得几个步骤之间的数据获得互相参考的机会,进而提升了模型能力。
- 步骤限制被解除:某些数学问题本身就是应该用多步骤方法处理的,不使用 CoT 的语言模型单步给出的答案往往会跳过中间步骤而不准确,CoT 解除了步骤的限制,更适合处理多步骤的问题
从论文中的上图可以看出。嵌入的大小和 CoT 的长度就像是空间和时间上的两个维度,维度越大,语言模型最终获得的结果也就越好。
从计算复杂度理论看,使用 CoT 的语言模型解决问题的上限已经几乎包括了所有“P 问题”,即为在多项式步骤内可以解决的问题。可以看出这样的复杂度上限已经非常高了,说明 CoT 在解决问题的能力上更上一层楼。
注意到论文中使用了可计算理论和集合论来论述计算边界的问题。可以算的数学问题被打包成一个一个集合,集合内最难的问题定义了该集合的边界,随着 CoT 长度增加,更大的集合被囊括进来,表示可解决问题的边界不断扩展。
局限性
CoT 可以实现语言模型在思维逻辑上的推理,但是也要注意一个问题,那就是梯度爆炸的幻觉问题。如果说语言模型可以在单个步骤上出现幻觉,那么经过思维链的扩展,幻觉问题可能会堆积然后出现更为离谱的效果。