第1章:引言:大语言模型的技术演进概览 (Introduction: An Overview of the Technical Evolution of Large Language Models)
大语言模型(Large Language Models, LLMs)的崛起标志着人工智能领域的一次范式转移,其核心驱动力源自于Transformer架构的引入与大规模预训练范式的成熟。从早期的统计语言模型到当今能够进行复杂推理、代码生成和多轮对话的通用人工智能(AGI)雏形,技术演进路径清晰而深刻。本章将系统性地梳理这一演进历程,剖析其间的关键突破,并定义贯穿全书的核心术语——预训练(Pretraining)、微调(Fine-tuning)与对齐(Alignment)。最终,本章将阐明本书的写作目标、面向的高级读者群体,以及创新的三件套出版理念与中英双语内容呈现策略,为后续各章深入技术细节奠定坚实的认知基础。
1.1 从统计到神经:语言模型的范式奠基
语言模型(Language Model, LM)的本质目标是估计一个词序列(句子)出现的概率 $P(w_1, w_2, ..., w_T)$。这一看似简单的概率问题,构成了自然语言处理(NLP)几乎所有任务的基石,包括机器翻译、文本摘要、语音识别等。其发展历程清晰地划分为两个主要范式:统计语言模型与神经语言模型。
1.1.1 统计语言模型:n-gram 与稀疏性的诅咒
统计语言模型的黄金时代由n-gram模型主导。其核心思想是马尔可夫假设:一个词的出现仅依赖于其前面的 $n-1$ 个词。例如,在二元模型(bigram, n=2)中,句子概率被分解为: $$ P(w_1, w_2, ..., w_T) = \prod_{t=1}^{T} P(w_t | w_{t-1}) $$ 其中,$P(w_t | w_{t-1})$ 的条件概率通过在一个大型语料库中计数“词对” $(w_{t-1}, w_t)$ 的出现频率,并除以 $w_{t-1}$ 的总出现次数来估计,即最大似然估计(MLE)。
实践案例:一个简单的Bigram模型 假设我们有一个微型语料库:“I love natural language processing. I love deep learning.” 我们可以构建如下计数:
- `love` 后面接 `natural` 1次,接 `deep` 1次。
- `I` 后面接 `love` 2次。
则概率估计为: $P(\text{natural} | \text{love}) = \frac{1}{2} = 0.5$ $P(\text{deep} | \text{love}) = \frac{1}{2} = 0.5$ $P(\text{love} | \text{I}) = \frac{2}{2} = 1.0$
n-gram模型直观、计算高效,且可解释性强。然而,其致命缺陷随着n的增大和数据规模的扩张而暴露无遗: 1. 数据稀疏性(Sparsity):对于任意一个n-gram组合,其在现实中出现的概率极低,导致大量“未登录(Out-of-Vocabulary, OOV)”或“零概率”问题。即使使用加一平滑(Laplace Smoothing) 等技巧,也只是权宜之计,无法从根本上解决高维离散空间的覆盖难题。 2. 有限上下文窗口:n的大小受限于计算和存储,通常n=5已属上限。这导致模型无法捕捉长距离依赖关系。例如,在一篇关于“巴黎”的文章中,几百词后出现“法国首都”时,n-gram模型无法将这两个远距离的词关联起来。 3. 语义鸿沟:模型将每个词视为独立的符号(如“国王”、“女王”),无法学习到“国王 - 男人 + 女人 ≈ 女王”这类向量空间中的语义关系。相似的语义会被映射到完全不同的计数桶中。
这些局限性催生了下一个范式的革命:将词映射为稠密、连续的向量表示(词嵌入),并使用神经网络来学习概率分布。
1.1.2 神经语言模型:词嵌入与序列建模的兴起
2003年,Bengio等人提出的神经概率语言模型(Neural Probabilistic Language Model, NPLM) 开创了神经LM的先河。其核心创新在于: 1. 词嵌入层(Embedding Layer):将词汇表中的每个词 $w$ 映射为一个固定维度的稠密向量 $\mathbf{e}_w \in \mathbb{R}^d$。这个向量通过训练学习,使得语义相似的词在向量空间中距离相近。例如,Word2Vec(2013)和GloVe(2014)等词向量模型证明了这一点。 2. 神经网络概率估计器:使用一个前馈神经网络(通常是多层感知机,MLP)或循环神经网络(RNN),以当前词及其前 $n-1$ 个词的嵌入向量为输入,预测下一个词的概率分布: $$ P(w_t | w_{t-n+1}, ..., w_{t-1}) = \text{softmax}(\mathbf{W} \cdot \text{NN}(\mathbf{e}_{w_{t-n+1}}, ..., \mathbf{e}_{w_{t-1}}) + \mathbf{b}) $$ 其中,$\text{NN}$ 代表神经网络。
RNN/LSTM的序列建模:为了处理变长序列并理论上能捕捉任意长度依赖,循环神经网络(RNN) 及其改进版长短期记忆网络(LSTM) 和门控循环单元(GRU) 成为主流。它们通过隐藏状态 $\mathbf{h}_t$ 在时间步上传递信息: $$ \mathbf{h}_t = f(\mathbf{h}_{t-1}, \mathbf{e}_{w_t}) $$ 这种设计允许信息在序列中逐步传播。
然而,RNN系列模型存在固有缺陷:
- **顺序计算的瓶颈**:每个时间步必须等待前一个时间步完成,这严重限制了训练和推理时的并行化能力,导致在超长序列上训练缓慢。
- **梯度消失/爆炸问题**:尽管LSTM/GRU通过门控机制缓解了该问题,但在处理极长序列时,远距离信息仍可能衰减或失控。
- **长程依赖建模能力有限**:尽管理论上可以传递任意长度信息,但实践中有效依赖范围依然受限。
这些问题的根本在于序列化的计算模式。一个能够完全并行计算、并显式建模任意两个位置之间关系的架构呼之欲出。2017年,Google的论文《Attention Is All You Need》提出了Transformer,一举解决了上述所有问题,开启了LLM时代。
1.2 Transformer革命:注意力机制驱动的架构基石
Transformer架构的诞生是NLP乃至整个深度学习领域的里程碑。它彻底摒弃了循环和卷积结构,完全基于自注意力(Self-Attention) 机制构建,实现了序列的并行处理与全局依赖的显式建模。
1.2.1 核心机制:自注意力与缩放点积注意力
自注意力的核心思想是:对于序列中的每个元素(词向量),我们计算它与序列中所有其他元素(包括自身)的相关性(注意力分数),然后根据这些分数对所有元素的值进行加权求和,得到该元素的上下文感知表示。
以输入序列的嵌入向量矩阵 $\mathbf{X} \in \mathbb{R}^{T \times d_{\text{model}}}$(T为序列长度,$d_{\text{model}}$为模型维度)为例: 1. 线性投影:通过三个可学习的权重矩阵 $\mathbf{W}^Q, \mathbf{W}^K, \mathbf{W}^V \in \mathbb{R}^{d_{\text{model}} \times d_k}$(通常 $d_k = d_v = d_{\text{model}}/h$,h为头数),将 $\mathbf{X}$ 投影为查询(Query)$\mathbf{Q}$、键(Key)$\mathbf{K}$、值(Value)$\mathbf{V}$: $$ \mathbf{Q} = \mathbf{X}\mathbf{W}^Q, \quad \mathbf{K} = \mathbf{X}\mathbf{W}^K, \quad \mathbf{V} = \mathbf{X}\mathbf{W}^V $$ 2. 缩放点积注意力:计算注意力分数矩阵,并对值进行加权求和: $$ \text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)\mathbf{V} $$
- $\mathbf{Q}\mathbf{K}^T$ 计算了所有查询-键对的相似度,得到一个 $T \times T$ 的分数矩阵。
- **缩放因子 $\sqrt{d_k}$** 是为了防止点积结果过大导致softmax进入梯度极小的饱和区(梯度消失),这是关键的设计细节。
- softmax操作在每一行(每个查询)上进行,得到归一化的注意力权重(分布)。
- 用权重矩阵乘以 $\mathbf{V}$,得到每个位置的输出表示,该表示是**所有值向量的加权和**,权重由该位置与所有位置的关联度决定。
一个直观的例子:在句子“The bank of the river is steep”中,对于单词“bank”,其查询向量 $\mathbf{q}_{\text{bank}}$ 会与“river”的键向量 $\mathbf{k}_{\text{river}}$ 有较高的点积(高注意力分数),而与“steep”的分数较低。因此,“bank”的输出表示会更多地融合“river”的语义信息(金融的“银行”与河流的“岸”在此处被区分开),而弱化与“steep”的关联。这就是上下文消歧能力的来源。
```mermaid graph TD A[输入序列 X] --> B[线性投影] B --> C[Query Q] B --> D[Key K] B --> E[Value V] C --> F[计算 Q·K^T] D --> F F --> G[缩放 & Softmax] G --> H[注意力权重] H --> I[加权求和 V] I --> J[输出矩阵] ```
1.2.2 架构设计:编码器-解码器与纯解码器
原始Transformer采用编码器-解码器(Encoder-Decoder) 架构,最初用于序列到序列(Seq2Seq)任务如机器翻译。
- **编码器**:由N个相同的层堆叠。每层包含两个子层:1) **多头自注意力(Multi-Head Self-Attention)**,将 $\mathbf{Q}, \mathbf{K}, \mathbf{V}$ 拆分为h个“头”,分别进行注意力计算,再将结果拼接投影,允许模型关注来自不同表示子空间的信息;2) **前馈神经网络(Feed-Forward Network, FFN)**,通常是两个线性变换加一个ReLU激活:$\text{FFN}(x) = \max(0, x\mathbf{W}_1 + \mathbf{b}_1)\mathbf{W}_2 + \mathbf{b}_2$。每个子层周围都有**残差连接(Residual Connection)** 和**层归一化(Layer Normalization)**,构成“Pre-LN”或“Post-LN”结构,是训练深层网络稳定性的关键。
- **解码器**:同样由N层堆叠,但每层包含三个子层:1) **带掩码的多头自注意力(Masked Multi-Head Self-Attention)**,确保解码时只能看到当前位置及之前的位置(防止信息泄漏);2) **编码器-解码器注意力(Cross-Attention)**,查询来自解码器上一层的输出,键和值来自编码器的最终输出,让解码器聚焦于输入序列的相关部分;3) **前馈神经网络**。
然而,LLM的演进很快发现,对于自回归语言建模(即预测下一个词)任务,仅使用解码器(Decoder-Only) 的架构(如GPT系列)更为高效和强大。其结构简化为:仅保留解码器中的“带掩码的自注意力”和FFN子层。这种架构天然适合生成任务,且训练目标(预测下一个词)极其简单,为海量数据上的预训练铺平了道路。BERT等模型则采用仅编码器(Encoder-Only) 架构,通过掩码语言建模(Masked Language Modeling, MLM)进行双向预训练,在理解类任务上表现卓越。T5则回归编码器-解码器,提出“文本到文本”统一框架。
1.2.3 位置信息与缩放定律
Transformer本身不具备处理序列顺序的能力,因为它是一个全连接的图网络。因此,必须显式地注入位置编码(Positional Encoding)。原始论文使用正弦和余弦函数: $$ PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d_{\text{model}}}) $$ $$ PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d_{\text{model}}}) $$ 这允许模型学习相对位置关系。后续工作如可学习的位置编码(Learned Positional Embeddings) 和旋转位置编码(Rotary Positional Embedding, RoPE) 被提出,后者在LLaMA等模型中成为标准,能更好地外推到训练长度之外的序列。
当Transformer架构与海量数据(万亿token级)、巨大模型(千亿至万亿参数) 和大规模分布式计算结合时,产生了令人惊叹的涌现能力(Emergent Abilities)——那些在小模型上不存在、在大模型上突然出现的能力,如复杂指令遵循、思维链(Chain-of-Thought)推理、代码生成等。OpenAI等机构的研究揭示了缩放定律(Scaling Laws):模型性能(测试损失)可预测地随计算量(FLOPs)、数据集大小和模型参数量而提升。这一发现直接驱动了“越大越好”的LLM军备竞赛,并证明了架构的稳固性是其能承受规模爆炸的前提。
1.3 对齐时代:从预训练到人类意图对齐
一个在互联网文本上预训练的原始LLM,虽然掌握了丰富的语言知识和世界知识,但它本质上是一个“下一个词预测机器”。它会忠实地延续训练数据中的模式,包括其中的偏见、毒性、不实信息,且可能生成有害、无帮助或与用户意图相悖的内容。为了让模型变得有用(Helpful)、诚实(Honest)且无害(Harmless),必须进行对齐(Alignment)。当前,从人类反馈中强化学习(Reinforcement Learning from Human Feedback, RLHF) 是LLM对齐的标杆性技术栈。
1.3.1 RLHF的三步舞:从原始模型到对齐模型
RLHF是一个精巧的流程,旨在将原始LM的“无监督”知识与人类的“有监督”偏好信号相结合。
第一步:监督微调(Supervised Fine-Tuning, SFT)
- **目标**:让模型学习遵循指令和生成期望格式的回复。
- **数据**:由人类标注员编写的高质量“指令-回复”对(例如,“写一首关于春天的诗” -> “...春风又绿江南岸...”)。
- **过程**:在预训练模型的基础上,使用标准的交叉熵损失在SFT数据上进行微调。这一步奠定了模型“会说话”且“按指令说话”的基础,但尚未精细区分回复的质量优劣。
第二步:训练奖励模型(Reward Model, RM)
- **目标**:学习一个函数,能为任何模型输出(给定一个指令)打出一个反映人类偏好的标量分数。
- **数据**:对于同一个指令,让SFT模型生成多个(如4-9个)不同的回复。人类标注员对这些回复进行**排序(Ranking)**,指出哪个最好,哪个次之,等等。排序数据比生成全质量数据更高效。
- **过程**:将排序数据转化为成对比较损失(如Bradley-Terry模型)。对于一对回复 $(y_w, y_l)$($y_w$ 优于 $y_l$),RM训练损失为:
$$ \mathcal{L}_{\text{RM}} = -\mathbb{E}_{(x, y_w, y_l)} \left[ \log \sigma(r_\theta(x, y_w) - r_\theta(x, y_l)) \right] $$ 其中 $r_\theta(x, y)$ 是RM对指令x和回复y的评分,$\sigma$ 是sigmoid函数。这训练RM学会区分更优回复。
第三步:使用PPO进行强化学习微调(RL Fine-Tuning)
- **目标**:优化原始LM(此时作为**策略网络**),使其生成的回复能获得RM给出的高分,同时避免偏离原始LM太远(防止“奖励黑客”或语言质量崩溃)。
- **过程**:这是一个**策略梯度**问题。
1. 策略:LM $\pi_{\phi}(y|x)$,参数为 $\phi$。 2. 奖励:$r(x, y) = r_{\theta}(x, y) - \beta \cdot \text{KL}[ \pi_{\phi}(y|x) \| \pi_{\text{ref}}(y|x) ]$。其中 $r_{\theta}$ 是训练好的RM评分,$\pi_{\text{ref}}$ 是固定的SFT模型(作为参考策略),$\beta$ 是KL惩罚系数。KL项强制新策略不要过度偏离参考策略,保证语言质量。 3. 优化:使用近端策略优化(Proximal Policy Optimization, PPO) 算法。PPO在策略梯度基础上,通过裁剪目标函数来确保每次更新的步长不会太大,稳定训练。它需要额外训练一个价值网络(Value Network) 来估计状态(指令x)的价值,以减少方差。
```mermaid graph LR A[预训练LM] --> B[SFT<br/>监督微调] B --> C[SFT模型] C --> D[生成多个回复] D --> E[人类排序] E --> F[训练奖励模型 RM] F --> G[RM评分] C --> H[RL策略<br/>PPO优化] G --> H H --> I[RLHF对齐模型] ```
1.3.2 对齐的挑战与前沿
RLHF并非完美。其挑战包括:
- **奖励黑客(Rew