爱收集资源网

能力与规模:涌现的曲线图

网络整理 2023-09-26 10:06

在论文[1]中,作者强调在语言模型的模型规模^1达到一定程度以后,模型会“涌现”(Emergency)出一些小模型所不具有的能力,这些能力包括但不限于:少样本提示(few-shot prompt)、多步推理能力(Multi-step reasoning)、指令执行(Instruction following)、程序执行(program execution)、模型矫治(model calibration)... 涌现这个概念借用了一篇名为《More is Different》[2] 的文章中提及的“从量变到质变的过程”:

涌现,是系统中的量变积累造成了质变的过程。

这个定义就能帮助我们理解LLM的涌现,但是还不够具体,作者给出了一个更适合于LLM的涌现的定义:

一个能力若果在小模型中不存在,但是在大模型中却存在,这种能力就是一种涌现。

注意到,涌现的能力神奇的一点在于,并不是持续增强小模型的规模,就能观察到该能力持续的提高的[^2],这种能力只有在模型的规模达到一定程度后,才能观察到。这个涌现的过程,在指标—模型规模的曲线图上才能很容易发觉这个模式,如Fig 1.所示,我们发觉在不同的测试集中,只有在模型规模达到了一定的程度后,某种能力才能涌现,这个过程并不是连续的,这意味着并不是对小模型进行简单的少量参数降低能够获得涌现能力。

Fig 1. 模型在不同测试集上的表现性能与模型规模的曲线图,从中能清楚地观察到,当模型规模达到一定程度后,某种能力(此处是few-shot prompt能力)涌现才能出现。

我们在简单介绍了涌现这个神奇的现象以后,有必要了解下few-shot prompt这些技巧,因为这些技巧在LLM中常常使用。few-shot/one-shot prompt和finetune都是会采用人工标明数据,但是二者是截然不同的方式,如Fig 2.所示,one-shot/few-shot prompt的方式会将标明数据作为LLM的输入的一部分,比如Fig 2. (a)中将已有的人工标明的Review和Sentiment的信息作为输入的提示,并且在这个提示以后拼接真正须要LLM预测的问题“Review: I love this movie”,并且将Sentiment留白大规模c程序设计 pdf,等待LLM的输出,Fig 2. (b)也是类似的过程。Fig 2.给出的反例都是one-shot prompt,而在few-shot prompt中则会拼接更多的人工标明数据,除此之外和one-shot prompt并没有太多的不同,而zero-shot prompt,则不会提供任何人工标明数据作为拼接,直接输入问题期望得到输出。one-shot prompt/few-shot prompt 这个过程也可以称之为In-Context Learning。

这个方式看起来很简单,但是其背后的思想却十分深刻。首先我们考察其和finetune的优缺。首先,in-context learning和finetune都是采用人工标明数据的方式,finetune会对模型进行由梯度指引的模型参数更新,而in-context learning这些技巧则不需要更新模型参数。这一点在LLM上有着特别大的优势,可想而知,当模型的规模达到了上千亿参数后,即便是模型finetune也须要特别大的代价,而不需要进行模型参数更新的in-context learning此时就变得更为诱人。

程序规模估计表_大规模c程序设计 pdf_大规模c程序设计

in-context learning还有更为有趣的地方,当我们采用pretrain -> finetune这些范式进行下游任务迁移的时侯,我们须要对不同的下游任务进行finetune,通用性有限。而假如我们采用pretrain -> prompt的范式进行下游任务的迁移大规模c程序设计 pdf,则只须要设计不同的prompt就可以了,不需要对预训练后的模型进行干涉,通用性大大提高。那么读者可能还会有疑问,简单地通过更改提示词,即便把若干个人工标明样本拼接起来,就能从LLM中获得我们想像中的输出吗?难道LLM真的是万能的?的确,一般的LM在few-shot prompt中只有接近随机的表现,但是一旦模型的规模达到一定程度,非常神奇的,few-shot prompt的能力就涌现下来了。如Fig 1.所示,我们发觉一旦语言模型的规模超过10B(百亿参数),few-shot prompt的性能表现将得到极大幅度的跳跃,这种跳跃式的曲线违反了我们之前对于模型规模和性能之间关系的经验。

Fig 2. 采用few-shot prompt的方式使用LLM模型。

few-shot prompt能力并不是惟一在LLM中涌现下来的能力,如Fig 3.所示,作者还探求了一些其他在LLM才能涌现的能力。

多步推理(Multi-step reasoning):多步推理能力能将一个较复杂问题拆解为多个较简单的步骤进行求解,这个能力是通过一种称之为Chain-of-thought prompting(思维链提示)的技术实现的。如Fig 3. (A)所示,只有在模型规模超过了10B以后,采用了CoT prompt技术的方式开始大幅度赶超不采用CoT prompt的方式。

指令拆解(Instruction Following):指令拆解能力在只提供对某个任务的粗糙描述的时侯(比如“将匹萨放进冰柜”),语言模型能对这个任务进行具体的拆解与执行(比如将前面的任务拆解为:首先将匹萨打包,然后打开冰柜,最后将匹萨放进空位,关闭冰柜)。如Fig 3. (B)所示,在模型规模小于10B的时侯,LLM的指令拆解能力出现了涌现。

程序执行(Program Execution):一些计算型任务须要将整个估算任务拆解为多步的估算过程,比如一个大数乘法或则一个程序执行过程,可以拆解为多步简单估算或则程序,如Fig 3. (C)所示,作者呈现了8位数字加法这个任务,在LLM中通过ScratchPad(草稿本,可以理解为将复杂运算拆解为若干简单估算的叠加?),在模型达到100M之后,能够明显赶超不采用Scratchpad的方式,因此也是一种能力涌现。

模型校正(Model Calibration):语言模型研究中还有一种能力称之为“校准”,指的是判别模型是否还能预测自身晓得怎么回答某个问题。有点生硬,其实就是须要让模型对自己不知道怎么回答的问题进行拒绝,这个能力在chatGPT上是存在的。如Fig 3. (D)所示,在模型规模达到52B以上的时侯,这个能力才有可能涌现。

Fig 3. 大模型涌现的其他能力。

除了以上提及的大模型涌现能力外,文章还列出了一些其他涌现现象以及对应的模型规模,如Fig 4.所示,不难发觉,大部分的涌现能力都要求模型规模足够大,起码须要10B以上。

Fig 4. 大模型的其他涌现能力与其模型规模。

Reference

[1]. Wei, Jason, Yi Tay, Rishi Bommasani, Colin Raffel, Barret Zoph, Sebastian Borgeaud, Dani Yogatama et al. "Emergent abilities of large language models." arXiv preprint arXiv:2206.07682 (2022).

[2]. Philip W. Anderson. More is different: Broken symmetry and the nature of the hierarchical structure of science. Science, 177(4047):393–396, 1972. URL

[^2]: 持续提升模型的规模,从而观察到模型的表现提高,我们将这个过程称之为**规模法则 (scaling law)**。

大规模c程序设计 pdf