00_LLM 读论文系列:Chain of Thought Prompting Elicits Reasoning in Large Language Models
Chain of Thought Prompting Elicits Reasoning in Large Language Models
takeaway
针对超过100B的大模型,通过 <input, chain of thought, output> 形式的COT prompting 进行few shot 微调可以大幅改善数学推理、常识推理以及符号推理的性能表现。但原因未知。
Introduction
思维链(COT)是可以改善大模型复杂推理能力的一系列中间推理过程。
由于scaling law的存在,大家不断地增加大模型的size,进而提高大模型的性能表现。然而在复杂的推理问题上,仅仅提高大模型的size不能完全的解决问题。
目前:增强推理的能力可以从以下两个角度考虑:
1) 针对数学的推理训练,生成llm推理能力。通过预训练或者微调使模型可生成中间的步骤。
2)通过prompt提供少量的上下文样本学习,增强其推理能力。
然而仍然存在很多一些局限性:
1)需要大量的高质量的推理过程数据,成本很高。
2)传统的小样本的学习方法在推理能力上表现不是很好,而且随着语言规模的增加,性能提升不显著。
新的方法:思维链prompting
小样本prompting, 包含三个部分:<input, chain of thought, output>
思维链Prompting
目标:使语言模型具备生成类似思维链的能力。如果少样本提示中可以生成类似示例,则足够大的llm可以生成思维链。
特性:
1) 可以将问题分解为很多的中间步骤,需要更多的计算资源
2) 展示模型如何得到答案,提高了可解释性
3) 可以用于语言解决的所有问题中
4) 利用少样本提示就可以得到
各类任务中的表现
数学推理
与baseline的few shot 对比,在多个benchmark上进行结果对比。结论:
- 只在大模型上有优化,约100B参数以上的模型才会带来性能上的提升
- 对复杂的问题有性能的提升,而对简单的问题没什么提升甚至使负的
- 思维链的promting比传统的prompting的效果要好
至于为什么COT prompting表现要好?主要也是因为COT都是对的,而且更大模型的COT出现错误的概率更低。
消融实验
消融实验指的是评估某个系统的不同组件对整体性能的影响时,通过逐步移除某些组件,进而研究不同组件对于整个系统的影响。
数学公式的影响
因为在以上的数学实验中,可能是因为cot会生成数学公式,进而提高了性能表现。
* 方法:模型的提示变成生成一个数学方程,而不是完整的COT。
* 结果:对复杂问题性能提升不大,对简单问题有较大提升。
计算资源的影响
在COT提示可能在更难的问题上花费了更多的资源,进而提高了表现。
* 方法:将可变计算与思维链分离
* 结果:与基线大致相同。计算量不是成功的原因
激活知识的影响
可能允许模型更好的访问预训练期间获得的知识,进而提高了性能
* 方法:思维链提示在答案之后给出(直接去掉的话,会简化模型的输出,引入其他变量)
* 结果:与基线大致相同
理解:仍然不清楚为什么思维链会起作用以及怎么产生的,更多的是直觉上的因为有了中间的推理步骤以及大模型的涌现作用。更多的是观察现象。不过可以研究一下为什么deepseek 7B这些也好用
鲁棒性
只要包含思维链的提示,模型的性能都会显著高于基线标准。与风格、特定的语言表达方式、示例的顺序以及数量的变化无关。
在常识推理以及符号推理上,也具有类似的表现
未来探索
- 为什么会有性能的提升
- 如何保证正确的推理路径,改善事实生成
- 只有大模型才表现出的思维链推理,在小模型上如何出现
