什么是语言模型?
语言模型 估计某个词元的概率 词元序列。令牌 可以是单词、子词(单词的子集),甚至是单个字符。
请考虑以下句子以及可能完成它的词元:
When I hear rain on my roof, I _______ in my kitchen.
语言模型会确定不同词元或 补全空白的词元序列。例如,以下 概率表列出了一些可能的词元及其概率:
Probability | 令牌 |
---|---|
9.4% | 做汤 |
5.2% | 热水壶 |
3.6% | Cower |
2.5% | 小睡 |
2.2% | 放松 |
在某些情况下,词元序列可能是整个句子, 一段话甚至是整篇文章。
应用可以使用概率表进行预测。 预测结果可能是最高概率(例如“烹饪汤”) 或从概率大于 阈值。
估计文本序列中填空内容的概率 扩展到更复杂的任务,包括:
- 正在生成文本。
- 将文本从一种语言翻译成另一种语言。
- 正在汇总文档。
通过对词法单元的统计模式进行建模,现代语言模型 生成极其强大的语言内部表示, 合理语言。
N 元语法语言模型
N 元语法是有序的字词序列 用于构建语言模型,其中 N 是序列中的单词数。 例如,当 N 为 2 时,N 元语法称为 2 元语法(或者 bigram);当 N 为 5 时,N 元语法为 称为五元语法。给定训练文档中的以下短语:
you are very nice
生成的 2-gram 如下所示:
- 你是
- 非常
- 非常好
当 N 为 3 时,N 元语法称为“三元语法”(或 trigram)。对于相同的词组, 得到的三元语法为:
- 你非常
- 非常好
给定两个字词作为输入,基于三元语法的语言模型可以预测 第三个字词的可能性。例如,假设存在以下两个字词:
orange is
语言模型会检查通过训练衍生出的所有不同 3-gram
以 orange is
开头的语料库,用于确定最有可能出现第三个单词。
数百个 3 语法可以用两个单词 orange is
开头,但
仅关注以下两种可能性:
orange is ripe orange is cheerful
第一种可能性 (orange is ripe
) 与果实有关,
而第二种可能性 (orange is cheerful
) 则与
橙色。
上下文
人类可以保留相对较长的上下文。在观看某戏剧的第 3 幕时, 保留第 1 法案中引入的人物的知识。同样, 一个长笑的笑点,因为你能记住背景信息,所以会让你大笑 这个笑话中的设置
在语言模型中,上下文是 目标令牌。上下文可以帮助语言模型确定“橙色” 是指柑橘类水果或颜色。
上下文可以帮助语言模型做出更好的预测,
三元语法是否提供了充足的上下文?不幸的是,唯一的上下文就是三元语法
是前两个字词。例如,两个单词 orange is
就不是
为语言模型提供足够的上下文以预测第三个字词。
由于缺乏上下文,基于三元语法的语言模型经常犯错。
与较短的 N 元语法相比,较长的 N 元语法可以提供更多上下文。 但是,随着 N 的增加,每个实例的相对出现次数会减少。 当 N 变得非常大时,语言模型通常只有一个 这在训练中不是非常实用, 来预测目标词元。
循环神经网络
循环神经 广告网络 可比 N 元语法提供更多上下文。循环神经网络是一种 神经网络, 一个词元序列。例如,循环神经网络 可以逐步学习(和学习忽略)每个字词中的所选上下文 有点像听人说话时所做的那样。 大型循环神经网络可以从几个 句子。
虽然循环神经网络比 N 元语法能学习更多上下文, 循环神经网络的实用上下文仍然是 受限。循环神经网络“逐个标记”评估信息。 相比之下,大语言模型则是 部分)来一次性评估整个上下文。
请注意,针对长上下文训练循环神经网络会受到以下限制: 消失梯度 问题。
练习:检查您的理解情况
- 基于 6-gram 的语言模型
- 基于 5-gram 的语言模型