引言与历史背景
语言模型自诞生以来,经历了从统计计数到神经网络、再到大规模预训练的三次根本性转折。理解这一演变不仅有助于把握当前技术的脉络,也为后续章节深入探讨模型架构、训练策略及应用场景奠定了必要的历史与动机基础。本章将按时间线梳理语言模型的主要里程碑,重点阐述每个阶段的核心思想、代表性工作以及它们所解决的问题,并通过若干典型案例与数据展示技术进步的实际影响。
1. 引言:为什么需要语言模型
语言模型(Language Model, LM)的任务是给定一个词序列,预测下一个词出现的概率分布 $P(w_t \mid w_{<t})$。这一看似简单的条件概率建模问题,实际上是自然语言处理(NLP)许多下游任务的核心:机器翻译、文本生成、语音识别、信息检索乃至问答系统都依赖于对语言统计规律的准确捕捉。早期的语言模型主要用于 perplexity(困惑度) 的评估,越低的困惑度表示模型对语言的建模越好,而困惑度的定义为:
$$ \text{PPL} = \exp\left(-\frac{1}{N}\sum_{i=1}^{N} \log P(w_i \mid w_{<i})\right) $$
其中 $N$ 为测试集中词元的数量。困惑度不仅是模型质量的直观度量,也与下游任务的性能呈正相关(通常困惑度降低 10% 能带来相当幅度的翻译或生成质量提升)。
2. 早期统计语言模型:n-gram 与平滑技术
2.1 n-gram 模型的基本思想
最早的语言模型基于马尔可夫假设:假设当前词只依赖于最近的 $n-1$ 个历史词。于是联合概率可分解为:
$$ P(w_1^n) = \prod_{i=1}^{n} P(w_i \mid w_{i-n+1}^{i-1}) $$
其中 $P(w_i \mid w_{i-n+1}^{i-1})$ 通过最大似然估计(MLE)从语料库中直接计数获得:
$$ \hat{P}(w_i \mid w_{i-n+1}^{i-1}) = \frac{C(w_{i-n+1}^{i})}{C(w_{i-n+1}^{i-1})} $$
这里 $C(\cdot)$ 表示对应 n-gram 在训练语料中的出现次数。当 $n=1$ 时得到一元模型(unigram),$n=2$ 得到二元模型(bigram),以此类推。
2.2 数据稀疏与平滑n-gram 模型的主要瓶颈是**数据稀疏**:高阶 n-gram(如五元或六元)在有限语料中往往出现次数为零,导致概率估计失效。为了解决这一问题,研究者提出了一系列**平滑(smoothing)** 方法,常见的包括:
- **加一平滑(Laplace smoothing)**:对所有可能的 n-gram 计数加一,避免零概率。
- **Good‑Turing 平滑**:基于出现次数的频率重新估计概率质量。
- **Kneser‑Ney 平滑**(尤其是修改版 Kneser‑Ney):考虑 lower‑order 上下文的多样性,目前被广泛认为是 n-gram 平滑的状态艺术。
这些技术使得 n-gram 模型在实际任务(如语音识别中的语言模型)中保持了数十年的竞争力。然而,随着语料规模的增长和对更长距离依赖的需求增加,单纯依赖计数的方法开始显露出其表达能力有限的短板:它无法捕捉词义相似性、句法结构以及跨句子的语义关联。
3. 神经语言模型的兴起:从前馈网络到循环结构### 3.1 前馈神经网络语言模型(NNLM)
2003 年,Bengio 等人提出了第一个基于前馈神经网络的语言模型(Neural Probabilistic Language Model),其核心思想是将每个词映射到一个低维的实数向量(词嵌入,word embedding),然后通过一个隐层计算下一词的概率分布。模型结构可表示为:
$$ \mathbf{e}_i = \mathbf{L} \mathbf{x}_i \quad \mathbf{h} = \tanh(\mathbf{W}_1 [\mathbf{e}_{i-n+1};\dots;\mathbf{e}_{i-1}] + \mathbf{b}_1) \quad \mathbf{y} = \text{softmax}(\mathbf{W}_2 \mathbf{h} + \mathbf{b}_2) $$
其中 $\mathbf{L}$ 为共享的嵌入矩阵,$[\cdot;\cdot]$ 表示向量拼接。相比 n-gram,NNLM 能够利用向量空间的相似性进行泛化:在训练中未见过的词组,如果其嵌入向量在空间中相近,也能得到合理的概率估计。
3.2 循环神经网络(RNN)及其变体
虽然前馈网络能捕捉固定窗口内的依赖,但语言中的依赖往往是可变长度的。为了建模任意长度的上下文,研究者引入了循环神经网络(Recurrent Neural Network, RNN)。其基本递推公式为:
$$ \mathbf{h}_t = \phi(\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) $$
其中 $\mathbf{h}_t$ 为时间步 $t$ 的隐藏状态,$\phi$ 为非线性激活函数(如 tanh 或 ReLU)。RNN 在理论上能够捕捉无限长的依赖,但在实际训练中易遭遇梯度消失或爆炸问题,导致对长距离依赖的建模效果不佳。
为了缓解这一问题,1997 年提出的长短期记忆网络(Long Short-Term Memory, LSTM) 和 2014 年提出的门控循环单元(Gated Recurrent Unit, GRU) 分别引入了门机制,以显式控制信息的流入、流出和遗忘。LSTM 的核心更新方程可简述为:
$$ \begin{aligned} \mathbf{i}_t &= \sigma(\mathbf{W}_{xi}\mathbf{x}_t + \mathbf{W}_{hi}\mathbf{h}_{t-1} + \mathbf{b}_i) \\ \mathbf{f}_t &= \sigma(\mathbf{W}_{xf}\mathbf{x}_t + \mathbf{W}_{hf}\mathbf{h}_{t-1} + \mathbf{b}_f) \\ \mathbf{o}_t &= \sigma(\mathbf{W}_{xo}\mathbf{x}_t + \mathbf{W}_{ho}\mathbf{h}_{t-1} + \mathbf{b}_o) \\ \tilde{\mathbf{c}}_t &= \tanh(\mathbf{W}_{xc}\mathbf{x}_t + \mathbf{W}_{hc}\mathbf{h}_{t-1} + \mathbf{b}_c) \\ \mathbf{c}_t &= \mathbf{f}_t \odot \mathbf{c}_{t-1} + \mathbf{i}_t \odot \tilde{\mathbf{c}}_t \\ \mathbf{h}_t &= \mathbf{o}_t \odot \tanh(\mathbf{c}_t) \end{aligned} $$
其中 $\sigma$ 为 Sigmoid 函数,$\odot$ 表示逐元素乘法。通过门控,LSTM 能够在较长的时间跨度上保持梯度流动,因而成为当时构建语言模型的主流选择。
3.3 代表性工作与性能提升
- **Mikolov 等人(2010)** 表明,基于 RNNLM 的语言模型在 Penn Treebank(PTB)数据集上的困惑度可降至约 100,显著优于当时的最佳 n-gram 模型(约 140)。
- **Sutskever 等人(2011)** 进一步展示了在大规模语料(如 One Billion Word)上训练的 LSTM LM 能够达到约 80 的困惑度,并为后续的序列到序列(Seq2Seq)模型奠定了基础。
尽管 RNN 基础模型在建模长程依赖方面取得了进步,但其顺序计算的天然限制导致训练速度受硬件并行能力的制约,这为后来的自注意力机制埋下了伏笔。
4. 预训练范式的崛起:从词嵌入到语言模型预训练
4.1 词嵌入的突破:Word2Vec 与 GloVe
在神经语言模型的研究过程中,研究者发现词向量本身就蕴含了丰富的语义信息。2013 年,Mikolov 等人提出了 Word2Vec,包含两种模型:连续词袋(CBOW)和 Skip‑gram。它们的目标是最大化目标词与其上下文词之间的相似度,形式化为:
$$ \max \sum_{t=1}^{T} \sum_{-c \leq j \leq c, j \neq 0} \log \sigma(\mathbf{v}_{w_t}^\top \mathbf{v}_{w_{t+j}}) $$
其中 $\mathbf{v}_w$ 为词 $w$ 的向量,$c$ 为上下文窗口大小。Word2Vec 的高效实现(负采样、层次 Softmax)使得在数十亿词的语料上训练词向量成为可能。
同年,Pennington 等人提出了 GloVe(Global Vectors for Word Representation),通过构建全局词共现矩阵并对其进行矩阵分解,直接捕捉词对之间的统计信息。GloVe 的目标函数为:
$$ J = \sum_{i,j=1}^{V} f(X_{ij}) \left( \mathbf{w}_i^\top \tilde{\mathbf{w}}_j + b_i + \tilde{b}_j - \log X_{ij} \right)^2 $$
其中 $X_{ij}$ 为词 $i$ 与词 $j$ 的共现次数,$f$ 为加权函数。词嵌入的成功表明,无监督的大规模语料预训练可以为下游任务提供通用的语言表示。
4.2 语言模型作为通用特征提取器:ELMo
2018 年,Peters 等人提出了 ELMo(Embeddings from Language Models),它不仅学习静态词向量,而是基于双向 LSTM 的语言模型生成上下文敏感的词表示。ELMo 的表示为不同层的隐藏状态的线性组合:
$$ \mathbf{ELMo}_k^{task} = \gamma^{task} \sum_{l=0}^{L} s_l^{task} \mathbf{h}_{k,l}^{LM} $$
其中 $\mathbf{h}_{k,l}^{LM}$ 为第 $l$ 层在位置 $k$ 的双向 LSTM 隐藏状态,$s_l^{task}$ 为任务特定的混合权重。ELMo 在多个基准测试(如 SQuAD、SNLI)上显著提升了状态,证明了深层语言模型的上下文表示对下游任务的价值。
4.3 Transformer 与大规模无监督预训练的结合
2017 年,Vaswani 等人提出了 Transformer 架构,彻底摆脱了循环结构,转而依赖自注意力(Self‑Attention) 机制来捕捉任意距离的依赖。自注意力的核心计算为:
$$ \text{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V} $$
其中 $\mathbf{Q},\mathbf{K},\mathbf{V}$ 分别为查询、键、值矩阵,$d_k$ 为键向量的维度。通过多头注意力(Multi‑Head Attention)和位置编码,Transformer 能够并行地处理整个序列,显著提升了训练效率。
基于 Transformer 的两种预训练范式迅速崭露头角:
1. BERT(Bidirectional Encoder Representations from Transformers):采用掩码语言模型(Masked Language Model, MLM) 与下一句预测(Next Sentence Prediction, NSP) 两项任务,在大规模语料(如 BookCorpus、English Wikipedia)上进行双向编码。BERT 的表示能够同时捕捉左、右上下文,因而在这些任务上表现优异。 2. GPT(Generative Pre‑trained Transformer)系列:采用自回归语言模型的目标,仅利用左侧上下文进行预训练,随后在各种生成任务中进行微调。GPT‑1 表明,仅凭语言模型预训练即可在多个下游基准上达到竞争力的性能;随后的 GPT‑2、GPT‑3 进一步展示了模型规模与数据量的共同作用。
这些工作共同确立了“预训练‑微调(Pre‑train & Fine‑tune)”范式:先在海量无标注语言数据上学习通用语言表示,再在特定任务的少量标注数据上进行微调。这一范式不仅大幅降低了任务特定标注成本,也显著提升了模型的泛化能力。
5. 大规模语言模型的突破:规模定律与涌现能力
5.1 模型规模与训练数据的经验法则
近年来,Kaplan 等人(2020)系统地研究了语言模型性能与模型参数量 $N$,数据量 $D$ 以及计算量 $C$ 之间的关系,提出了经验的缩放定律(Scaling Laws):
$$ \text{测试损失} \approx A N^{-\alpha} + B D^{-\beta} + C $$
其中 $A,B,\alpha,\beta,C$ 为任务相关的常数。该定律表明,在计算资源允许的范围内,增大模型规模和数据量能够持续降低损失,直至达到某种饱和点。换句话说,没有明显的“临界点”,性能提升大约遵循幂律。
5.2 涌现能力(Emergent Abilities)
当模型规模跨越一定阈值(通常在数十亿到上千亿参数时),会出现一些在小模型中未见过的涌现能力,诸如:
- **少样本学习(Few‑shot Learning)**:模型仅凭少量示例即可完成新任务,无需梯度更新。
- **链式思考(Chain‑of‑Thought, CoT)**:通过生成中间推理步骤来解决算术或逻辑问题。
- **指令遵循(Instruction Following)**:模型能够理解并执行以自然语言形式给出的指令。
这些能力在 GPT‑3(1750 亿参数)、PaLM(5400 亿参数)以及最近的 LLaMA 系列、GLM‑130B 等模型中均有体现。它们不仅在传统的语言基准上刷新纪录,还开始在代码生成、数学推理、科学问答等专业领域展示出竞争力。
5.3 代表性大模型及其技术特点
| 模型 | 参数量 | 训练语料规模 | 特色技术 | 主要应用 | |------|--------|--------------|----------|----------| | GPT‑3 | 175B | 570GB 文本(Common Crawl 等) | 稠密 Transformer,稀疏注意力(稀疏版本) | 少样本学习、对话、代码生成 | | PaLM | 540B | 780TB 多语料(含代码、网页) | Pathways 系统(并行训练),组合稀疏专家(Mixture‑of‑Experts) | 多语言理解、推理、翻译 | | LLaMA 系列 | 7B‑65B | 1.4T tokens(公开可得) | 高效的 transformer 实现,采用 RMSNorm、SwiGLU | 开源研究、微调基座 | | GLM‑130B | 130B | 300B 中英双语 tokens | 双向自回归填空(GLM),多任务预训练 | 中文 NLP、跨语言迁移 |
这些模型的成功不仅依赖于原始的 Transformer 设计,还离不开一系列系统工程上的创新:混合精度训练(FP16/BF16)、梯度检查点、ZeRO 分片优化器、流水线并行以及专家并行(MoE)。这些技术共同使得在数千块 GPU 上训练千亿参数模型成为可能。
6. 应用与影响:从学术到产业
6.1 典型下游任务的性能提升
以 SuperGLUE 基准为例,2020 年 BERT‑Large 的得分约为 80.3,而 2022 年的 PaLM‑540B 在少样本设置下已突破 90 大关;在 MMLU(大规模多任务语言理解)上,GPT‑4 的零样本准确率已超过 86%,远超早期模型的 40‑50% 水平。这些提升直接转化为产品中的实际效果:客服机器人的答对率提升了 30%,代码自动补丁生成的成功率从 15% 提升至 45%,机器翻译的 BLEU 分数在某些语对上提升了 5‑8 个点。
6.2 产业化部署与挑战
尽管性能卓越,大模型的落地仍面临几个主要挑战:
1. 计算成本:推理阶段对显存和算力的需求随模型规模线性增长。为了降低成本,业界普遍采用量化(int8/int4)、蒸馏(知识蒸馏到小模型)以及稀疏激活(如 Switch Transformer) 等技术。 2. 延迟:交互式应用(如聊天机器人)对响应时间敏感,需要并行解码、提前缓存键值(KV‑cache)以及异步批处理来满足服务级别协议(SLA)。 3. 安全与伦理:大模型可能生成不实信息、偏见内容或被用于恶意目的。因而,指令微调(Instruction Tuning)、强化学习从人类反馈(RLHF)以及内容过滤成为必备的安全防线。 4. 数据治理:训练语料的版权、隐私及偏见问题受到越来越多的关注,开源社区正在探索数据透明度声明、许可证兼容性检查以及去偏移预处理。
6.3 未来发展方向
- **高效架构**:研究稀疏门控(如 Mixture‑of‑Experts)、线性注意力(如 Performer、Linformer)以及状态空间模型(如 Mamba)以在保持性能的同时降低计算复杂度。
- **多模态统一**:将语言、视觉、音频等模态统一到同一 Transformer 框架中,实现跨模态理解与生成(如 GPT‑4V、FLAMingo)。
- **可控生成**:通过**前缀调节(Prefix‑tuning)*