一、什么是思维链
思维链(Chain-of-Thought,简称CoT)是一种在大型语言模型(LLMs)中使用的技术,旨在提升模型在复杂推理任务上的表现。这种方法通过模拟人类解决问题时的思考过程,将问题分解为一系列子问题,然后逐步解决这些子问题,最终得出结论。我们都知道大模型生成的结果是根据概率进行计算的,并不能真的像人类一样自主思考(至少目前是这样),所以对于推理任务,大模型并不擅长。因此,给多点时间或者指引给大模型,才能提高生成结果的可靠性。
二、思维链的原理及类型
1、原理
- 问题分解:将一个复杂的问题分解成一系列更小、更简单的子问题。
- 逐步推理:对每个子问题进行逐一推理,生成中间步骤。
- 得出结论:基于中间步骤,得出最终答案。
2、思维链的类型
- Zero-shot CoT:在没有任何人工标注的推理步骤的情况下,模型直接生成推理步骤和最终答案。
- Few-shot CoT:提供少量的示例,包含输入、CoT推理步骤和输出,模型根据这些示例生成新的推理步骤和答案。
三、如何实现思维链
如果我们使用的是大模型智能助手,那么在对话的过程中,我们可以引导模型一步步思考,并让它把思考的过程也输出来。比如这里,我们让大模型进行简单的一个累加计算,但是让它直接给答案(虽然还是罗列了数字,但是计算结果是错的)。
这里还是上面的问题,但是我们给出指令让它一步步推理,同时把推理过程告诉我们。这样一来,大模型有了充分的思考时间,答案是对的(虽然推理过程显得它不太聪明的样子)。
对于非常复杂、信息量较大或者推理难度大的任务,我们可以适当给出一到两个示例,告诉大模型推理的思路和方向,从而引导它模仿我们推理的过程来输出结果。同样地,我们这里让它直接返回答案,可以看到,还是答错了。
但是我们可以给一些例子给它,告诉它该怎么推理(包括上面篮球的例子,它的推理过程太冗余了,同样可以给出例子,让它模仿我们推理的模式进行答复)。可以看到,它模仿得不能说像,只能说一模一样,这次回答正确了。
四、总结
在算术推理、常识推理和符号推理等任务中,CoT可以显著提高模型的准确性和可靠性。CoT生成的中间步骤可以帮助用户理解模型是如何得出答案的,也提高了模型的可解释性。相比于传统的微调方法,CoT不需要对模型进行大量的参数更新,从而减少了计算资源的消耗。因此,对于一些比较复杂的、步骤较长的任务,不妨采用CoT提高大模型的性能。随着技术的发展,CoT相关的技巧也越来越多,笔者会持续跟踪并分享相关领域的研究进展。