admin管理员组

文章数量:1534191

本文是关于2022年NIPS论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》的简要技术介绍。论文提出使用思维链提示(Chain-of-thought Prompting)可以有效促进大语言模型的逐步推理能力,进而获得更加准确的效果,尤其对于需要逐步推理的任务。

有关本专栏的更多内容,请参考大语言模型文献调研专栏目录

目录

  • 1. 论文的基本信息
    • 1.1 论文资源
    • 1.2 CoT的动机和方法
  • 2. 数学推理
    • 2.1 实验设置
    • 2.2 实验结果
    • 2.3 消融实验
    • 2.4 CoT的鲁棒性
  • 4. 常识推理
  • 5. 符号推理
  • 6. 讨论
    • 6.1 论文小结
    • 6.2 CoT的局限性
  • 7. 有一些重要的问题
    • 7.1 为什么增大模型参数量可以提升CoT性能?
    • 7.2 提示工程充当了什么作用?
    • 7.3 思维链提示可以提升我所关心的任务性能吗
    • 7.4 对于算术数据集,为什么只用方程是不够的?
  • 8. 附录:论文的思维导图(大图,请在新标签页打开查阅)

Chain-of-thought(以下简称CoT)是通过提示词的调整来改变大语言模型的输出结构的方法,这种方法低成本而高效,无需对大模型进行任何训练和微调,只需要在提问时给出少量的推理样例,让大模型模仿推理过程,可以获得让模型输出更多中间计算过程。论文在数学推理、常识推理和符号推理三个基准上验证了CoT的性能。

关于CoT,有一些需要读者关注的问题:

  1. CoT是怎么实现的?
  2. CoT在哪些情况下有效?
  3. CoT为什么会有效?

接下来我们根据这篇论文来理解关于CoT的一些技术知识。

1. 论文的基本信息

1.1 论文资源

论文:https://arxiv/pdf/2201.11903.pdf

论文引用:

@article{wei2022chain,
  title={Chain-of-thought prompting elicits reasoning in large language models},
  author={Wei, Jason and Wang, Xuezhi and Schuurmans, Dale and Bosma, Maarten and Xia, Fei and Chi, Ed and Le, Quoc V and Zhou, Denny and others},
  journal={Advances in neural information processing systems},
  volume={35},
  pages={24824--24837},
  year={2022}
}

1.2 CoT的动机和方法

经过大量数据训练过的大语言模型天然的具备一定程度推理能力,为了解锁并使用这个能力,有研究者使用格式化的推理数据对大模型进行微调,然而数据的构建是一个成本高昂的问题;还有研究者使用小样本学习的方式,将输入大模型的提示语句中增加了一部分输入-输出示例,虽然不需要针对每个任务构建一个训练集,但是在一些需要推理的任务中性能欠佳。论文提出的CoT综合了上述方法的优点,通过小样本提示促使模型进行逐步推理,获得中间结果。

CoT有以下几个值得关注的属性:

  • 让模型将复杂问题分解成多步
  • 为研究者和用户提供模型推理过程的窗口,便于检查中间过程并了解模型运行机制
  • 原则上模型CoT可以应用于任何推理任务中
  • 只有当语言模型足够大时,才能通过CoT进行推理

2. 数学推理

2.1 实验设置

基准。作者在GSM8K、SVAMP、ASDiv、AQuA和MAWPS五个数学问题数据集上对CoT进行测试。

标准提示。作者考虑标准的小样本提示,将样例问答的输入-输出对以文本形式给到大语言模型,然后针对新问题进行测试。

思维链提示。作者手工地构造了8组小样本样例,每个样例都包含思维链提示,对于上述每个基准数据,都采用这些样例进行提示。

语言模型。作者在选择语言模型时,关注了不同的系列,每个系列又根据参数量做了选择。语言模型的类型主要包括:

  • GPT3(0.35B,1.3B,6.7B,175B)
  • LaMDA(0.422B,2B,8B,68B,137B)
  • PaLM(8B,62B,540B)
  • UL2 20B
  • Codex

2.2 实验结果

对于CoT的实验结果和结论,有以下要点:

  1. 单个图片比较,在参数量较小的模型中,CoT的作用不大,随着参数量的增大,CoT的作用越来越明显
  2. 横向比较,对于越需要复杂推理的任务,CoT的作用越明显
  3. GPT-3 175B和PaLM 540B加入CoT后可以取得比有监督学习更好的SOTA效果

2.3 消融实验

对于消融实验,作者比较了其他三种类型的提示方式:

只有方程。该参考实验主要用于验证CoT是否是通过输出数学等式实现推理的,因此要求模型在输出计算结果之前,输出获得这个计算结果所涉及到的推理公式。然而实验结果表明,这种方式并不能让模型获得更准确的结果,说明在没有自然语言推理步骤的情况下,直接将推理过程转换成公式是困难的。

只有计算变量。CoT有效的另一个可能原因是,它鼓励模型进行了更多的计算。因此作者设计了该实验,要求模型输出时通过一串点来表示一个变量,例如3用“…”表示,效果也和标准提示差别不大,这表明变量计算也不是CoT成功的关键。

结果之后进行CoT。CoT成功的另一个可能原因是CoT让模型更好利用预训练时的相关知识,因此作者将提示的答案和推理过程倒置,结果让然与基线模型类似,这表明CoT中的序列推理要比知识本身更有帮助。

2.4 CoT的鲁棒性

既然CoT有效,那么就有一个关键的问题,如果用户把提示样例换掉,还可以获得这么好的效果吗?作者在此做了一个实验来验证CoT的鲁棒性。让另外两个人写一些小样本推理样例,发现CoT的有效性和语言风格关系不大。作者也从GSM8K训练集中随机的选择一些样本作为CoT的小样本,也是有效的。这说明了CoT的鲁棒性。

4. 常识推理

基准。对于常识推理任务,作者选了CSQA、StrategyQA、BIG-bench effort中的Date Understanding和Sport Understanding,以及SayCan数据集进行测试。

提示。作者从训练集中随机选出一些样本作为CoT的样例,对于没有训练集的数据集,作者将验证集进行拆分,对前10个样本进行标注。

结果。结论和上一个小结类似:

  1. 增大模型参数量可以使得CoT取得更好的效果;
  2. PaLM540B加入CoT在StrategyQA上可以比SOTA更好;
  3. 这些结果证明了CoT在推理上的有效性。

5. 符号推理

两个任务。作者选了两个任务来验证CoT在符号推理任务上的性能。

  • 最后字母拼接。该任务需要模型将多个单词的最后字母拼接起来,例如Amy Brown拼接成“yn”;
  • 翻转硬币。这个任务给出硬币的初始状态,给出各种翻转或不翻转的一系列动作,让模型判断最终状态;

实验结果。PaLM 540B加入CoT后可以取得100%的准确率,但是小模型仍然性能较差。

6. 讨论

6.1 论文小结

整体来看,论文有以下要点需要关注:

  • CoT通过少量样本提示让模型进行逐步推理并给出中间步骤,低成本而高效地解决复杂问题;
  • CoT在小模型中作用不明显,但是随着模型参数量增大,CoT的作用更加明显,相比于其他类型的提示,CoT可以更好的挖掘参数量较大的模型的推理能力;
  • CoT在数学推理、常识推理以及符号推理等任务中表现出色。

6.2 CoT的局限性

CoT也有一些局限性:

  • CoT的内部原理并不清晰,本文并不能回答CoT是否真的让模型进行“推理”
  • 如果想做模型微调,CoT的标注成本是很高的
  • 其实没有一个标准来评价哪一条推理路径是正确的
  • CoT在参数量足够大的模型中作用明显,但是小模型作用一般,因此对于实际部署时,CoT存在局限

7. 有一些重要的问题

这一部分是包含在补充材料中的,作者试着回答了人们比较关心的一些问题。

7.1 为什么增大模型参数量可以提升CoT性能?

答案是多方面的,作者试着从误差分析的角度来解答。作者从PaLM 62B中人工选了45个错误样例,包括20个理解错误,18个步骤错误和7个其他错误。当模型参数量提高到540B时,这些错误都被大幅度的修正,这说明了大参数量的模型具备更强大的理解和推理能力。此外,还有几点需要留意:

  1. 小模型在很简单的符号映射任务也存在失误;
  2. 小模型似乎有较弱的数值计算能力;
  3. 小模型通常无法生成可解析的结果,要么重复胡嗲要么逻辑上没有给出答案;

7.2 提示工程充当了什么作用?

作者通过以下方式验证了CoT提示工程的敏感程度。

  • 不同的标注者。上文中已经介绍过,不同标注者有不同的标注风格,即使如此,CoT还是可以给出高于基线的性能;
  • 没有机器学习背景的标注者。GSM8K提供了思维链,这些思维链是由没有大众工作者标注的,但是实验证明了其有效性,因此标注者的背景不会影响CoT的作用。
  • 不同的提示案例。实验表明,采用不同的提示案例集合并不会影响CoT的有效性。
  • 提示案例的顺序。实验表明,调换不同的提示案例的顺序对CoT的性能影响不大,除了硬币任务。
  • 提示案例的个数。作者发现更多提示案例并不能引起进一步的效果提升。
  • 不同的语言模型。各个语言模型都得益于CoT。

即使如此,提示工程仍然重要,可以进一步提高模型的性能。

7.3 思维链提示可以提升我所关心的任务性能吗

当任务满足以下三个条件时,CoT可以受益:

  1. 任务需要进行推理或者有挑战性
  2. 参数量足够的大语言模型
  3. 尺度曲线过于平缓

7.4 对于算术数据集,为什么只用方程是不够的?

对于一些算术推理任务,模型难以将任务本身翻译成算法方程,模型更擅长用自然语言的方式进行逐步的分解,而非转换成方程式,比如:

8. 附录:论文的思维导图(大图,请在新标签页打开查阅)


有关本专栏的更多内容,请参考大语言模型文献调研专栏目录

笔者自知才疏学浅,难免疏漏与谬误,若有高见,请不吝赐教,笔者将不胜感激!

softargmax

2024年3月28日

本文标签: 简要模型思维论文Thought