当前,大语言模型在诸多复杂的逻辑推理任务中取得了非常好的表现,其中思维链(Chain of Thought)和思维树(Tree of Thought)技术的运用,进一步提高了模型的推理能力。
然而,对于思维链和思维树为何能带来这样的提升,领域里还没有达成共识性结论。
在近期一篇论文中,新加坡国立大学的博士生康力伟和赵子瑞,结合机器学习理论中的样本复杂度和计算复杂度的概念,分析了思维链和思维树的运用对于模型的影响。
基于样本复杂度和计算复杂度的分析框架,本次研究分析了四个不同的任务,并基于这些分析给出了关于提示词构建和推理方法的选择的建议。
研究中,他们先是讨论了样本复杂度的角度。
其发现:思维链的运用,可以看做是将一个复杂问题的解题过程分解成若干个简单的解题步骤的过程,经过这些步骤的运算之后最终得到正确答案。
比如对于一个数学问题“小明一共有 13 个苹果,他给他的两个朋友每人两个苹果,然后又用了 3 个苹果做苹果派,那么小明还剩下几个苹果?”。
使用思维链的模型的回答是“小明原来有 13 个苹果,他给了朋友 2*2=4 个苹果,然后用了 3 个苹果做苹果派,小明还剩下 13-4-3=6 个苹果。”
而假如采用直接回答的形式,模型的回答则是“小明还剩 6 个苹果”。
相比于跳过中间步骤直接生成问题的答案的方式,本次分析发现使用思维链来解决问题,可以大大降低推理模型的描述长度,从而降低了问题的样本复杂度。
即只需要更少的训练数据,就能学习到一个表现不错的模型。
虽然大语言模型的训练数据是一个非常庞大的集合,课题组也无法得知这其中不同种类的训练数据的多少。
但基于本次研究仍然可以得出这样一个预期:使用思维链来推理,可以产生更好的表现。
原因在于,其样本复杂度远远低于直接回答问题的样本复杂度。
而为了以更可控的方式展示数据量对于思维链形式的推理的学习影响,该团队进行了微调实验,借此控制思维链形式的训练数据、以及直接回答形式的训练数据的比例。
在 GSM8K 数学题数据集上,他们发现训练思维链形式的推理,只需要不到十分之一的数据,便可以在测试问题中获得比直接回答形式更高的推理准确率。
通过上述分析他们认为:通过分解问题来降低推理方式的描述长度具备一定的重要性。
同时,还得出这一结论:不同思维链提示词的描述长度是不一样的,因此在设计提示词的时候,应当从减小描述长度的角度来考虑和设计。
随后,该团队从计算复杂度的角度,来比较思维链和思维树。
通常,人们认为思维树形式的推理比思维链形式的推理表现更好,但是本次实验和分析发现:这往往取决于任务的计算复杂度。
仍以数学题数据集 GSM8K 举例,他们发现数据集中几乎所有的问题,都可以通过链式的解题步骤来解决,即计算复杂度不是指数型增长的。
通过实验他们也发现:在 GSM8K 中,思维树相比于思维链只有非常有限的提升。
一方面,是因为 GSM8K 本身的计算结构是链式的,即与思维树的树结构并不一致。
另一方面,是因为在思维树的树搜索中,当将自我评价作为搜索启发,并不能带来额外的信息。原因在于:评估一段解题过程的正确性,并不比生成的难度低。
基于这些分析,该课题组建议在选择推理方式时,应当考虑任务的计算复杂度,根据其计算复杂度选择合适的推理算法。
例如,那些可以一步一步写出过程的数学问题,更适合思维链推理。而需要反复试错的 24 点数学问题,则更加适合思维树推理。