什么是语言模型?
经典的语言模型(LM)的定义是对令牌序列的概率分布。假设我们有一个令牌集合的词汇表。语言模型为词汇表中的每个令牌序列分配一个概率(介于0和1之间的数字):
这个概率直观地告诉我们一个令牌序列有多“好”。例如,如果词汇表是,语言模型可能会分配以下概率:
从数学上讲,语言模型是一个非常简单而美丽的对象。但是这种简单性是具有欺骗性的:赋予所有序列有意义的概率需要非凡的(但隐式的)语言能力和世界知识。
例如,语言模型应该隐含地为
分配一个非常低的概率,因为它是不合语法的(句法知识)。语言模型应该隐含地为分配比更高的概率,因为它涉及世界知识:两个句子在句法上相同,但在语义上有差异。如定义,语言模型接受一个序列并返回一个概率,以评估其好坏程度。我们还可以根据语言模型生成一个序列。这可以通过从语言模型中以概率采样一个序列来实现,表示为:
如何在计算上有效地执行这一操作取决于语言模型的形式。在实践中,我们通常不直接从语言模型中采样,这既是因为真实语言模型的限制,也是因为我们有时希望获得的不是一个“平均”序列,而是更接近“最佳”序列的东西。
自回归语言模型
一个写作序列的联合分布的常见方法是使用概率的链式法则:
特别地,是下一个令牌在给定前面的令牌的条件概率分布。
当然,任何联合概率分布在数学上都可以这样写,但自回归语言模型是这样一个模型,其中每个条件分布都可以高效地计算(例如,使用前馈神经网络)。
现在,要从自回归语言模型生成整个序列,我们逐个令牌地采样,给定到目前为止生成的令牌:
其中是一个控制语言模型输出随机性的温度参数:
:在每个位置确定性地选择最有可能的令牌 :从纯语言模型中正常地进行采样 :从整个词汇表上均匀采样
然而,如果我们只是将概率提升到的幂次,概率分布可能不会归一化为1。我们可以通过重新规范化分布来解决这个问题。我们将规范化版本称为退火条件概率分布。
更一般地,我们可以通过指定一些前缀序列(称为提示)并采样其余的(称为完成)来进行条件生成。
总结
语言模型是对序列的概率分布。 直观上,一个好的语言模型应该具有语言能力和世界知识。 自回归语言模型允许在给定提示的情况下高效生成完成。 温度可以用于控制生成中的变异程度。
历史简史
信息论、英语熵、n-gram模型
信息论。语言模型可以追溯到克劳德·香农(Claude Shannon),他在1948年创立了信息论,并发表了开创性论文 A Mathematical Theory of Communication。在这篇论文中,他引入了分布的熵,定义为:
熵衡量了任何算法需要对样本
进行编码(压缩)为比特串的期望位数:熵越低,序列越“有结构”,编码长度越短。 直观上, 是用于表示以概率发生的元素的代码长度。 如果,我们应该分配比特(等效地, nats)。
英语熵。香农对衡量英语的熵特别感兴趣,将其表示为字母序列。这意味着我们可以想象存在一个“真实”的分布(这个存在性是可疑的,但它仍然是一个有用的数学抽象),可以生成英语文本的样本。
香农还定义了交叉熵:
它衡量了使用模型(用长度为的代码表示)对样本进行编码所需的期望比特数(nats)。
一个关键的性质是交叉熵上界为熵:
这意味着我们可以通过构建一个(语言)模型,该模型只使用来自真实数据分布的样本,来估计,而通常是无法获得的,特别是当表示英语时。
因此,通过构建更好的模型(由衡量)可以更好地估计熵。
在1948年,香农首次使用n-gram模型作为,但在他1951年的论文 Prediction and Entropy of Printed English 中,他引入了一个巧妙的方案(称为香农游戏),其中由人类提供:
人类不擅长提供任意文本的校准概率,因此在香农游戏中,人类语言模型会反复尝试猜测下一个字母,并记录猜测的次数。
N-gram模型的应用
语言模型首次在需要生成文本的实际应用中得到应用:
在20世纪70年代用于语音识别(输入:声学信号,输出:文本), 在20世纪90年代用于机器翻译(输入:源语言文本,输出:目标语言文本)。
当时解决这些任务的主导范式是噪声信道模型。以语音识别为例:
我们假设存在一些从某个分布中采样的文本。 该文本被实现为语音(声学信号)。 然后,给定语音,我们希望恢复(最有可能的)文本。 这可以通过贝叶斯规则完成:
语音识别和机器翻译系统使用了n-gram语言模型,该模型基于单词(最初由Shannon引入,但也适用于字符)。
在n-gram模型中,标记的预测仅取决于最后个字符,而不是整个历史记录:
例如,三元模型()将定义:
这些概率是基于各种n-gram(例如和)在大型文本语料库中出现的次数计算的,并经过适当的平滑处理以避免过拟合(例如Kneser-Ney平滑)。
将n-gram模型拟合到数据中是非常计算廉价且可扩展的。 因此,n-gram模型被训练在大量的文本上。例如,Brants等人 (2007)在2万亿标记上训练了一个5-gram模型,用于机器翻译。相比之下,GPT-3仅训练了3000亿标记。然而,n-gram模型在根本上存在局限性。
如果太小,那么模型将无法捕捉长程依赖性。然而,如果太大,获得好的概率估计将是统计上不可行的(即使在“巨大”的语料库中,几乎所有合理的长序列也显示为0次)。
因此,语言模型在仅捕获局部依赖关系(而无法捕捉长程依赖关系)并非巨大问题的语音识别和机器翻译等任务中受到限制。
神经语言模型
语言模型迈向重要一步的是引入神经网络。Bengio等人,2003首创了神经语言模型,其中由神经网络给出。
神经语言模型的上下文长度仍受限制,但现在在统计上是可行的,可以估计更大值的的神经语言模型。
然后,主要挑战在于训练神经网络更为计算昂贵。他们仅在1400万个词上训练了一个模型,并表明其性能优于在相同数量的数据上训练的n-gram模型。但由于n-gram模型更具可伸缩性,数据不是瓶颈,n-gram模型在至少另一个十年内继续占据主导地位。
自2003年以来,神经语言建模的另外两个关键发展包括:
循环神经网络(RNNs),包括长短时记忆(LSTMs),允许标记的条件分布依赖于 整个上下文 (实际上),但这些很难训练。
Transformer是一种更近期的架构(2017年为机器翻译而开发),再次返回到具有固定上下文长度,但更容易训练(并利用了GPU的并行性)。而且以对许多应用程序足够“大”(GPT-3使用)。
为什么要学习大语言模型?
首先,什么是“大型”?随着深度学习在2010年代的崛起和主要硬件的进步(例如GPU),神经语言模型的规模急剧增加。以下表格显示,仅在过去的4年里,模型大小已经增加了5000倍:
| 模型 | 组织 | 日期 | 大小(# 参数) |
|---|---|---|---|
| ELMo | AI2 | 2018年2月 | 94,000,000 |
| GPT | OpenAI | 2018年6月 | 110,000,000 |
| BERT | 2018年10月 | 340,000,000 | |
| XLM | 2019年1月 | 655,000,000 | |
| GPT-2 | OpenAI | 2019年3月 | 1,500,000,000 |
| RoBERTa | 2019年7月 | 355,000,000 | |
| Megatron-LM | NVIDIA | 2019年9月 | 8,300,000,000 |
| T5 | 2019年10月 | 11,000,000,000 | |
| Turing-NLG | Microsoft | 2020年2月 | 17,000,000,000 |
| GPT-3 | OpenAI | 2020年5月 | 175,000,000,000 |
| Megatron-Turing NLG | Microsoft, NVIDIA | 2021年10月 | 530,000,000,000 |
| Gopher | DeepMind | 2021年12月 | 280,000,000,000 |
尽管技术机制很大程度上相同,但令人惊讶的是,“仅仅扩大”这些模型 产生了新的出现行为,导致具有 qualitatively 不同能力和 qualitatively 不同社会影响。
相对于2018年之前的语言模型主要用作更大系统的一个组成部分(例如语音识别或机器翻译),语言模型越来越有能力成为一个独立的系统,这在过去是难以想象的。
GPT-3最引人注目的可能是它能执行上下文学习。让我们从一个例子开始
Input: Where is Stanford University?
Output: Stanford University is in California.
我们看到GPT-3给出的答案不是最具信息量的,可能需要更直接的回答而不是一个完整的句子。
在正常的监督学习中,人们指定了一个输入-输出对的数据集,并训练一个模型(例如,通过梯度下降的神经网络)来拟合这些示例。每次训练运行都会产生一个不同的模型。然而,在上下文学习中,只有一个语言模型,可以通过提示来迫使执行各种不同的任务。
上下文学习肯定超出了研究人员预期的可能性,是出现行为的一个例子。鉴于语言模型的强大功能,看到它们的广泛采用并不奇怪。
首先,在研究领域,NLP社区已经完全被大型语言模型改变。几乎所有各种任务的最新系统,如情感分类、问答、摘要和机器翻译等,在某种类型的语言模型的基础上构建。
考虑到像BERT这样的模型所提供的性能改进,似乎每个使用语言的初创公司都在一定程度上使用这些模型。总的来说,这些模型因此影响着数十亿人。
大模型背后的数据集
回顾一下,大语言模型是在"原始文本"上进行训练的。 为了具有高度的能力(例如,具有语言和世界知识),这些文本应该涵盖广泛的领域、流派、语言等。
一个自然的地方(但不是唯一的地方)来寻找这样的文本是网络,因此这将是我们关注的主要焦点。 网络是绝对庞大的。 作为下限,谷歌搜索索引有100PB(参考)。 实际的网络可能甚至更大,深网比这还要大。
值得注意的是,驻留在大公司内部的私有数据集比公开可用的还要大。 例如,沃尔玛每小时生成2.5PB的数据!
Common Crawl是一个非营利组织,爬取网络并提供免费的快照供公众使用。 由于其便利性,它已成为训练许多模型(如T5、GPT-3和Gopher)的数据的标准来源。Common Crawl的2021年4月快照有320TB的数据, 这比谷歌索引小几个数量级。
尽管网络数据丰富,但在Bender等人,2021中已经注意到:
尽管规模庞大,大规模数据仍然在人口中有不均匀的表示。 互联网数据过度代表来自发达国家的年轻用户。 GPT-2的训练数据基于Reddit,根据Pew Internet Research 2016年的调查,67%的Reddit用户在美国为男性,64%年龄在18至29岁之间。 8.8-15%的维基百科编辑是女性。 互联网上的骚扰可能会让某些人(跨性别者、酷异者、神经多样性者)望而却步。 过滤“不良词汇”可能会进一步边缘化某些群体(例如,LGBT+)。
语言模型类型
迄今为止,我们将语言模型定义为对令牌序列的概率分布
,正如我们所见,这是非常优雅和强大的(通过提示,语言模型我们将扩展我们对语言模型的概念,涉及三种类型的模型。
仅编码器模型(BERT、RoBERTa等)
这些语言模型生成上下文嵌入,但不能直接用于生成文本。
这些上下文嵌入通常用于分类任务(有时大胆地称为自然语言理解任务)。
示例:情感分类
示例:自然语言推理
优势: 的上下文嵌入可以双向依赖于左侧上下文()和右侧上下文()。 缺点:不能自然地生成完成。 缺点:需要更多的特定训练目标(掩码语言建模)。
仅解码器模型(GPT-2、GPT-3等)
这些是我们标准的自回归语言模型,给定一个提示 ,它既生成上下文嵌入,又生成下一个令牌 的分布(以及递归地,整个完成 )。
示例:文本自动完成
缺点: 的上下文嵌入只能单向依赖于左侧上下文()。 优势:可以自然地生成完成。 优势:简单的训练目标(最大似然)。
编码器-解码器模型(BART、T5等)
这些模型在某些方面可以拥有两全其美:它们可以使用输入 的双向上下文嵌入,并且可以生成输出 。
示例:表格到文本生成
优势: 的上下文嵌入可以依赖于左侧上下文()和右侧上下文()。 优势:可以自然地生成输出。 缺点:需要更多的特定训练目标。






