跳转至

自回归语言建模

句子的数量是无穷无尽的,训练集根本无法覆盖所有可能的句子。这就需要我们找到一种方法,能够基于有限的训练数据,对无线的句子空间进行概率建模。

概率语言模型

语言模型的核心任务是学习人类语言的内在规律,从而呢个够准确预测单词序列的概率。

人类的语言并非单词的随机组合,而遵循着一定的潜在规则。

  1. 单词之间不能随意组合。
  2. 单词之间的组合顺序也不是一成不变的。

概率语言模型的目标是建立一个统计模型,用来计算一句话对应的次元序列 \(W = w_1 w_2 \cdots w_n\) 的概率。

通常,概率语言模型使用概率链式法则,将词元的联合概率转换成一组条件概率相乘的形式。

\[ \begin{array}{c} P(X_1, X_2, \cdots, X_n) = P(X_1)P(X_2 | X_1) \cdots P(X_n | X_1, \cdots, X_{n-1}) \\ P(w_1, \cdots, w_n) = \prod_{i = 1}^n P(w_i|w_1, \cdots, w_{i - 1}) \end{array} \]

条件概率描述在给定当前词元之前历史词元序列条件下,产生当前词元的概率,具有自回归特性,因此将其称为自回归语言模型。

计算条件概率有两种方法:

  1. 直接存储条件概率数值。
  2. 通过函数计算得到概率数值。

N 元语法语言模型

N 元语法模型应用有限阶马尔可夫假设,用前面 \(N-1\) 个词元近似完整历史,并通过统计条件概率对当前词元建模。基本形式为

\[ P \left(w_1, \dots, w_n \right) \approx \prod_{i=1}^{n} P\left(w_i \mid w_{i - N + 1}, w_{i - N + 2}, \cdots, w_{i - 1} \right) \]

通常 \(N\) 的取值不会超过 3 或 4,避免维数灾难。

困惑度

困惑度给出一个衡量模型预测准确度的指标。

神经网络语言模型

单词序列中的每个单词 \(w_i\) 通过函数 \(f_e\) 映射成低维空间中的一个向量,即 \(f_e : w_i \to z_i\)。接着使用神经网络 \(f\),基于以上低维向量计算下一个词的条件概率,即:

\[ P \left(w_n \mid w_1, \cdots, w_{n - 1} \right) = f_{w_n} \left(z_1, \cdots, z_{n - 1} \right) \]

神经网络 \(f\) 输出的实际为一个向量,维度为 \(|V|\),其中 \(f_{w_n}\) 代表输出向量中与单词 \(w_n\) 对应的数值,且满足 \(\sum_{w \in V} f_w \left(z_1, \cdots, z_{n - 1} \right) = 1\)

神经网络语言模型也可以进行自回归的文本生成。生成的过程可以写作如下形式:

\[ \hat{w}_n = \arg \max_{w \in V} P\left(w \mid, w_1, \cdots, w_{n - 1} \right) = \arg \max_{w \in V} f_w \left(z_1, \cdots, z_{n - 1} \right) \]

GPT 系列模型

GPT,全称是 Generative Pre-trained Transformer。每一代都有架构和规模上的升级,从发展的角度来说,一定是逐代训练集、参数量变多,模型架构逐渐复杂。

[!note] 截止到当下的 GPT-5,模型已经榨干了互联网上所有能查询到的高质量文本。单是一个 wiki 智库,都不是几个人能读完的文本量。

GPT-1 模型

GPT-1 是早期具有代表性的预训练自回归 Transformer,只使用解码器结构,在序列中预测下一个词元,采用“预训练 + 微调”的应用范式。

GPT-1 模型需要针对每个下游目标任务做特定的微调训练,而微调后的模型就变成了专用模型。

GPT-2 模型

GPT-2 模型的主要动机是建立一个能够处理多个任务的通用语言模型。

GPT-2 以建立一个能够处理多个任务的通用语言模型为目标,在实际应用中展现出了优异的零样本学习能力。

GPT-3

GPT-3 带来了全新的上下文学习范式,可以在无需微调的情况下实现单样本与少样本学习,只通过阅读任务描述和少量示例,掌握新任务的求解方法。