什么是语言模型?
语言模型可估算某个令牌或令牌序列在较长的令牌序列中出现的概率。令牌 可以是单词、子词(单词的子集),甚至是单个字符。
请考虑以下句子及其可能的补全令牌:
When I hear rain on my roof, I _______ in my kitchen.
语言模型会确定不同词元或 补全空白的词元序列。例如,以下 概率表列出了一些可能的词元及其概率:
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 元词如下所示:
- 你是
- 非常
- 非常好
当 N 为 3 时,N 元语法称为“三元语法”(或 trigram)。对于同一短语,生成的 3 元语法如下:
- 您
- 非常好
给定两个字词作为输入,基于三元语法的语言模型可以预测 出现概率。例如,假设存在以下两个字词:
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 元语的语言模型