查看原文
其他

GPT4技术原理二:大型语言模型的涌现能力

Ryan O'Connor 清熙
2024-08-25

编译:ChatGPT/王庆法

此篇可作为“GPT4技术原理二:相变与涌现”的拓展阅读

大型语言模型的涌现能力

涌现能力可以定义为涌现行为的突然出现。随着大型语言模型的增长,它们似乎会涌现出新的能力。这种涌现能力是如何产生的,又意味着什么呢?

语言模型(LMs)是一类概率模型,通过学习自然语言中的模式来进行训练。利用它们对这些模式的理解,可以实现生成式的应用,例如通过利用模型对这些模式的理解,生成故事中的下一个事件。

近年来,人们将大量的努力投入到将LMs扩展为大型语言模型(LLMs)中。在这个扩展过程中,通过使用更多的数据和更大的计算资源来训练更大的模型,LMs的能力可以稳定而可预测地提高,这可以通过量化指标的改进来观察到。

除了这些稳定的量化改进之外,扩展过程还会导致有趣的定性行为。随着LLMs的扩展,它们达到了一系列关键的规模,这些规模突然解锁了新的能力。LLMs并没有直接训练这些能力,它们出现在快速且不可预测的方式中,就好像从空气中涌现一样。这些涌现的能力包括执行算术、回答问题、概括段落等等,LLMs通过观察自然语言而学会了这些能力。

         

随着语言模型的不断增长,新的能力会突然涌现出来 [8]

这些涌现的能力是如何产生的,又意味着什么呢?在本文中,我们将先探讨涌现的概念,然后再从大型语言模型的角度来探讨它。最后,我们将讨论这对整个人工智能领域意味着什么。让我们开始吧!

         

介绍          
         
语言模型定义了单词序列上的概率分布。因此,它们可以自然地用于生成目的,通过预测给定文本开头的下一个最可能的单词。在下面的例子中,我们可以看到一个语言模型如何预测序列中下一个最可能的单词:          

给定句子开头,我们可以使用语言模型来预测下一个最可能的单词。

语言模型也可以用于执行其他任务。在这种情况下,LM以非监督的方式在大型语料库上进行训练,从而获得基本的语言知识。接下来,进行架构修改,并使用任务特定的数据集以监督方式对LM进行微调,使其在特定任务上具有表现力。在下面的图表中,我们可以看到GPT的主要Transformer LM如何针对不同的任务进行修改。特别地,输入被准备为带有特殊标记的专用序列,并将线性层附加到模型本身。          

GPT使用了任务特定的微调和架构修改[5]

事实证明,如果将语言模型扩展为大型语言模型,它可以在没有任何架构修改或任务特定训练的情况下执行这些任务[6]。仅通过以自然语言的形式表述它们,LLM能够执行这些任务,有时甚至比专门的、经过微调的网络表现更好[7]

通过将模型的文本输入编码为特定任务,大型语言模型能够完成任务而无需微调,仅通过下一个单词的预测。

虽然LLM随着其规模的增长而获得这些能力非常令人惊讶,但更有趣的是它们出现的方式。特别是,许多大型语言模型的能力似乎是涌现的。也就是说,随着LLM的增长,它们的表现能力从接近零的性能增加到有时以令人难以置信的速度和不可预测的规模达到最先进的性能。

比喻一下,考虑一个无法画出连贯图画的成长中的孩子。随着他的成长,他的大脑平稳地增长,他的精细运动技能平稳改善;然而,在达到某个临界年龄时,他的画画能力突然发生了跳跃。这种跳跃使孩子突然能够画出令人难以置信的肖像,尽管他的精细运动技能显示出逐渐的改善。

随着大脑规模的逐渐增大,涌现会导致能力的非线性增长。


涌现的概念非常惊人,但它并不仅限于人工智能领域。实际上,涌现已经在各种形式和许多学科中被观察和研究。在研究涌现与LLMs有关之前,让我们简要地探讨涌现作为一个整体概念。这个概述,以及来自物理学的具体例子,将帮助我们建立对LLMs中涌现观察如此令人兴奋的直觉

涌现作为一个普遍的概念

涌现行为并不仅仅局限于 LLMs,它实际上在许多领域中都有所体现,例如物理学、进化生物学、经济学和动态系统等。虽然没有一个单一的定义被广泛应用于各个领域中,但所有的定义归结为同一个基本现象,即对一个系统的数量参数进行微小变化就可以导致其质性行为发生巨大变化。这些系统的质性行为可以被视为不同的状态,在这些状态中,游戏规则或控制行为的方程式可以发生巨大变化。

为了阐述这个想法,让我们以物理学为例。考虑水在液态的情况下,该系统的行为受到流体力学的控制。随着水温的稳步降低,系统的行为特性可能会发生变化(例如粘度增加),但总体的质性行为相似,可以用流体力学来描述。

随着水的冷却,系统仍会遵循流体力学,尽管特定的参数值(例如粘度)发生了变化。

然而,如果温度继续稳步降低,您最终会遇到一个临界温度,此时系统的行为会发生 drastical 变化。水将进入固态(冰)阶段,经历相变过程,完全改变了游戏规则。突然间,系统不再遵循流体力学,而是遵循固体力学,进入了一种质量上行为规律发生变化的新阶段。

值得注意的是,这种行为变化是相对于温度而言突然发生的。当温度稳步下降时,一旦穿过临界阈值,行为就会突然发生变化。

虽然我们可能认为冰冻的过程是理所当然的,因为对于我们人类来说这是很平凡的,但这是一个非常显著的现象,在更奇特的领域中有着巨大的影响和应用。

大语言模型似乎也会出现这些显著的定性变化,只不过是随着规模而非温度的变化。现在让我们更仔细地看看这种现象。

大语言模型中的涌现

通过扩展语言模型的规模,可以预测到性能的持续改善,语言模型的交叉熵损失的缩放规律保持在超过7个数量级以上[2]

换言之,语言模型在其训练目标上的性能随着规模的增加而稳步提高。正如我们上面所提到的,这种行为与LLMs的涌现能力相反,后者并没有直接进行训练,但会快速出现。现在让我们看一个这种能力的具体例子。

         

猜测一个电影的表情符号序列

emoji_movie BIG-bench 中的一个任务[1],在该任务中,一系列的表情符号描述了一部电影,任务是在给定的序列中猜测电影。例如,序列👧🐟🐠🐡代表了《海底总动员》 ,序列🦸🦸👦👧👶代表了《超人总动员》。

BIG-G 是一种具有解码器-只有变形金刚架构的语言模型。下面我们可以看到 BIG-G emoji_movie 上的不同规模下的性能表现。

从上面可以看出,这个模型在各种规模下表现都相当糟糕,这或许并不令人惊讶。毕竟,语言模型仅仅定义了一个基于标记序列的概率分布,而这个任务需要在这个表情符代表哪个电影?之后找到海底总动员这个最可能的字符串。

然而,随着模型规模的增大,它的表现似乎略有改善。如果我们只使用最后几个规模来外推,我们可能会得到类似于下图的结果,其中实线是外推的结果。

然而,实际上我们发现了这个现象:

经过一个明显的临界值(在10的10次方10的11次方有效参数之间),模型似乎进入了一个新的阶段,在这个阶段它可以以极高的准确度完成这个(相当复杂的)任务。

跨任务的涌现

这种准确性提高并不是唯一在 BIG-bench 上表现出类似行为的任务 - 还有几个其他任务也表现出了类似的现象。有些神秘的是,尽管这些任务相对不相关,但所有这些能力都在相似的规模下出现。

随着 Transformer 语言模型的扩展,它们以一种紧急的方式获得了能力。修改自来源(修改自[1]

这种现象的重要之处在于,我们事先并不知道这种情况会发生,甚至不知道它可能发生的规模。因此,尽管我们可以尝试设计新的架构或其他创新来解决涉及自然语言的复杂问题,但我们可能仅通过扩大 LLM 的规模就能解决这些问题。

即使这些问题可以通过更好的架构或其他创新来解决,不断改进的硬件和 AI 生态系统也为时间独自解决这些问题的可能性留下了空间。

         

涌现能力,事实还是幻象?

虽然这些新出现的能力令人兴奋,但现在是时候进行一些健康的科学怀疑了。正如我们在本文开头所提到的,涌现现象作为一个概念非常引人注目,并且通常遵循系统范式的根本变化,其中游戏规则发生改变。目前尚不清楚这对于语言模型来说究竟意味着什么。

研究人员试图为LLMs中的新奇现象提供逻辑解释,现在让我们看看其中两个解释。

多步推理

其中一个最简单的解释是,LLMs显示出新出现现象的原因是我们实际上正在测量的内容。如果LLMs在推理方面随着规模的增大逐渐变得更好,这些改进可能会导致高度非线性的观察结果。如果我们正在测量的复杂任务可以被描述为需要完整的推理链才能测量成功,那么推理能力的增量改进将被掩盖。这是[1][2]简要提到的,但让我们通过一个例子来详细阐述这个想法。

考虑一个模型M,它有一个成功单步推理的概率p。此外,考虑一个需要十个成功推理步骤的多步推理问题来解决。假设推理步骤是独立的,则k步成功的概率由二项分布给出。下面的图显示了至少得到x个成功的概率,作为p的函数变化。因此,解决问题的概率由最后一个点给出,其中x = 10(用红色标记以区别)。

概率的迅速增加随着p的平稳调整而来。我们可以直接将其绘制如下,其中y轴对应于完整链成功的概率,而x轴给出p

曲线的陡峭程度意味着那些涉及多步推理的能力可能不是真正的突显现象,而仅仅是(或至少部分是)由于执行一项基本任务的能力(生成符合推理答案的答案),这种能力会随着规模的扩大而平滑地改变。

重要的是,上述曲线随着推理链中步骤数n的增加而变得更加陡峭。下面我们看到这个曲线随着n的变化而变化的图表。

因此,我们预期更复杂的问题只能在最大规模下得到解决,并且这些问题的改进速度将相应增加。

需要注意的是,这只是一个玩具模型,我们还没有定义推理的含义,也没有暗示我们如何平滑地衡量LM生成响应以与推理答案相一致的能力。这个例子只是提供了一些直觉,即对基本能力进行小的改变可能会对LLMs解决更复杂问题的能力产生激烈的连锁反应。

         

评价指标不一致

在前面的部分,我们考虑了能力表现看似具有涌现特性,但实际上是依赖于不断改善的值的复合效应。除了表现出涌现现象依赖于我们衡量的内容外,它们也可能取决于我们如何进行这些测量,也就是说,可能是由于评价指标不一致。

涌现行为必然与观察到其出现的衡量相关联。在我们上面的表情符号电影任务示例中,其评价指标是准确的字符串匹配。如果我们将其评价指标更改为多选(正确的),而不是准确的字符串匹配(左侧),我们会看到更为渐进的改进,而涌现行为也会消失。

更改任务的评价指标可能会消除涌现现象的出现。[1]

如果我们深入了解每个评价指标的计算方式,这些涌现现象的存在看起来更加脆弱。对于周期元素任务,模型必须回答给定原子序数的元素名称。正如[1]的作者所指出的那样,精确的字符串匹配指标隐藏了正确的输出。例如,有时模型会输出类似具有原子序数1的元素是氢的内容,但由于它与这个字符串并不完全匹配,因此表现看起来不佳,需要进行后处理以进行纠正。

更进一步,我们可以消除类似于准确的字符串匹配这种全有或全无的评价方式。由于我们可以直接计算不同响应的概率,因此我们可以评估正确响应的对数似然。当我们这样做时,我们可以看到正确答案的概率逐渐提高,并且随着规模的增加,正确分数和错误分数之间的似然性差异不断增大。

[1] 我们可以类似地评估各种明显的 emergent 能力的对数似然,并在所有这些能力上随着规模的扩大逐渐提高。

我们可以类似地评估各种看似出现的能力的对数似然,并在各种能力的规模上看到逐渐的改善。

像完全字符串匹配这样的评估指标是不连续的,没有接近度的概念。例如,如果我们训练一个代理来向目标投掷球,这种评估指标就像衡量代理是否能够命中目标,而不是它离目标有多接近。即使最终目标是训练代理实际上能够击中目标,但距离目标1cm比距离目标1km要好得多,而将实际击中目标作为“ emergent ”能力进行衡量并不能完全捕捉到整个情况。

对这种观点的反驳是,最终,我们只关心AI在我们作为人类关心的任务上的表现。如果AI代理无法达到某个特定阈值的某个任务,则我们认为该代理在所有意图和目的上都是失败的。但是我们必须记住,像BIG-bench组成的任务是测量一个特定能力的单个探针 - 在聚合的所有任务中的表现才能为我们提供LLM整体行为的更全面的衡量。

当我们考虑像GPT-3这样的模型的整体图景时,通过查看跨基准测试的聚合性能,我们发现它随着规模的扩大而平滑。

         

聚合性能跨越基准测试的GPT-3是平稳的[7]。即使如此,在基准测试上的聚合表现也不能完全表征模型,它的表现将因我们如何策划基准测试本身而异。

还有其他潜在的解释[1][2],可以解释LLM的出现能力,但上述解释已经足够了。

这一切意味着什么?

我们谈论了出现的概念,以及它如何在大型语言模型中出现等。但这一切意味着什么?我们从哪里继续前进?

简而言之,目前为止,尚不清楚。有几件关于大型语言模型出现能力的重要事情需要牢记。

1.我们不知道它们将在什么规模下出现

2.我们不知道直到它们出现时的能力水平

3.我们不知道可能的能力景观

即使像多步推理这样简单的因素对于出现新能力具有重要的解释作用,它们的存在仍然很重要。最终,如果完成我们作为人类真正关心的任务需要多步推理,而其中许多任务可能确实需要这样,那么新能力的简单解释并不重要。发现在实际应用中增加模型的规模可能会提高其性能,这一简单的观察足以说明这一点。

问题变成了,为什么我们不这样做扩大规模呢?就像我们在物理学中建造越来越大的粒子对撞机以寻找新的粒子一样,为什么我们不构建越来越大的语言模型以寻找新的出现能力呢?大型强子对撞机的成本高达近50亿美元,这是OpenAI的总初始投资的数倍之多,而它并不是为了实际应用而建造的。为什么我们没有为这种具有巨大转型潜力的技术做出这种投资呢?

我们可以扩大到多少?

Anthropic公司的安迪·琼斯(Andy Jones)在几年前的一项分析假定,我们当时(2020)有能力构建比那时已经建造的模型大数倍的模型。这项分析重要的是它是在GPT-3论文[7]发布后才出现的。

关于GPT-4的早期传闻称,该模型将从GPT-31750亿参数扩展到GPT-4100,000亿参数。根据[1]的说法,如果这样的模型保持当前的趋势,它将接近人类在许多现有基准测试中的表现水平。

一份研究表明,拥有100万亿个参数的GPT模型将接近人类在各项任务上的表现水平[1]

然而,OpenAICEO Sam Altman却称这些100万亿参数的说法完全没有根据,而预计GPT-4的规模不会比GPT-3大太多。但是,如果这个分析是正确的,为什么不建造一个更大的模型呢,即使它不是一个100万亿参数的模型?

Jones的分析主要基于OpenAI2020年发布的一篇论文[3],讨论神经语言模型的规模定律。特别是,他们研究了在计算量固定的情况下,如何在增加训练数据和增加模型大小之间分配计算资源。该论文发现,模型大小应该消耗更多的资源,这意味着扩大模型规模比扩大数据集规模更为重要。

具体而言,模型大小应该比数据集大小增长快三倍。在计算资源增加10倍的情况下,数据集大小应该增加约1.83倍,而模型大小应该增加5.48倍。

一个拥有100万亿个参数的模型将比GPT-3571倍。因此,根据OpenAI的规模定律,我们预计这样一个模型需要多达190倍的数据。

根据OpenAI 2020年的规模定律,GPT-3100T参数模型的数据需求如下。

然而,最近DeepMind的研究发现了更新的规模定律。事实上,Chinchilla论文的作者们发现数据和模型大小应该成等比例缩放。

特别是,他们发现最佳训练LLM所需的标记数应该是(非嵌入)参数数的20倍。根据这种规模定律,一个100T参数模型需要约2000T标记。这比[3]中的规模定律预计的多了20倍,比GPT-3多了惊人的4000倍。

GPT-3是在多个数据集上进行训练的,其中大部分数据来自Common CrawlOpenAI使用了来自Common Crawl45TB数据,这意味着一个100T参数模型需要180PB的这种数据才能根据Chinchilla的规模定律进行最优训练。用于训练GPT-3的其他数据集将被这么大的数据规模所淹没,这意味着用于训练100T参数模型的所有数据都需要来自像Common Crawl这样的数据集。此外,由于非Common Crawl数据集具有更高的质量,因此它们被优先采样,因此我们可以看到180PB实际上是训练这种模型所需数据量的下限。截至本文撰写时,整个Common Crawl的数据量约为12PB,因此远远不足以满足这个数字。

我们可以看出,Altman迅速驳回100T参数的声明的原因。虽然每天生成的数据量逐年增长,但只有一小部分被存储、可用且适合用于训练。结合硬件和成本限制,这意味着将模型扩展到如此庞大的规模以搜索出新的紧急能力在目前是不切实际的。

         

最后的话

大型语言模型的涌现能力观察是一个有趣的发展。需要进行更多的研究来获得更全面的画面,例如测试使用早停止训练的大型模型与使用相当测试损失和训练计算的较小模型(具有等效测试损失和训练计算)的任务性能,以查看规模是否是LLM中出现的关键因素。

建立一个认知层次结构的任务列表,以识别明显且可衡量的能力,并将它们列为更复杂任务的必要先决条件,可能有助于我们开始预测在哪个规模下可能会发生一些涌现的能力,或者至少提供一组排序。

此外,关于“emoji_task”的涌现并不意味着太多。如果一个模型还显示出与类似认知集群中的其他任务相关的出现,那么我们就可以更多地了解与基本推理概念相关的出现,而不是孤立的任务,例如“emoji_movie”

最终,即使存在潜在的简单因素可以为表面上的涌现能力提供解释,它们存在的事实仍然是一个令人兴奋的发展。毕竟,我们作为人类最终更关心的是AI如何影响我们的生活,而不是连续性能曲线。还有哪些未被发现的能力?

如需了解更多关于AI的信息,请查看我们的其他内容,例如《ChatGPT的工作原理》或《泊松流生成模型入门》。或者,可以在Twitter上关注我们,以便在我们发布新内容时了解最新动态!

         

参考资料

[1] Beyond the Imitation Game: Quantifying and extrapolating the capabilities of large language models

[2] Emergent Abilities of Large Language Models

[3] Scaling Laws for Neural Language Models

[4] Training Compute-Optimal Large Language Models

[5] Improving Language Understanding by Generative Pre-Training

[6] Language Models are Unsupervised Multitask Learners

[7] Language Models are Few-Shot Learners

[8] Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance

         

继续滑动看下一个
清熙
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存