结构
- 大语言模型基础
- 语言模型
- 语言模型
- 什么是语言模型
- 自回归语言模型(Autoregressive language models)
- 总结
- 大模型相关历史回顾
- 信息理论、英语的熵、n-gram模型
- 英语的熵
- 用于下游应用的N-gram模型
- 神经语言模型
- 总结
定义
语言模型(LM)
语言模型(LM)的经典定义是一种对令牌序列(token)的概率分布。假设有一个令牌集的词汇表 VV 。语言模型p为每个令牌序列 $x_{1},...,x_{L}$ ∈ $V$ 分配一个概率(介于0和1之间的数字):
$$
p(x_1,...x_L)
$$
自回归语言模型(Autoregressive LM)
将序列 $x_{1:L}$ 的联合分布 $p(x_{1:L})$ 的常见写法是使用概率的链式法则:
$$
p(x_{1:L}) = p(x_1) p(x_2 \mid x_1) p(x_3 \mid x_1, x_2) \cdots p(x_L \mid x_{1:L-1}) = \prod_{i=1}^L p(x_i \mid x_{1:i-1}).
$$
在自回归语言模型 $p$ 中生成整个序列 $x_{1:L}$ ,我们需要一次生成一个令牌(token),该令牌基于之前以生成的令牌进行计算获得:
$$
\begin{aligned}
\mathrm{for~}i&=1,\ldots,L:
\\
x_{i}&\sim p(x_i\mid x_{1:i-1})^{1/T},
\end{aligned}
$$
退火条件概率分布
我们将标准化版本 $p_{T}(x_{i}∣x_{1:i−1})∝p(x_{i}∣x_{1:i−1})^{1/T}$称为退火条件概率分布。
非自回归的条件生成模型
对于非自回归的条件生成,更一般地,我们可以通过指定某个前缀序列 $x_{1:i}$ (称为提示)并采样其余的 $x_{i+1:L}$ (称为补全)来进行条件生成。例如,生成 $T=0$ 的产生的:
$$
\begin{equation}
\underbrace{the,mouse,ate}_ {\mathrm{prompt}}\overset{T=0}{\leadsto}\underbrace{the,cheese}_{\text{completion}}. \nonumber
\end{equation}
$$
熵(Entropy)
如何理解用信息熵来表示最短的平均编码长度_最短编码长度-CSDN博客
信息量
信息量是度量知晓一个未知事物需要查询的信息的多少,单位是比特,表示为随机变量取某个值时,其概率倒数的对数。
$$
I_i=\log_2(\frac{1}{p_i})=-\log_2p_i
$$
信息熵
信息量的期望
$$
H(p) = \sum_x p(x) \log \frac{1}{p(x)}.
$$
交叉熵
$$
H(p, q)=-\sum_x p(x) \log q(x)
$$
这测量了需要多少比特来编码样本x∼p,使用由模型q给出的压缩方案(用长度为1/q(x)的代码表示x)。
通过语言模型估计熵。一个关键的属性是,交叉熵H(p,q)
上界是熵H(p)
:
基于词的n-gram语言模型
N-gram模型。在一个n-gram模型中,关于$x_{i}$的预测只依赖于最后的 $n-1$个字符 $x_{i−(n−1):i−1}$,而不是整个历史:
$$
p(x_i \mid x_{1:i-1}) = p(x_i \mid x_{i-(n-1):i-1}).
$$
神经语言模型
语言模型的一个重要进步是神经网络的引入。Bengio等人在2003年首次提出了神经语言模型,其中 $p(x_{i}∣x_{i−(n−1):i−1})$ 由神经网络给出:
注意,上下文长度仍然受到n的限制,但现在对更大的n值估计神经语言模型在统计上是可行的。
然而,主要的挑战是训练神经网络在计算上要昂贵得多。他们仅在1400万个词上训练了一个模型,并显示出它在相同数据量上优于n-gram模型。但由于n-gram模型的扩展性更好,且数据并非瓶颈,所以n-gram模型在至少接下来的十年中仍然占主导地位。
自2003年以来,神经语言建模的两个关键发展包括:
- Recurrent Neural Networks(RNNs),包括长短期记忆(LSTMs),使得一个令牌$x_{i}$的条件分布可以依赖于整个上下文 $x_{1:i−1}$ (有效地使 $n=∞$ ),但这些模型难以训练。
- Transformers是一个较新的架构(于2017年为机器翻译开发),再次返回固定上下文长度n,但更易于训练(并利用了GPU的并行性)。此外,n可以对许多应用程序「足够大」(GPT-3使用的是n=2048)。
问答
语言模型采样问题
实际上,我们通常不直接从语言模型中进行采样,这既因为真实语言模型的限制,也因为我们有时希望获得的不是一个「平均」的序列,而是更接近「最佳」序列的结果。
一些生成模型经常输出概率最大值所对应的文字结果,导致频率较高的词语频繁出现,没有语义信息,不符合真实语言语境。
后续使用退货条件概率分布来引入随机性。
n-gram模型限制
- 数据稀疏性
- 改进办法:smoothing / backoff / 引入神经网络语言模型
- n越大,需要计算、统计的参数越多,占用的内存空间越大
- 改进办法:引入马尔可夫假设,限制n的大小
- 无法共享具有相同语义的词汇/前缀中的信息
- 改进办法:引入词嵌入,由字符表示转向向量表示
文章评论