从一个预测游戏说起
当我们在说话或写作时,大脑在不停地进行一个预测游戏:根据已经说出的内容,预测下一个最可能出现的词。这个看似简单的认知过程,恰恰是现代大语言模型的核心工作原理。
假设我们要完成这个句子:“今天天气很好,适合去公园___"。大多数人会毫不犹豫地填上"散步”、“跑步"或"游玩"这样的词,而不会想到"编程”、“游泳"或"睡觉”。这种预测能力源于我们对语言统计规律的长期学习——某些词在特定语境下出现的概率更高。
语言模型的核心任务,就是学习并建模这种概率分布。从早期的n-gram模型到今天的GPT-4,尽管模型架构发生了翻天覆地的变化,但底层的目标始终未变:学习语言序列的概率分布,并据此预测未来可能出现的词。
Shannon的信息论遗产
1948年,Claude Shannon发表了《通信的数学理论》,这篇论文不仅创立了信息论,也奠定了统计语言模型的基础。Shannon的核心洞察是:语言并非随机的,而是具有可预测的结构。
熵:衡量语言的不确定性
Shannon引入熵的概念来量化信息的不确定性。对于一个离散概率分布$P$,熵定义为:
$$H(P) = -\sum_{x} P(x) \log_2 P(x)$$熵越大,表示系统的不确定性越高;熵越小,表示系统越确定。对于语言来说,熵告诉我们:平均而言,预测下一个字符需要多少信息量。
Shannon通过实验估计英语的熵约为0.6到1.3比特每字符。这意味着,如果我们完全了解英语的统计规律,理论上可以用不到1比特的信息来编码一个字符。作为对比,如果英语是完全随机的(假设只有26个字母),每个字符需要$\log_2 26 \approx 4.7$比特。这个巨大的差距揭示了语言中蕴含的丰富统计结构。
graph LR
A[随机序列] --> B["熵 ≈ 4.7 bits/字符"]
C[英语文本] --> D["熵 ≈ 0.6-1.3 bits/字符"]
B --> E[高度不确定]
D --> F[高度可预测]
E --> G[难以压缩]
F --> H[易于压缩]
Shannon的预测实验
为了量化语言的可预测性,Shannon设计了一个巧妙的实验:让受试者猜测文本中的下一个字母。如果受试者第一次就猜对了,说明这个字母非常可预测;如果需要多次尝试,说明这个字母更难预测。
实验结果表明,约50%的字母可以被第一次猜测正确,约80%在前三次猜测内正确。这种可预测性正是语言模型可以利用的统计规律。Shannon的工作证明了一个关键点:语言可以通过统计方法进行建模,而不是必须依赖语法规则或语义理解。
语言的冗余性
熵的估计揭示了语言的另一个重要特性:冗余性。英语的实际熵远低于随机序列的熵,说明英语中有大量"可预测"的信息。
考虑这句话:“The cat sat on the m__"。即使最后这个词只给出了第一个字母,大多数人也能猜出是"mat”。这种可预测性来源于:
- 语法约束:英语语法规定了句子的结构
- 语义约束:词与词之间存在语义关联
- 常识约束:我们对世界的知识限制了可能的解释
graph TD
A[语言信息] --> B[必要信息]
A --> C[冗余信息]
B --> D["熵 H ≈ 0.6-1.3 bits/字符"]
C --> E["冗余度 ≈ 70-85%"]
D --> F[不可预测<br/>必须编码]
E --> G[可预测<br/>可压缩]
G --> H[错误纠正<br/>噪声容忍]
这种冗余性对通信是有益的:即使在有噪声的信道中,接收者也可以利用冗余信息恢复原始消息。对于语言模型来说,冗余性意味着可以通过学习统计规律来准确预测下一个词。
概率的链式法则:语言建模的数学基础
语言建模的核心数学工具是概率论的链式法则(也称乘法法则)。它告诉我们如何将联合概率分解为条件概率的乘积。
从联合概率到条件概率
对于一个词序列$w_1, w_2, ..., w_n$,其联合概率可以通过链式法则分解为:
$$P(w_1, w_2, ..., w_n) = P(w_1) \cdot P(w_2|w_1) \cdot P(w_3|w_1,w_2) \cdot ... \cdot P(w_n|w_1,...,w_{n-1})$$用求和符号表示:
$$P(w_1, w_2, ..., w_n) = \prod_{i=1}^{n} P(w_i|w_1, ..., w_{i-1})$$这个公式揭示了一个深刻的事实:生成整个序列的概率,等价于在每个位置正确预测下一个词的概率的乘积。这正是语言模型训练和推理的数学基础。
条件概率的直观理解
条件概率$P(w_i|w_1, ..., w_{i-1})$表示:在已知前$i-1$个词的条件下,第$i$个词出现的概率。以中文为例:
- $P(\text{今天})$:词"今天"单独出现的概率
- $P(\text{天气}|\text{今天})$:在"今天"之后出现"天气"的概率
- $P(\text{很好}|\text{今天天气})$:在"今天天气"之后出现"很好"的概率
这些条件概率的乘积,就是整个句子的概率。语言模型的任务,就是学习所有可能的条件概率分布。
graph TD
A["联合概率 P(w₁,w₂,...,wₙ)"] --> B["链式法则分解"]
B --> C["P(w₁)"]
B --> D["P(w₂|w₁)"]
B --> E["P(w₃|w₁,w₂)"]
B --> F["..."]
B --> G["P(wₙ|w₁,...,wₙ₋₁)"]
C --> H["第一个词的概率"]
D --> I["给定第一个词,第二个词的概率"]
E --> J["给定前两个词,第三个词的概率"]
G --> K["给定所有前文,最后一个词的概率"]
马尔可夫假设:简化条件依赖
直接计算$P(w_i|w_1, ..., w_{i-1})$面临一个实际问题:条件太长,计算量太大。一个自然的简化是马尔可夫假设:只考虑最近的几个词。
对于bigram模型(一阶马尔可夫):
$$P(w_i|w_1, ..., w_{i-1}) \approx P(w_i|w_{i-1})$$对于trigram模型(二阶马尔可夫):
$$P(w_i|w_1, ..., w_{i-1}) \approx P(w_i|w_{i-2}, w_{i-1})$$这个假设虽然简化了计算,但也限制了模型捕捉长距离依赖的能力。这正是后来神经网络语言模型要解决的核心问题。
统计语言模型:n-gram的概率解释
基于马尔可夫假设,n-gram模型成为早期语言建模的主流方法。它的核心思想简单而直观:通过统计语料库中n-gram的出现频率来估计条件概率。
频率估计概率
对于一个trigram模型,条件概率的估计为:
$$P(w_i|w_{i-2}, w_{i-1}) \approx \frac{C(w_{i-2}, w_{i-1}, w_i)}{C(w_{i-2}, w_{i-1})}$$其中$C(\cdot)$表示在语料库中的计数。这个估计基于最大似然原则:让训练数据出现的概率最大化。
数据稀疏问题
n-gram模型面临一个根本性挑战:数据稀疏。假设词表大小为$V$,则可能的不同trigram数量为$V^3$。即使$V=10,000$,trigram数量就达到$10^{12}$个,远超任何语料库能覆盖的范围。
结果是,大量合法的n-gram在训练数据中从未出现,导致概率估计为零。这在推理时会造成严重问题:如果某个条件概率为零,整个序列的概率就变成零,即使序列本身是合法的。
平滑技术
为解决数据稀疏问题,研究者发展出多种平滑技术。核心思想是:从高频事件"借"一些概率质量给低频或未见过的事件。
Katz回退(Katz Back-off)是一种经典方法:
$$P_{\text{Katz}}(w_i|h) = \begin{cases} \alpha(w_i|h) & \text{if } C(h, w_i) > 0 \\ \beta(h) \cdot P_{\text{Katz}}(w_i|h') & \text{otherwise} \end{cases}$$其中$h$表示历史(前文),$h'$是缩短后的历史。如果一个n-gram见过,就使用折扣后的概率;如果没见过,就"回退"到更短的n-gram。
Kneser-Ney平滑进一步改进了这个思路,不仅考虑词的出现频率,还考虑词出现在多少不同的上下文中。一个出现在多种上下文中的词,比只出现在特定上下文中的高频词,更有可能出现在新的上下文中。
n-gram模型的局限性
尽管平滑技术大大提升了n-gram模型的实用性,它仍有根本性的局限:
- 局部性:只考虑固定窗口内的历史,无法捕捉长距离依赖
- 离散性:不同词被视为完全不同的符号,无法利用词之间的语义相似性
- 泛化能力弱:对于未见过的上下文,只能依赖回退,无法进行语义推理
这些局限性推动了神经网络语言模型的发展。
神经语言模型:从离散到连续的概率建模
2003年,Yoshua Bengio等人发表了《A Neural Probabilistic Language Model》,这篇论文开创性地将神经网络引入语言建模,解决了n-gram模型的核心缺陷。
词嵌入:连续表示的力量
Bengio的核心贡献是引入词嵌入(Word Embedding):将每个词映射到一个连续的向量空间。在这个空间中,语义相似的词具有相似的向量表示。
形式化地,设词表为$V$,嵌入维度为$d$,嵌入矩阵$E \in \mathbb{R}^{|V| \times d}$。对于词$w$,其嵌入向量为:
$$\mathbf{e}_w = E[w, :]$$这个词嵌入解决了n-gram模型的离散性问题:即使两个词从未在相同上下文中出现过,如果它们的嵌入向量相似,模型仍然可以推断它们可能有相似的条件概率分布。
神经网络语言模型架构
Bengio的模型架构包含三个关键组件:
- 嵌入层:将输入词序列转换为嵌入向量序列
- 隐藏层:通过非线性变换学习复杂的语言特征
- 输出层:产生词表中每个词的概率
给定前$n-1$个词$w_1, ..., w_{n-1}$,模型计算:
$$P(w_n|w_1, ..., w_{n-1}; \theta) = \frac{\exp(s_{w_n})}{\sum_{w \in V} \exp(s_w)}$$其中$s_w$是词$w$的得分,由神经网络计算得出。这个softmax归一化确保输出是一个合法的概率分布。
从RNN到LSTM:处理变长序列
Bengio的模型仍然使用固定长度的上下文窗口。循环神经网络(RNN)引入了一种更优雅的方式来处理任意长度的序列。
RNN的核心思想是维护一个隐藏状态$\mathbf{h}_t$,在每一步更新:
$$\mathbf{h}_t = \tanh(\mathbf{W}_{hh}\mathbf{h}_{t-1} + \mathbf{W}_{xh}\mathbf{x}_t + \mathbf{b}_h)$$$$\mathbf{y}_t = \text{softmax}(\mathbf{W}_{hy}\mathbf{h}_t + \mathbf{b}_y)$$理论上,RNN可以通过隐藏状态捕捉任意长度的依赖关系。然而在实践中,RNN面临梯度消失问题:随着序列长度增加,来自远端的梯度信号会指数级衰减。
长短期记忆网络(LSTM)通过引入门控机制解决了这个问题:
$$\mathbf{f}_t = \sigma(\mathbf{W}_f[\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_f) \quad \text{遗忘门}$$$$\mathbf{i}_t = \sigma(\mathbf{W}_i[\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_i) \quad \text{输入门}$$$$\mathbf{o}_t = \sigma(\mathbf{W}_o[\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_o) \quad \text{输出门}$$$$\mathbf{c}_t = \mathbf{f}_t \odot \mathbf{c}_{t-1} + \mathbf{i}_t \odot \tanh(\mathbf{W}_c[\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_c)$$$$\mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{c}_t)$$LSTM可以学习何时遗忘旧信息、何时添加新信息,从而更好地捕捉长期依赖。
graph LR
A["n-gram模型"] --> B["固定窗口<br/>离散表示"]
C["NNLM"] --> D["固定窗口<br/>连续表示"]
E["RNN"] --> F["变长序列<br/>梯度消失"]
G["LSTM"] --> H["变长序列<br/>门控机制"]
B --> I["局部依赖"]
D --> I
F --> J["长期依赖<br/>效果有限"]
H --> K["长期依赖<br/>效果改善"]
训练目标:最大似然估计与交叉熵的等价性
语言模型的训练目标是让模型学到的概率分布尽可能接近真实的数据分布。这个目标可以形式化为最大似然估计(MLE)。
最大似然估计
给定训练语料$\mathcal{D}$,我们希望找到模型参数$\theta$,使得数据出现的概率最大化:
$$\theta^* = \arg\max_\theta P(\mathcal{D}; \theta) = \arg\max_\theta \prod_{(w_1, ..., w_n) \in \mathcal{D}} P(w_1, ..., w_n; \theta)$$利用链式法则展开:
$$\theta^* = \arg\max_\theta \prod_{(w_1, ..., w_n) \in \mathcal{D}} \prod_{i=1}^{n} P(w_i|w_1, ..., w_{i-1}; \theta)$$取对数(单调变换,不改变最优解):
$$\theta^* = \arg\max_\theta \sum_{(w_1, ..., w_n) \in \mathcal{D}} \sum_{i=1}^{n} \log P(w_i|w_1, ..., w_{i-1}; \theta)$$交叉熵损失函数
将最大化问题转化为最小化问题:
$$\theta^* = \arg\min_\theta -\sum_{(w_1, ..., w_n) \in \mathcal{D}} \sum_{i=1}^{n} \log P(w_i|w_1, ..., w_{i-1}; \theta)$$这正是交叉熵损失函数的形式。对于单个位置,交叉熵损失为:
$$\mathcal{L} = -\log P(w_i|w_1, ..., w_{i-1}; \theta)$$交叉熵与最大似然估计的等价性揭示了一个深刻的事实:最小化交叉熵损失,本质上就是让模型预测的概率分布尽可能匹配训练数据的经验分布。
信息论视角
从信息论角度,交叉熵可以理解为:使用模型分布$q$来编码真实分布$p$所需的平均比特数:
$$H(p, q) = -\sum_x p(x) \log q(x)$$当$p = q$时,交叉熵达到最小值,等于熵$H(p)$。对于语言模型:
- $p$是真实语言的概率分布(未知,通过训练数据近似)
- $q$是模型学习到的分布
训练的目标就是让$q$尽可能接近$p$,从而最小化编码长度。
为什么不用均方误差?
一个常见的问题是:为什么不使用均方误差(MSE)作为损失函数?
MSE假设数据服从高斯分布,适用于回归问题。而语言建模本质上是分类问题(从词表中选择下一个词),数据的分布是多峰的、离散的。交叉熵损失基于多项式分布(分类分布)的假设,与问题的概率结构更加匹配。
此外,交叉熵损失对于预测概率的惩罚是非线性的:
- 如果真实类别概率应为1,模型预测0.9,损失为$-\log(0.9) \approx 0.105$
- 如果模型预测0.1,损失为$-\log(0.1) \approx 2.303$
这种非线性惩罚促使模型对错误预测产生更大的梯度,加速训练收敛。
graph TD
A["训练数据分布 p"] --> B["模型学习分布 q"]
B --> C["交叉熵 H(p,q)"]
C --> D["最小化交叉熵"]
D --> E["等价于最大似然估计"]
E --> F["模型输出概率分布"]
F --> G["预测下一个词"]
A --> H["经验分布"]
H --> I["频率估计"]
I --> J["参数更新"]
J --> B
困惑度:概率分布的直观度量
训练语言模型时,我们需要一个指标来评估模型的质量。困惑度(Perplexity)是最常用的评估指标。
困惑度的定义
困惑度定义为交叉熵的指数:
$$\text{PPL} = 2^{H(p, q)} = \exp\left(-\frac{1}{N}\sum_{i=1}^{N} \log P(w_i|w_1, ..., w_{i-1})\right)$$或者等价地:
$$\text{PPL} = \left(\prod_{i=1}^{N} P(w_i|w_1, ..., w_{i-1})\right)^{-1/N}$$困惑度的直观解释
困惑度可以理解为模型的"有效分支因子"。如果困惑度为100,意味着模型在每一步的预测不确定性,等价于在100个等概率选项中做选择。
具体来说:
- 困惑度等于词表大小:模型完全随机猜测
- 困惑度等于1:模型完美预测,没有任何不确定性
- 困惑度介于两者之间:模型学到了一定的语言规律
对于现代大语言模型:
- GPT-2在WikiText-103上的困惑度约为18.3
- GPT-3在同一数据集上的困惑度约为15.0
- 更大的模型通常能达到更低的困惑度
每字符比特数
困惑度依赖于词表大小,不同词表的模型难以直接比较。每字符比特数(BPC)提供了一个词表无关的度量:
$$\text{BPC} = \frac{H}{\log 2} \cdot \frac{N_{\text{tokens}}}{N_{\text{chars}}}$$其中$N_{\text{tokens}}$是token数量,$N_{\text{chars}}$是字符数量。BPC度量了压缩每个字符所需的平均比特数。
Shannon估计英语的熵约为0.6-1.3 BPC,这意味着任何语言模型的BPC都不可能低于这个理论上限。当前最先进的模型已经接近这个下限,表明它们几乎完全掌握了英语的统计规律。
graph LR
A["模型输出概率分布"] --> B["计算交叉熵损失"]
B --> C["训练优化"]
B --> D["计算困惑度"]
D --> E["评估模型质量"]
C --> F["参数更新"]
F --> A
E --> G["比较不同模型"]
Transformer:注意力机制的概率视角
2017年,Transformer架构的提出彻底改变了语言建模的范式。从概率角度理解,Transformer通过自注意力机制实现了更有效的条件概率建模。
自注意力机制
自注意力的核心公式是:
$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$从概率角度,注意力权重可以理解为:在预测当前位置时,应该"关注"其他位置的程度。softmax确保这些权重形成概率分布:
$$\alpha_{ij} = \frac{\exp(e_{ij})}{\sum_k \exp(e_{ik})}$$其中$e_{ij}$是位置$i$和位置$j$之间的相关性得分。
因果注意力与概率分解
在语言建模中,我们使用因果注意力(Causal Attention),确保位置$i$只能关注位置$1$到$i-1$:
$$P(w_i|w_1, ..., w_{i-1}) = f_\theta(w_i, \text{Context}(w_1, ..., w_{i-1}))$$Transformer通过多头注意力机制,可以同时从多个角度建模上下文信息,每个"头"学习不同类型的依赖关系:
$$\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O$$其中$\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)$。
为什么Transformer比RNN更适合语言建模?
从概率角度,有几个关键原因:
-
直接连接:Transformer中任意两个位置之间都有直接的注意力路径,梯度可以直接传播。RNN中信息需要逐步传递,长距离依赖难以学习。
-
并行计算:Transformer可以同时计算所有位置的条件概率,而RNN必须顺序计算。这使得Transformer可以处理更大规模的训练数据。
-
动态权重:注意力权重是根据内容动态计算的,可以根据具体的上下文调整关注的重点。RNN的权重是固定的,不随输入变化。
graph TD
subgraph "RNN信息流"
A1["h₁"] --> A2["h₂"]
A2 --> A3["h₃"]
A3 --> A4["h₄"]
A4 --> A5["h₅"]
end
subgraph "Transformer信息流"
B1["位置1"] --> B5["位置5"]
B2["位置2"] --> B5
B3["位置3"] --> B5
B4["位置4"] --> B5
end
A5 --> C["RNN: 信息需要逐步传递"]
B5 --> D["Transformer: 直接连接任意位置"]
现代LLM的概率视角:为什么Next Token Prediction有效
现代大语言模型(如GPT系列)的核心训练目标是预测下一个token。这个看似简单的目标为什么能够学习到复杂的语言知识和世界知识?
压缩即智能
OpenAI的研究者提出了一个深刻的观点:压缩即智能。如果一个模型能够完美压缩文本数据,意味着它必须完全理解文本中的所有规律——语法规则、语义关系、世界知识、逻辑推理。
从信息论角度,压缩长度等于交叉熵:
$$\text{Compression Length} = -\sum_i \log P(w_i|\text{context})$$模型的压缩能力越强,说明它预测得越准确,也就意味着它学到了更多的语言规律。
概率分布中蕴含的知识
当模型学习条件概率$P(w_i|w_1, ..., w_{i-1})$时,它实际上在学习什么?
语法知识:为了正确预测下一个词,模型必须学习语法规则。例如,在"他正在___“之后,模型会预测动词而非名词。
语义知识:模型学习词之间的语义关系。“苹果"和"香蕉"在相似的上下文中出现,它们的嵌入向量会变得相似。
世界知识:训练语料中包含大量世界知识。例如,“法国的首都是___“之后,模型会预测"巴黎”。这些知识被编码在模型参数中。
推理能力:复杂的推理任务需要多步预测。例如,“如果A大于B,B大于C,那么A___C”,模型需要推理出"大于”。
知识的组织形式
研究发现,语言模型内部形成了层级化的知识表示:
- 底层:编码具体的语言特征(如n-gram、词法特征)
- 中层:编码句法和语义信息
- 高层:编码抽象概念和任务相关的知识
这种层级结构与人类大脑处理语言的方式有相似之处。在预测下一个token的过程中,模型自底向上地提取和整合信息,最终在顶层产生预测。
从概率到生成的桥梁
训练时,模型学习条件概率分布。推理时,模型如何从这个分布中生成文本?
最简单的方法是贪婪搜索:每步选择概率最高的词。但这种方法容易产生重复和单调的输出。
更复杂的方法包括:
- Beam Search:保留多个候选序列
- Top-k采样:从前k个最可能的词中采样
- Nucleus采样(Top-p):从累积概率达到p的最小词集中采样
- Temperature调节:通过温度参数控制分布的平滑程度
这些方法本质上都是在模型学到的概率分布上进行采样,平衡生成文本的质量和多样性。
graph TD
A["训练数据"] --> B["条件概率建模"]
B --> C["语法知识"]
B --> D["语义知识"]
B --> E["世界知识"]
B --> F["推理能力"]
C --> G["语言规律"]
D --> G
E --> G
F --> G
G --> H["概率分布"]
H --> I["生成文本"]
I --> J["采样策略"]
J --> K["Greedy/Beam/Top-k/Top-p"]
概率视角的启示
理解语言模型的概率本质,对实践有重要启示。
数据质量决定概率分布
模型学习的概率分布来自训练数据。如果训练数据有偏差,学到的分布也会有偏差。这解释了为什么数据清洗和去重如此重要——坏数据会导致错误的概率估计。
模型规模与概率估计能力
更大的模型有更多的参数来近似复杂的概率分布。研究表明,模型规模增大时:
- 低频事件的条件概率估计更准确
- 长距离依赖的建模能力更强
- 抽象概念的表示更丰富
这解释了为什么大模型表现出"涌现能力”——某些能力只有在模型足够大、能够准确估计足够复杂的概率分布时才会出现。
不确定性的重要性
语言模型的输出是概率分布,这提供了关于预测不确定性的信息。在实际应用中:
- 高置信度预测(某个词概率接近1)可以更可靠地使用
- 低置信度预测(概率分布分散)需要谨慎处理
这种不确定性信息对于下游任务(如问答、决策支持)非常有价值。
理论极限与现实差距
Shannon估计英语的熵约为0.6-1.3 BPC,这设定了语言模型的理论上限。当前模型已经接近这个上限,但仍有差距。这个差距可能来自:
- 模型架构的局限性
- 训练数据的不足
- 优化算法的不完美
理解这个理论极限有助于我们认清语言模型的能力边界。
结语
从Shannon的信息论到今天的GPT-4,语言模型的发展始终围绕着同一个核心:学习语言序列的概率分布。虽然模型架构从n-gram演变为神经网络,再到Transformer,但底层的数学原理——链式法则、最大似然估计、交叉熵——始终未变。
理解语言模型的概率本质,不仅有助于我们设计更好的模型和训练方法,也帮助我们认清模型的能力和局限。语言模型学习的是训练数据中体现的概率分布,它们能够捕捉语言中的统计规律,但这些规律是否等同于真正的"理解”,仍然是一个开放的问题。
概率视角告诉我们:语言模型不是魔法,而是数学。它们的力量来自对大规模数据中统计规律的学习,它们的局限来自概率建模本身的特点。在这个意义上,语言模型是信息论原理的现代实践,是Shannon思想在人工智能领域的延续和发扬。
参考文献
[1] Shannon, C. E. (1948). A mathematical theory of communication. Bell System Technical Journal, 27(3), 379-423.
[2] Shannon, C. E. (1951). Prediction and entropy of printed English. Bell System Technical Journal, 30(1), 50-64.
[3] Bengio, Y., Ducharme, R., Vincent, P., & Jauvin, C. (2003). A neural probabilistic language model. Journal of Machine Learning Research, 3, 1137-1155.
[4] Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention is all you need. Advances in Neural Information Processing Systems, 30.
[5] Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735-1780.
[6] Katz, S. M. (1987). Estimation of probabilities from sparse data for the language model component of a speech recognizer. IEEE Transactions on Acoustics, Speech, and Signal Processing, 35(3), 400-401.
[7] Kneser, R., & Ney, H. (1995). Improved backing-off for m-gram language modeling. ICASSP.
[8] Jelinek, F. (1980). Interpolated estimation of Markov source parameters from sparse data. Pattern Recognition in Practice.
[9] Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language models are few-shot learners. Advances in Neural Information Processing Systems, 33.
[10] Radford, A., Wu, J., Child, R., et al. (2019). Language models are unsupervised multitask learners. OpenAI Blog.
[11] Mikolov, T., Sutskever, I., Chen, K., et al. (2013). Distributed representations of words and phrases and their compositionality. Advances in Neural Information Processing Systems, 26.
[12] Pennington, J., Socher, R., & Manning, C. (2014). GloVe: Global vectors for word representation. EMNLP.
[13] Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). BERT: Pre-training of deep bidirectional transformers for language understanding. NAACL.
[14] Liu, P. J., Saleh, M., Pot, E., et al. (2018). Generating wikipedia by summarizing long sequences. ICLR.
[15] Kaplan, J., McCandlish, S., Henighan, T., et al. (2020). Scaling laws for neural language models. arXiv preprint arXiv:2001.08361.
[16] Hoffmann, J., Borgeaud, S., Mensch, A., et al. (2022). Training compute-optimal large language models. arXiv preprint arXiv:2203.15556.
[17] Wei, J., Tay, Y., Bommasani, R., et al. (2022). Emergent abilities of large language models. arXiv preprint arXiv:2206.07682.
[18] Elhage, N., Nanda, N., Olsson, C., et al. (2021). A mathematical framework for transformer circuits. Transformer Circuits Thread.
[19] Olah, C., Cammarata, N., Schubert, L., et al. (2020). Zoom in: An introduction to circuits. Distill.
[20] Geva, M., Caciularu, A., Wang, K., & Goldberg, Y. (2022). Transformer feed-forward layers build predictions by promoting concepts in the vocabulary space. EMNLP.
[21] Meng, K., Bau, D., Andonian, A., & Belinkov, Y. (2022). Locating and editing factual associations in GPT. NeurIPS.
[22] Nanda, N., Chan, L., Lieberum, T., et al. (2023). Progress measures for grokking via mechanistic interpretability. ICLR.
[23] Power, A., Burda, Y., Edwards, H., et al. (2022). Grokking: Generalization beyond overfitting on small algorithmic datasets. ICLR.
[24] Hutter, M. (2006). Universal artificial intelligence: Sequential decisions based on algorithmic probability. Springer.
[25] Deletang, G., Ruoss, A., Grau-Moya, J., et al. (2023). Language modeling is compression. ICLR.
[26] Rae, J. (2023). Compression for AGI. Stanford MLSys Seminar.
[27] Sutskever, I. (2023). Interview on OpenAI’s approach to AGI. Various media.
[28] Mahoney, M. (2000). About the compression challenge. Matt Mahoney’s Data Compression Page.
[29] Teahan, W. J., & Cleary, J. G. (1996). The entropy of English using PPM-based models. DCC.
[30] Cover, T. M., & King, R. C. (1978). A convergent gambling estimate of the entropy of English. IEEE Transactions on Information Theory.
[31] Brown, P. F., Della Pietra, V. J., Desouza, P. V., et al. (1992). Class-based n-gram models of natural language. Computational Linguistics.
[32] Chen, S. F., & Goodman, J. (1999). An empirical study of smoothing techniques for language modeling. Computer Speech & Language.
[33] Rosenfeld, R. (2000). Two decades of statistical language modeling: Where do we go from here? Proceedings of the IEEE.
[34] Goodman, J. (2001). A bit of progress in language modeling. Computer Speech & Language.
[35] Stolcke, A. (1998). Entropy-based pruning of backoff language models. DARPA Broadcast News Transcription and Understanding Workshop.
[36] Chelba, C., Mikolov, T., Schuster, M., et al. (2013). One billion word benchmark for measuring progress in statistical language modeling. INTERSPEECH.
[37] Merity, S., Xiong, C., Bradbury, J., & Socher, R. (2016). Pointer sentinel mixture models. ICLR.
[38] Baevski, A., & Auli, M. (2019). Adaptive input representations for neural language modeling. ICLR.
[39] Dai, Z., Yang, Z., Yang, Y., et al. (2019). Transformer-XL: Attentive language models beyond a fixed-length context. ACL.
[40] Rae, J. W., Potapenko, A., Jayakumar, S. M., & Lillicrap, T. P. (2020). Compressive transformers for long-range sequence modelling. ICLR.
[41] Press, O., Smith, N. A., & Lewis, M. (2022). Train short, test long: Attention with linear biases enables input length extrapolation. ICLR.
[42] Su, J., Lu, Y., Pan, S., et al. (2021. RoFormer: Enhanced transformer with rotary position embedding. arXiv preprint arXiv:2104.09864.
[43] Dao, T., Fu, D., Ermon, S., et al. (2022). FlashAttention: Fast and memory-efficient exact attention with IO-awareness. NeurIPS.
[44] Pope, R., Douglas, S., Chowdhery, A., et al. (2023). Efficiently scaling transformer inference. MLSys.
[45] Zhang, S., Roller, S., Goyal, N., et al. (2022). OPT: Open pre-trained transformer language models. arXiv preprint arXiv:2205.01068.
[46] Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971.
[47] Hoffmann, J., Borgeaud, S., Mensch, A., et al. (2022). Training compute-optimal large language models. arXiv preprint arXiv:2203.15556.
[48] Chowdhery, A., Narang, S., Devlin, J., et al. (2022). PaLM: Scaling language modeling with pathways. arXiv preprint arXiv:2204.02311.
[49] Thoppilan, R., De Freitas, D., Hall, J., et al. (2022). LaMDA: Language models for dialog applications. arXiv preprint arXiv:2201.08239.
[50] Rae, J. W., Borgeaud, S., Cai, T., et al. (2021). Scaling language models: Methods, analysis & insights from training Gopher. arXiv preprint arXiv:2112.11446.