admin管理员组

文章数量:1534200

  • chain of thought 也就是 CoT ,一经提出就引发了社区对它的热烈讨论,CoT 能够帮助大规模语言模型解决复杂的算术常识及字符推理等任务。

背景知识

语言模型

  • 语言模型的本质是对任意一段文本序列的概率进行建模
  • 如果将语言模型看成一个大黑盒的话,它的输入是一段文本序列,输出也是一段文本序列,通过训练语言模型,就能使得给定的文本序列和输出的文本序列拼接起来所组成的一整段文本序列的概率尽可能比较大
  • 文献:Chain of Thought Prompting Elicits Reasoning in Large Language Models(arxiv/abs/2201.1190)
  • 这种情况下使用到了少样本学习,在输入问题之前,手动设计一些问题和答案的样例(样例的答案给出中间推理步骤),这些问题和答案都需要手动构造,所以叫 Manual-CoT
  • 语言模型的输入是一些手动设计的问题和答案的参考样例连接一个真正需要求解的问题,然后让语言模型进行续写
  • Manual-CoT Zero-Shot-CoT 的性能要好,因为它采用的是 few shot ,在输入中提供了一些问题、中间推理步骤以及答案的样例给语言模型进行参考。但是,提供这些样例需要进行人工设计,这就需要一定的人工成本

4、Auto-CoT

Abstract

现在语言模型的规模越来越大,但是即便是现在最大的语言模型,它们也往往很难在涉及到推理方面的任务取得很好的表现,也就是说,他们通常很难在数学,符号,以及常识的推理上取得尚佳的表现

这篇文章主要是针对大语言模型在遇到语言推理任务时的局限性,提出了 chain of thought,也就是思维链

  • 文中也给出了 CoT 的定义:人类在遇到一系列问题时所产生的推理步骤,而它们的表现形式就是一系列的短句子(比如说在背景介绍中所提到的遇到数学问题时所产生的中间推理步骤)

最终的实验效果非常好,比如说在使用谷歌内部的 540B 参数量的 PaLM 大语言模型,CoT 能够在像 GSM8K 这样比较难一点的数学问题数据集上取得新的 state of art

在此前关于大规模语言模型的推理任务中,有两种方法:针对下游任务对模型进行微调;为模型提供少量的输入输出样例进行学习。但是这两种方法都有着局限性,前者微调计算成本太高,后者采用传统的输入输出样例在推理任务上效果很差,而且不会随着语言模型规模的增加而有实质性的改善。

语言模型的规模达到 100B 的参数量之后,就能够在像 sentiment analysis and topic classification 这种分类任务上取得非常好的结果

  • 作者将这类任务归纳为 system-1,也就是能够人类很快很直观地理解的任务
  • 还有一类任务需要很慢而且是很仔细的考虑,作者将其归纳为 system-2 (比如一些设计逻辑、常识的推理任务

作者发现,即便语言模型的规模达到了几百B的参数量,也很难在 system-2 这类任务上获得很好的表现

  • 作者将这种现象称为 flat scaling curves:如果将语言模型参数量作为横坐标,在 system-2 这类任务上的表现作为纵坐标,则折线就会变得相当平缓,不会像在 system-1 这类任务上那么容易就实现模型的性能随着模型参数量的增长而提升,也就是说,在 system-2 这类任务上语言模型就很难大力出奇迹了

针对这个问题,作者提出了 chain of thought (CoT)这种方法来利用大语言模型求解推理任务

  • 上图展示了在 CoT 诞生之前是怎样使用标准的 prompting 方法来求解推理任务的
  • 首先这是一个少样本学习的方法,需要给出一些问题和答案的样例,然后拼接这正想要求解的问题,最后再拼接一个字符串“A:”之后输入到大语言模型中,让大语言模型进行续写
  • 大语言模型会在所提供的问题和答案的样例中学习如何求解,结果发现很容易出错,也就是上面提到的大语言模型在 system-2 上很容易遇到瓶颈

本文标签: 也就是思维chainThoughtCoT