第1章:历史背景与动机 / Chapter 1: Historical Background and Motivation
1.1 引言:语言建模的“圣杯”与范式转移的必然性
人类语言,作为认知、社会与文化的核心载体,其自动化理解与生成一直是人工智能领域的“圣杯”。从图灵测试的哲学设问到现代对话系统的实用化追求,核心挑战始终归结为一个技术问题:如何构建一个计算模型,能够精确地建模语言序列的联合概率分布 $P(w_1, w_2, ..., w_T)$,并基于此进行有意义的生成与推理?这个看似简单的概率问题,驱动了过去半个世纪以来自然语言处理(NLP)领域的范式更迭。本章并非简单的编年史,而是旨在通过技术演进的因果链分析,揭示从统计方法到深度学习、再到 Transformer 革命的内在逻辑,阐明 GPT 系列模型为何成为这一演进路径上的“必然产物”。我们将看到,每一次架构的突破,本质上都是为了解决前一范式在建模能力、计算效率或泛化性上的根本性瓶颈。理解这些历史动机,是深入后续章节技术细节的认知基石。
> 📱 电子版提示:本章包含多个交互式时间轴图表,点击可查看关键论文的引用详情与影响分析。
1.2 统计语言模型时代:概率的基石与稀疏的诅咒
1.2.1 n-gram 模型:马尔可夫假设下的实用主义
在深度学习兴起之前,统计语言模型(Statistical Language Models, SLM) 是语言概率建模的绝对主流。其核心思想是使用经验频率来估计序列概率,最典型的代表便是 n-gram 模型。一个 n-gram 模型基于一阶马尔可夫假设的近似扩展:当前词的出现仅依赖于其前 n-1 个词。其概率估计通过链式法则分解为条件概率的乘积:
$$P(w_1, w_2, ..., w_T) = \prod_{t=1}^{T} P(w_t | w_{t-n+1}, ..., w_{t-1})$$
其中,条件概率 $P(w_t | \text{context})$ 通过大规模语料库中的频次计数进行最大似然估计(MLE):
$$P_{MLE}(w_t | w_{t-n+1}^{t-1}) = \frac{\text{count}(w_{t-n+1}^{t})}{\text{count}(w_{t-n+1}^{t-1})}$$
技术贡献与历史地位:n-gram 模型在语音识别(如 IBM 的 Tangora 系统)、早期机器翻译(如基于短语的统计机器翻译)中取得了里程碑式的成功。它建立了语言建模的评估基准——困惑度(Perplexity),其定义为测试集概率的负对数似然的指数:$\text{PPL} = 2^{-\frac{1}{N}\sum \log_2 P(w_i|\text{context})}$。困惑度越低,表明模型对数据分布的不确定性越小,预测越准确。这一指标沿用至今。
根本性局限:n-gram 模型的瓶颈是结构性的,无法克服: 1. 数据稀疏与零概率问题:语言组合空间巨大,即使 n=5,对于百万词级的语料,绝大多数 5-gram 从未出现。直接使用 MLE 会导致未登录词(Out-of-Vocabulary, OOV)和罕见 n-gram 的概率为零,使整个序列概率归零。这催生了复杂的平滑技术(如加一平滑、Kneser-Ney 平滑),但这些是“补丁”而非“解方”,它们从全局概率质量中“借”给未出现的事件,本质是经验主义的权宜之计。 2. 有限的上下文窗口:n 值受限于计算与存储。n=3(trigram)是常见折中,但仅能捕捉局部语法(如动词后接名词),无法建模长距离依赖(Long-range Dependencies)。例如,在“我在巴黎长大,他现在住在伦敦”中,代词“他”的指代对象“我”可能出现在几十个词之前,trigram 模型完全无法捕捉。 3. 缺乏泛化与语义表示:每个 n-gram 是独立的符号组合,模型无法识别“猫追老鼠”与“狗追猫”之间的语义相似性(都表示“动物追逐”)。它学习了表面共现统计,而非内在语义与句法结构。 4. 维度灾难与存储开销:参数数量随词汇表大小 $|V|$ 呈 $O(|V|^n)$ 增长。对于 $|V|=10^5$,5-gram 模型的理论参数空间高达 $10^{25}$,即使使用哈希技巧,实际存储的 n-gram 数量也常达数十亿,对内存和检索是巨大负担。
这些局限性表明,基于离散符号计数和局部马尔可夫假设的范式,在表达能力和可扩展性上已触及天花板,无法满足对语言深层结构建模的需求。
1.3 神经网络语言模型:分布式表示与稠密向量的曙光
1.3.1 NNLM 的范式突破:从离散符号到连续向量
2003年,Bengio 等人的里程碑论文《A Neural Probabilistic Language Model》正式开创了神经网络语言模型(Neural Network Language Model, NNLM) 时代。其核心洞见是:将离散的词符号映射为稠密、低维的连续向量(词嵌入,Word Embedding),并通过一个神经网络来学习上下文到下一个词的条件概率分布。
模型结构通常包含三部分: 1. 嵌入层(Embedding Layer):将每个词 $w_t$ 映射为一个 $d$ 维向量 $\mathbf{e}(w_t) \in \mathbb{R}^d$。这是分布式假设(Distributional Hypothesis) 的体现:“出现在相似上下文中的词具有相似的含义”。词向量成为可学习的、承载语义的稠密表示。 2. 上下文编码器(Context Encoder):将前 n-1 个词的嵌入向量组合(如拼接)为一个固定长度的上下文表示 $\mathbf{h} = f(\mathbf{e}(w_{t-n+1}), ..., \mathbf{e}(w_{t-1}))$。早期 NNLM 使用前馈神经网络(Feedforward Network),如一个或多个隐藏层。 3. 输出层(Output Layer):将上下文表示 $\mathbf{h}$ 通过一个线性层+Softmax,映射到整个词汇表上的概率分布:$P(w_t | \text{context}) = \text{softmax}(\mathbf{W}\mathbf{h} + \mathbf{b})$,其中 $\mathbf{W} \in \mathbb{R}^{|V| \times m}$,$m$ 是隐藏层维度。
革命性意义:
- **解决了稀疏性问题**:通过共享的嵌入矩阵,模型参数从 $O(|V|^n)$ 暴降至 $O(|V| \cdot d + \text{网络参数})$。词汇表的扩展不再带来参数量的爆炸,泛化能力显著增强。未在训练中直接出现的词组合,可通过其组成词的向量组合进行推理。
- **引入了可学习的语义表示**:词向量成为模型的核心资产,能够捕捉丰富的语言规律(如“king - man + woman ≈ queen”的线性类比关系)。
- **端到端学习**:从原始词索引到概率预测,整个流程可微,可通过反向传播联合优化嵌入层和网络参数。
遗留挑战:尽管 NNLM 在原理上更优雅,但其前馈结构依然继承了 n-gram 的固定窗口特性。上下文长度 n 是预设的超参数,无法动态处理任意长度的历史信息。这再次将长距离依赖问题摆上台面。
1.4 序列模型的困境:RNN 与 LSTM 的挣扎
为了突破固定窗口限制,循环神经网络(Recurrent Neural Network, RNN) 及其变体 长短期记忆网络(Long Short-Term Memory, LSTM) 成为 2010 年代中后期的主流架构。其核心设计是循环连接:隐藏状态 $\mathbf{h}_t$ 在时间步上传递,理论上可以保留任意长度历史的信息。
1.4.1 RNN 的理论优势与梯度消失/爆炸
RNN 的递归定义:$\mathbf{h}_t = f(\mathbf{h}_{t-1}, \mathbf{x}_t)$,其中 $\mathbf{x}_t$ 是当前输入。这使其天然适合序列建模。然而,在实践中,使用反向传播通过时间(BPTT) 训练深度 RNN 时,梯度需要在时间维度上反向传播多步。根据链式法则,这涉及雅可比矩阵的连乘。当雅可比矩阵的特征值持续小于1时,梯度呈指数级衰减至0(梯度消失);反之则指数级增长(梯度爆炸)。这使得标准 RNN 难以学习时间跨度超过 5-10 个时间步的依赖关系,严重制约了其建模长文本的能力。
1.4.2 LSTM 的门控机制:精巧的设计与未被根治的问题
1997 年提出的 LSTM 通过引入门控机制,旨在有选择性地读写、遗忘细胞状态(Cell State)$\mathbf{c}_t$,从而缓解梯度问题。其核心公式:
$$ \begin{aligned} \mathbf{f}_t &= \sigma(\mathbf{W}_f \cdot [\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_f) \quad &\text{(遗忘门)} \\ \mathbf{i}_t &= \sigma(\mathbf{W}_i \cdot [\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_i) \quad &\text{(输入门)} \\ \tilde{\mathbf{c}}_t &= \tanh(\mathbf{W}_c \cdot [\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_c) \quad &\text{(候选细胞状态)} \\ \mathbf{c}_t &= \mathbf{f}_t \odot \mathbf{c}_{t-1} + \mathbf{i}_t \odot \tilde{\mathbf{c}}_t \quad &\text{(细胞状态更新)} \\ \mathbf{o}_t &= \sigma(\mathbf{W}_o \cdot [\mathbf{h}_{t-1}, \mathbf{x}_t] + \mathbf{b}_o) \quad &\text{(输出门)} \\ \mathbf{h}_t &= \mathbf{o}_t \odot \tanh(\mathbf{c}_t) \quad &\text{(隐藏状态输出)} \end{aligned} $$
LSTM 在实践中显著优于标准 RNN,成为当时 NLP 的支柱(如用于机器翻译的_seq2seq_ 模型)。然而,其根本性挑战依然存在:
1. 顺序计算的固有瓶颈:RNN/LSTM 的递归性质决定了其必须严格按时间步顺序计算。对于长度为 $T$ 的序列,计算 $T$ 个时间步无法并行化,这是计算效率上的致命伤。在 GPU 时代,这种顺序依赖性导致硬件利用率极低,训练长文档模型(如书籍、长对话)极其缓慢,成为扩展模型规模和数据量的主要障碍。 2. 长程依赖的“理论可能”与“实践困难”:虽然细胞状态的设计理论上允许梯度无损流动($\frac{\partial \mathbf{c}_t}{\partial \mathbf{c}_{t-1}} = \mathbf{f}_t$,若遗忘门接近1,则梯度可远距离传播),但实践中,LSTM 仍难以有效捕捉跨越数百步的依赖。梯度在长序列中仍会逐渐稀释,且门控机制需要学习精确的开关策略,这本身是困难的。 3. 信息压缩的瓶颈:无论 RNN 还是 LSTM,整个序列的历史信息最终都需压缩到最后一个时间步的固定维度隐藏状态 $\mathbf{h}_T$ 中(在编码器-解码器架构中)。对于长序列,这是一个极端的信息瓶颈,导致细节信息在压缩过程中大量丢失。
这些困境表明,基于顺序循环的架构,在计算效率和超长程依赖建模上存在根本矛盾,无法满足构建“真正理解”长文本的大模型需求。一场架构革命迫在眉睫。
1.5 Transformer 的诞生:自注意力机制与并行计算的统一
1.5.1 2017:一个转折点
2017 年,Vaswani 等人发表了划时代的论文《Attention Is All You Need》。其标题即宣告了核心主张:抛弃循环与卷积,仅依赖注意力机制(Attention Mechanism)即可构建最先进的序列模型。这不仅是架构创新,更是对序列建模计算本质的重新思考。
1.5.2 核心创新:自注意力与多头机制
Transformer 的核心是 缩放点积注意力(Scaled Dot-Product Attention)。对于一个输入序列(由词向量组成的矩阵 $\mathbf{X} \in \mathbb{R}^{T \times d}$),它并行计算所有位置之间的关联强度:
$$ \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}$(Query)、$\mathbf{K}$(Key)、$\mathbf{V}$(Value)均由 $\mathbf{X}$ 线性变换而来。$\mathbf{Q}\mathbf{K}^\top$ 计算了所有位置对的相关性得分,Softmax 将其归一化为权重,最后加权求和 $\mathbf{V}$ 得到输出。
革命性优势: 1. 任意距离依赖的直接建模:任意两个位置 $i$ 和 $j$ 的计算复杂度是 $O(1)$,与距离无关。这从机制上彻底解决了长程依赖问题。一个词可以直接“看到”序列中任何其他词,无需经过漫长的递归路径。 2. 完全并行计算:对于序列中所有位置,$\mathbf{Q}, \mathbf{K}, \mathbf{V}$ 的生成及注意力计算可一次性完成,充分利用 GPU 的矩阵运算能力。训练速度相比 LSTM 有数量级提升。 3. 可解释性:注意力权重矩阵 $\text{softmax}(\mathbf{Q}\mathbf{K}^\top/\sqrt{d_k})$ 可视化为词-词关联热图,提供了模型决策过程的直观洞察(尽管后期研究发现其解释性比预期复杂)。
多头注意力(Multi-Head Attention) 进一步增强了模型的表达能力。它将 $\mathbf{Q}, \mathbf{K}, \mathbf{V}$ 的维度拆分为 $h$ 个“头”,每个头学习不同的表示子空间(如语法关系、指代关系、语义角色等),最后拼接输出。这允许模型联合关注来自不同表示子空间的信息,类比于卷积神经网络中使用多个滤波器。
1.5.3 位置编码与架构完整性
纯注意力机制是置换不变的(Permutation Invariant),无法感知序列顺序。Transformer 通过位置编码(Positional Encoding) 注入位置信息。原始论文使用固定正弦/余弦函数:
$$ PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d_{\text{model}}}) PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d_{\text{model}}}) $$
这种设计使得模型能够学习相对位置关系,且能外推到训练时未见过的序列长度。
编码器-解码器架构:原始 Transformer 为序列到序列(如翻译)任务设计,包含编码器堆栈(自注意力+前馈网络)和解码器堆栈(带掩码的自注意力+编码器-解码器注意力+前馈网络)。但对于仅需语言建模(自回归生成)的任务,编码器本身即可作为强大的上下文编码器。这一观察为后续 GPT 系列的“仅解码器”架构埋下伏笔。
1.5.4 局限与后续影响
Transformer 并非完美。其自注意力层的计算和内存复杂度是 $O(T^2)$($T$ 为序列长度),这限制了其处理超长序列(如整本书、小时级音频)的能力,催生了后续的稀疏注意力、线性注意力、层次化注意力等变体。然而,其并行性+长程依赖的核心优势,使其在 $T$ 适中的范围内(如数千个 token)成为无可争议的王者。它为大语言模型提供了可扩展、高效、强大的基础架构。
1.6 GPT 系列的里程碑:生成预训练的范式确立
Transformer 提供了引擎,而 OpenAI 的 GPT(Generative Pre-trained Transformer) 系列则展示了如何驾驭这一引擎,通过规模扩展与训练范式创新,释放出惊人的涌现能力。
1.6.1 GPT-1 (2018):自回归预训练与微调的范式
GPT-1 首次提出了 “预训练-微调(Pre-training & Fine-tuning)” 的统一框架,其核心思想是: 1. 预训练目标:使用自回归语言建模目标。给定一个无标签文本序列 $(w_1, ..., w_T)$,最大化以下似然: $$ \mathcal{L}_{\text{LM}} = \sum_{t=1}^{T} \log P(w_t | w_{<t}) $$ 模型需基于所有左侧历史词预测下一个词。这使用了仅解码器的 Transformer 架构(堆叠的掩码自注意力层),确保预测时只能看到过去信息,符合生成任务要求。 2. 微调:将预训练好的模型参数作为初始化,在特定下游任务(如文本蕴含、问答、情感分析)的有标签数据上,仅需添加一个任务特定的线性输出层,进行少量梯度更新。
意义:证明了单一模型+单一预训练目标,通过简单的微调,即可在多种 NLP 任务上取得当时最佳效果,打破了任务特定模型设计的传统,开启了通用 NLP 模型的时代。参数量 1.17 亿。
1.6.2 GPT-2 (2019):零样本学习与规模定律的初显
GPT-2 的核心贡献是系统性研究模型规模与性能的关系,并展示了零样本(Zero-shot)学习的潜力。
- **架构延续**:沿用仅解码器 Transformer,但做了优化(层归一化位置调整、更大上下