大型语言模型简介

什么是语言模型?

语言模型用于估计较长的 token 序列中出现某个 token 或 token 序列的概率。词元可以是字词、子字词(字词的子集),甚至是单个字符。

请看以下句子以及可能完成该句子的 token:

When I hear rain on my roof, I _______ in my kitchen.

语言模型会确定不同 token 或 token 序列的概率,以补全该空白。例如,以下概率表列出了一些可能的令牌及其概率:

Probability 令牌
9.4% 煮汤
5.2% 温热水壶
3.6% 畏缩
2.5% 小憩
2.2% 放松

在某些情况下,令牌序列可能是一整个句子、段落,甚至是一整篇文章。

应用可以使用概率表进行预测。 预测结果可能是概率最高的词元(例如“煮汤”),也可能是从概率高于特定阈值的词元中随机选择的词元。

估计文本序列中填空内容的概率可以扩展到更复杂的任务,包括:

  • 生成文本。
  • 将文本从一种语言翻译成另一种语言。
  • 总结文档。

通过对词元的统计模式进行建模,现代语言模型可以开发出极其强大的语言内部表示,并生成合理的语言。

N 元语法语言模型

N 元语法是用于构建语言模型的有序字词序列,其中 N 是序列中的字词数量。例如,当 N 为 2 时,N 元语法称为 2 元语法(或 二元语法);当 N 为 5 时,N 元语法称为 5 元语法。假设训练文档中包含以下短语:

you are very nice

生成的 2-gram 如下所示:

  • 你是
  • 非常
  • 非常好

当 N 为 3 时,N 元语法称为 3 元语法(或三元语法)。对于同一短语,生成的 3-gram 为:

  • 您非常
  • 非常不错

如果输入两个字词,基于 3-gram 的语言模型可以预测第三个字词的可能性。例如,假设有以下两个字词:

orange is

语言模型会检查从其训练语料库中派生的所有以 orange is 开头的三元组,以确定最有可能的第三个字词。可能有数百个 3-gram 以 orange is 这两个字开头,但您可以只关注以下两种可能性:

orange is ripe
orange is cheerful

第一种可能性 (orange is ripe) 是指水果橙子,而第二种可能性 (orange is cheerful) 是指颜色橙色。

上下文

人类可以记住相对较长的上下文。观看戏剧的第三幕时,您会记住第一幕中介绍的角色。同样,长笑话的妙语之所以能让你发笑,是因为你记得笑话开头的背景信息。

在语言模型中,上下文是指目标令牌之前或之后的有用信息。上下文可以帮助语言模型确定“orange”是指柑橘类水果还是颜色。

上下文可以帮助语言模型做出更好的预测,但 3-gram 是否提供了足够的上下文?遗憾的是,3-gram 提供的唯一上下文是前两个字词。例如,这两个字词orange is无法为语言模型提供足够的上下文来预测第三个字词。由于缺乏上下文,基于 3-gram 的语言模型会犯很多错误。

与较短的 N 元语法相比,较长的 N 元语法肯定会提供更多上下文。 不过,随着 N 的增大,每个实例的相对出现次数会减少。当 N 变得非常大时,语言模型通常只包含每个 N-token 出现情况的单个实例,这对于预测目标 token 并不是很有帮助。

循环神经网络

循环神经网络可提供比 N 元语法更多的上下文信息。循环神经网络是一种神经网络,可基于一系列 token 进行训练。例如,循环神经网络可以逐步学习(并学会忽略)句子中每个字词的所选上下文,就像您在听别人说话时一样。大型循环神经网络可以从包含多个句子的段落中获取上下文。

虽然循环神经网络比 N-gram 模型学习的上下文更多,但循环神经网络能够直观推断出的有用上下文量仍然相对有限。循环神经网络会逐个评估信息“令牌”。相比之下,下一部分将介绍的大语言模型可以同时评估整个上下文。

请注意,训练长上下文的循环神经网络会受到梯度消失问题的限制。

练习:检查您的理解情况

哪个语言模型能更好地预测英文文本?
  • 基于 6-gram 的语言模型
  • 基于 5-gram 的语言模型
答案取决于训练集的大小和多样性。
如果训练集包含数百万份不同的文档,那么基于 6-gram 的模型可能会优于基于 5-gram 的模型。
基于 6-gram 的语言模型。
此语言模型具有更多上下文,但除非此模型已针对大量文档进行训练,否则大多数 6-gram 都是罕见的。
基于 5-gram 的语言模型。
此语言模型的上下文较少,因此不太可能优于基于 6-gram 的语言模型。