引言:大语言模型的发展简史与全书导览 / Introduction: A Brief History of LLMs and Book Overview
语言模型(Language Model, LM)的发展史,是一部人类试图让机器理解、生成人类语言并最终与之深度智能交互的奋斗史。这条演进路径并非线性平滑上升,而是由几次根本性的范式革命所定义。每一次革命都源于对前代方法核心瓶颈的深刻洞察,并引入了全新的计算原理与架构思想。本书的核心命题正是:以2017年Transformer架构的提出为清晰的分水岭,现代大语言模型(Large Language Model, LLM)的几乎所有关键特性——包括前所未有的规模扩展、涌现能力、以及多样的任务泛化性——都根植于这一架构所提供的计算基础之上。本章将系统性地回顾从统计语言模型到神经网络语言模型,再到预训练范式的完整演进链条,剖析每一阶段的贡献与局限,从而为理解Transformer何以成为“通用架构”奠定历史与逻辑基础。同时,我们将定义贯穿全书的核心术语,并勾勒出从基础架构到对齐技术的完整技术图谱。
1.1 统计语言模型时代:基于计数的概率估计
在深度学习兴起之前,语言建模的核心任务是估计一个词序列(句子)出现的概率 $P(w_1, w_2, ..., w_T)$。根据链式法则,这一联合概率可分解为条件概率的乘积: $$P(w_1, w_2, ..., w_T) = \prod_{t=1}^{T} P(w_t | w_1, ..., w_{t-1})$$ 问题的关键在于如何有效估计这些条件概率 $P(w_t | \text{history})$。
1.1.1 N-gram模型:马尔可夫假设的实践
N-gram模型 是这一时代的主流方法。它施加一个N-1阶马尔可夫假设:当前词的出现仅依赖于其前面的N-1个词。例如,Bigram(N=2)模型假设 $P(w_t | w_1, ..., w_{t-1}) \approx P(w_t | w_{t-1})$。
其概率估计基于最大似然估计(MLE),即在大型语料库(如新闻文章、网页文本)中统计N-gram出现的频次: $$P_{\text{MLE}}(w_t | w_{t-1}) = \frac{\text{count}(w_{t-1}, w_t)}{\text{count}(w_{t-1})}$$
具体案例: 假设我们有一个小型语料库:
- “the cat sat on the mat”
- “the dog sat on the log”
对于Bigram模型,计算 $P(\text{mat} | \text{the})$。在语料中,“the”后面出现“mat”1次,出现“dog”1次,出现“cat”1次。因此: $$P(\text{mat} | \text{the}) = \frac{1}{3} \approx 0.333$$
根本性局限: 1. 数据稀疏与零概率问题:语言组合空间无穷大,而任何语料库都有限。绝大多数N-gram在训练数据中从未出现,导致其条件概率为0,使得整个句子概率为0。这严重低估了真实语言概率。平滑技术(如加法平滑、Kneser-Ney平滑)通过从高频N-gram“借”概率来缓解,但只是权宜之计,无法根本解决表示能力的局限。 2. 上下文窗口刚性:N的大小受限于内存和计算。N通常为2-5。这意味着模型只能看到极短的历史,无法捕捉长距离依赖。例如,在句子“我出生在法国,所以我能说流利的___”中,要预测“法语”需要依赖几十个词之前的“法国”,N-gram(即使N=5)完全无法处理。 3. 无法进行语义泛化:模型基于表面词形匹配。它无法知道“猫”和“狗”都是动物,“跑”和“走”都是动作。因此,对于训练语料中未出现但语义合理的组合(如“the feline slept”),模型无法给出合理概率。
历史意义:N-gram模型及其平滑技术是概率语言建模的基石,奠定了n-gram交叉熵作为评估语言模型核心指标的传统。它催生了早期语音识别(如IBM的Byblos系统)和机器翻译(基于短语的统计机器翻译,Phrase-Based SMT)的成功应用。然而,其固有的表示瓶颈预示着必须寻求新的范式。
1.2 神经语言模型:分布式表示与连续空间
21世纪初,神经网络为语言建模带来了革命性的思想:分布式表示(Distributed Representation)。其核心是将离散的词汇符号映射到连续的、低维的向量空间(词嵌入)中。语义相似的词在向量空间中距离相近。
1.2.1 前馈神经语言模型(NNLM)与词嵌入的兴起
Bengio等人在2003年提出的神经网络语言模型(Neural Network Language Model, NNLM) 是里程碑式的工作。其结构包括: 1. 输入层:将上下文词(如前N-1个词)的one-hot编码通过一个共享的查找表(Lookup Table) 映射为稠密向量(词嵌入)。 2. 隐藏层:将所有上下文词嵌入拼接(Concatenate)或求和(Sum)后,通过一个或多个非线性激活函数(如tanh)的隐藏层。 3. 输出层:一个与词汇表大小相同的Softmax层,输出下一个词的概率分布。
核心贡献:
- **词嵌入作为副产品**:训练过程中,查找表矩阵(词汇表大小 × 嵌入维度)被优化,学习到的词向量(如`king - man + woman ≈ queen`)捕获了丰富的语义和句法关系。这直接催生了**Word2Vec**(2013)等专门学习词嵌入的模型,并引发了词向量研究的浪潮。
- **缓解数据稀疏**:通过共享参数和连续表示,模型能够对未见的词组合进行一定程度的泛化,因为相似的上下文词会激活相似的隐藏层状态。
遗留挑战:
- **上下文窗口依然有限**:NNLM本质上仍是一个固定窗口(N-1)的模型,虽然词嵌入提供了泛化,但窗口外信息无法直接利用。
- **序列建模的固有问题**:为处理变长序列,人们自然转向**循环神经网络(RNN)**,尤其是其变体**长短期记忆网络(LSTM)** 和**门控循环单元(GRU)**。
1.2.2 RNN/LSTM:序列建模的“标准”与瓶颈
RNN的核心思想是循环连接,使隐藏状态能够携带历史信息,理论上可以处理任意长度的序列。LSTM通过精巧的输入门、遗忘门、输出门结构,有效缓解了普通RNN的梯度消失/爆炸问题,在2010年代成为序列建模的绝对主流。
以机器翻译为例的演进:
- **早期序列到序列(Seq2Seq)**:一个LSTM编码器将源语言句子压缩为一个固定长度的上下文向量(Context Vector),一个LSTM解码器基于此向量逐词生成目标语言句子。这种“瓶颈”设计导致长句子信息损失严重。
- **注意力机制(Attention)的引入**:Bahdanau等人(2014)提出,解码器在生成每个词时,应能**动态地、有选择地“关注”编码器所有隐藏状态**,而非仅依赖最后一个。这显著提升了长序列翻译质量。注意力权重 $\alpha_{t,i}$ 表示在生成第t个目标词时,对第i个源词隐藏状态的关注度,通常由一个小型神经网络(或点积)计算得出。
注意力机制的划时代意义:它首次在序列模型中实现了内容相关的、可计算的关联性,打破了固定长度向量的瓶颈。然而,在LSTM框架下,注意力是附加模块,核心的序列状态传递仍依赖顺序的RNN计算,这带来了新的瓶颈:
1. 顺序计算的固有缺陷:RNN/LSTM必须按时间步顺序处理序列,无法并行化。对于长序列,训练速度极慢,成为扩大模型规模和数据量的主要障碍。 2. 长程依赖的衰减:尽管LSTM优于普通RNN,但信息在时间步中传递仍会逐渐衰减或失真。对于超长文档,依赖关系依然脆弱。 3. 架构的复杂性:编码器-解码器、注意力、RNN单元,多个组件耦合,使得理解和优化变得复杂。
此时,领域处于一个关键节点:我们需要一种既能保持注意力机制的优势,又能实现完全并行计算、能直接建模任意词对关系的新架构。
1.3 预训练范式的崛起:从任务特定到通用表征
在Transformer出现前后,一个更宏观的范式转变正在发生:预训练(Pre-training) + 微调(Fine-tuning)。
1.3.1 Word2Vec与静态词嵌入的局限
Word2Vec(Skip-gram, CBOW)通过浅层网络在巨大语料上学习词向量,质量极高且计算高效。但其核心缺陷是一词一向量(One-Embedding-Per-Word),无法解决一词多义问题。“bank”在“river bank”和“bank account”中应有不同表示,但Word2Vec只能输出一个静态向量。
1.3.2 ELMo与上下文相关词嵌入
ELMo(Embeddings from Language Models,2018) 是重要的过渡性工作。它使用双向LSTM(Bi-LSTM) 在大型语料上进行语言模型预训练。对于输入句子中的每个词,ELMo将该词在所有层(包括正向和反向)的隐藏状态进行加权求和,生成深度上下文相关的词表示。 $$ \text{ELMo}_i^{task} = \gamma \sum_{j=0}^{L} s_j^{task} h_{i,j} $$ 其中 $h_{i,j}$ 是第j层第i个词的Bi-LSTM隐藏状态,$s_j^{task}$ 是任务特定的权重,$\gamma$ 是缩放因子。
意义与不足:
- **证明了上下文表示的价值**:在下游NLP任务(如情感分析、问答)上,仅将ELMo嵌入作为特征加入,即可带来显著提升。
- **架构的继承者**:它仍然基于LSTM,受限于顺序计算和长程依赖瓶颈。其预训练目标仍是标准的语言模型(前向+后向),但生成过程是分离的。
- **非生成式**:ELMo本身不是生成模型,不能直接用于文本生成。
此时,领域已经明确:一个强大的、能产生高质量上下文表示的预训练模型,是解决众多NLP问题的关键。但需要一个既能像ELMo一样产生上下文表示,又能像注意力机制一样高效并行,同时自身具备强大生成能力的新基础架构。这个架构就是Transformer。
1.4 Transformer:作为通用架构的诞生
2017年,Vaswani等人在论文《Attention Is All You Need》中提出了Transformer。其核心论点是:抛弃循环和卷积,完全依赖自注意力(Self-Attention)机制来构建序列模型。
1.4.1 核心创新:自注意力与并行化
自注意力 允许序列中的每一个词直接与所有其他词计算关联分数,并据此聚合信息。对于输入序列 $X = [x_1, x_2, ..., x_n]$,其中 $x_i \in \mathbb{R}^{d_{\text{model}}}$,自注意力计算: 1. 为每个 $x_i$ 生成查询(Query) $Q$、键(Key) $K$、值(Value) $V$ 向量:$Q = XW_Q, K = XW_K, V = XW_V$,其中 $W_Q, W_K, W_V \in \mathbb{R}^{d_{\text{model}} \times d_k}$(通常 $d_k = d_{\text{model}}/h$,h为头数)。 2. 计算注意力分数:$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$。缩放因子 $\sqrt{d_k}$ 用于稳定梯度。 3. 多头注意力:将Q、K、V通过不同的线性投影h次(即h个“头”),分别进行上述注意力计算,将结果拼接后再通过一个线性层。这允许模型在不同表示子空间关注不同类型的信息(如句法、语义)。
革命性优势:
- **最大路径长度O(1)**:任意两个词之间的依赖只需一步计算,无论距离多远。完美解决了长程依赖问题。
- **完全并行**:序列中所有词对的注意力计算可以**同时进行(矩阵运算)**,训练速度相比RNN/LSTM有数量级提升,使得在超大规模数据上训练成为可能。
- **可解释性**:注意力权重图提供了模型“关注”了哪些词的直观视图(尽管不完全可靠)。
1.4.2 架构细节:编码器-解码器与位置信息
原始Transformer采用编码器-解码器结构,用于序列到序列任务(如翻译)。
- **编码器**:由N个相同层堆叠,每层包含**多头自注意力子层**和**前馈神经网络(FFN)子层**,均配有残差连接(Residual Connection)和层归一化(Layer Normalization)。
- **解码器**:同样堆叠N层,每层包含**带掩码的多头自注意力**(防止当前位置关注未来位置)、**编码器-解码器注意力**(关注编码器输出)、以及FFN子层。
关键问题:如何处理序列顺序? 自注意力本身是置换不变的(permutation-invariant)。为解决此问题,Transformer在词嵌入中加上了位置编码(Positional Encoding)。原始论文使用固定正弦/余弦函数,后续工作(如相对位置编码、旋转位置编码RoPE)不断改进,以更优雅地融入位置信息。
1.4.3 从架构到范式:BERT与GPT的分野
Transformer架构的通用性,使其能通过不同的预训练目标被塑造为不同的模型家族,开启了新时代:
1. 编码器模型:BERT(Bidirectional Encoder Representations from Transformers,2018)
- **目标**:**掩码语言模型(Masked Language Model, MLM)**。随机掩盖输入句子中15%的词(用`[MASK]`替换),训练模型根据双向上下文预测被掩盖的词。
- **特点**:利用双向注意力,产生**深度双向上下文表示**。在**理解类任务**(分类、抽取、相似度)上表现卓越。
- **局限**:预训练与微调不匹配(微调时无`[MASK]`);无法直接用于生成(自回归)。
2. 解码器模型:GPT(Generative Pre-trained Transformer)系列
- **目标**:**因果语言模型(Causal Language Model, CLM)**。标准的自回归训练:根据上文 $w_1, ..., w_{t-1}$ 预测下一个词 $w_t$。
- **特点**:单向(仅左侧上下文),天然适合**文本生成**。通过**扩大规模**(参数量、数据量)和**指令微调**,展现出惊人的**涌现能力**。
- **演进**:GPT-2(1.5B)证明零样本学习潜力;GPT-3(175B)展现少样本/思维链(Chain-of-Thought)能力;InstructGPT/chatGPT引入**人类反馈强化学习(RLHF)** 实现对齐;GPT-4在多模态和复杂推理上进一步突破。
分野的意义:BERT和GPT分别代表了Transformer架构在“理解”和“生成”两个方向上的极致探索。而后续的模型(如T5、BART、UL2)则尝试统一或改进这些目标。Transformer架构本身,成为了承载不同预训练目标的通用“硬件平台”。
1.5 核心命题确立:Transformer作为现代LLM的通用架构
综合以上历史演进,我们可以明确本书的核心命题:Transformer不仅是又一个更好的序列模型,它是使现代大语言模型成为可能的“通用架构”。这一论断基于以下四点:
1. 计算效率的质变:其并行自注意力机制,首次使得在千亿参数级别和万亿token级别的数据上进行训练在工程上可行。没有Transformer,就没有GPT-3/4、PaLM、Claude等大模型。 2. 表示能力的统一与强大:通过调整注意力掩码和预训练目标,同一架构能高效支持双向编码(BERT式)、单向自回归生成(GPT式)、序列到序列(原始T5/BART式)等多种模式。这种统一性极大地简化了模型研发,使研究者和工程师能专注于预训练数据、目标函数和缩放定律等更高层问题。 3. 长程依赖的完美解决:O(1)的最大路径长度,使得模型能有效利用文档甚至书籍级别的上下文,这是处理复杂任务(如长文档摘要、跨段落推理)的基础。 4. 涌现能力的孵化器:当Transformer架构的模型规模(参数、数据、计算)跨越某一临界点后,出现了不可预测的、在小模型上不存在的全新能力,如指令遵循、思维链推理、代码生成、跨语言翻译等。这些“涌现能力”与Transformer的架构特性(如精确的注意力权重分配、深层堆叠带来的层次化表征)密切相关,是其成为“通用智能”雏形的关键证据。
因此,本书的技术主线将围绕这一通用架构展开,深入剖析其内部运作机制,并追踪基于此架构的预训练、解码、对齐等关键技术演进。
1.6 关键术语定义
为保障全书讨论的清晰性,我们在此明确定义若干贯穿始终的核心术语:
- **参数规模(Parameter Scale)**:模型中可训练参数的总数,通常以百万(M)、十亿(B)、万亿(T)为单位。是衡量模型容量(Capacity)的首要指标。例如,GPT-3的参数量约为175B。
- **涌现能力(Emergent Abilities)**:指当模型规模(参数、数据、计算)超过某一临界阈值后,模型突然展现出在较小模型上无法实现的新能力。这些能力通常无法通过简单地外推小模型性能来预测。典型例子包括:少样本学习(Few-shot Learning)、思维链(Chain-of-Thought)推理、指令遵循(Instruction Following)等。其出现具有**非线性**和**不可预测**特征。
- **预训练(Pre-training)**:在大量无标注文本数据上,通过设计自监督学习目标(如MLM、CLM),训练模型学习通用的语言世界知识和表示的过程。是当前LLM发展的第一阶段,成本最高。
- **微调(Fine-tuning)**:在预训练模型的基础上,使用相对较小的、针对特定任务的有标注数据集进行进一步训练,以适应特定下游任务。传统范式。
- **指令微调(Instruction Tuning)**:一种特殊的微调,使用(指令,输入,理想输出)三元组