暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

小白学大模型:语言模型介绍

Coggle数据科学 2023-12-21
633

什么是语言模型?

经典的语言模型(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倍

模型组织日期大小(# 参数)
ELMoAI22018年2月94,000,000
GPTOpenAI2018年6月110,000,000
BERTGoogle2018年10月340,000,000
XLMFacebook2019年1月655,000,000
GPT-2OpenAI2019年3月1,500,000,000
RoBERTaFacebook2019年7月355,000,000
Megatron-LMNVIDIA2019年9月8,300,000,000
T5Google2019年10月11,000,000,000
Turing-NLGMicrosoft2020年2月17,000,000,000
GPT-3OpenAI2020年5月175,000,000,000
Megatron-Turing NLGMicrosoft, NVIDIA2021年10月530,000,000,000
GopherDeepMind2021年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等)

这些模型在某些方面可以拥有两全其美:它们可以使用输入 的双向上下文嵌入,并且可以生成输出

  • 示例:表格到文本生成
  • 优势: 的上下文嵌入可以依赖于左侧上下文()和右侧上下文()。
  • 优势:可以自然地生成输出。
  • 缺点:需要更多的特定训练目标
学习大模型、推荐系统、算法竞赛
添加👇微信拉你进群
加入了之前的社群不需要重复添加~

文章转载自Coggle数据科学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论