大语言模型导论:从词向量到Transformer的范式革命 Introduction: From Word Embeddings to the Transformer Paradigm
第 1 章:大语言模型导论:从词向量到Transformer的范式革命
Introduction: From Word Embeddings to the Transformer Paradigm
当我们审视当代人工智能领域最引人瞩目的技术突破时,大语言模型(Large Language Model, LLM)无疑占据了核心位置。从ChatGPT到Claude,从GPT-4到Claude 3,这些系统展现出的语言理解与生成能力已经深刻改变了人机交互的范式。然而,这种能力并非凭空出现,而是数十年语言技术研究积累与突破的结晶。要真正理解大语言模型的工作原理与发展潜力,我们首先需要回答一个根本性问题:大语言模型的技术范式究竟是如何从传统的统计方法演进到当前基于Transformer的预训练+微调模式的?这一演进背后的核心驱动力是什么?
本章将系统性地追溯这一技术演进的历史脉络。我们从语言模型的形式化定义出发,确立评估语言模型性能的科学标准;随后深入分析从N-gram统计模型到神经语言模型的技术转型,揭示词向量与分布式表示在其中的关键作用;进而探讨序列到序列学习如何为现代大语言模型奠定了架构基础;最终剖析Transformer架构的核心组件与设计动机。通过这一完整的知识链条,读者将建立起理解后续章节所需的完备概念框架,为深入探索大语言模型的内部机理奠定坚实基础。
---
1.1 语言模型的形式化定义与评价体系
1.1.1 语言模型的形式化定义
语言模型的本质是对自然语言序列进行概率建模的数学系统。从概率论的角度来看,一个语言模型试图学习语言中词序列的联合概率分布 $P(w_1, w_2, ..., w_n)$,其中 $w_i$ 表示序列中的第 $i$ 个词。基于链式法则,这一联合概率可以分解为条件概率的乘积形式:
$$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})$$
这一定义揭示了语言模型的核心任务:给定一个词序列的前置上下文,预测下一个词出现的概率分布。这种条件概率建模使得语言模型能够捕捉语言中的依赖关系——无论是短距离的语法约束还是长距离的语义关联。
在实际应用中,语言模型通常以自回归(Autoregressive)方式工作,即从左到右逐词生成文本。给定前缀序列 $x_{1:t-1}$,模型预测下一个词 $x_t$ 的概率分布:
$$P(x_t | x_{1:t-1}) = \text{Softmax}(h_t \cdot W)$$
其中 $h_t$ 是模型在位置 $t$ 的隐藏表示,$W$ 是输出投影矩阵。这种自回归特性不仅使语言模型能够进行文本生成,还使其具备基于前缀的条件生成能力——这正是ChatGPT等对话系统的技术基础。
值得注意的是,语言模型的能力边界与其参数量、训练数据规模和模型架构密切相关。从信息论视角看,训练良好的语言模型应该能够编码语言的内在结构规律,从而对"合理"序列赋予较高概率,对"不合理"序列赋予较低概率。这种概率分布的学习本质上是一个压缩问题:模型通过发现语言中的统计规律来实现对语言的高效编码与生成。
1.1.2 困惑度:语言模型的核心评价指标
在语言模型研究中,困惑度(Perplexity, PPI)是最广泛使用的评价指标,它直接度量模型对测试数据的预测能力。困惑度的数学定义为:
$$\text{PP}(S) = P(w_1, w_2, ..., w_n)^{-\frac{1}{n}}$$
或等价地采用对数形式:
$$\text{PP}(S) = \exp\left(-\frac{1}{n} \sum_{i=1}^{n} \log P(w_i | w_1, ..., w_{i-1})\right)$$
从直觉上理解,困惑度表示模型在预测下一个词时面临的不确定性程度。当困惑度为 $k$ 时,可以解释为模型平均在 $k$ 个等可能选项中进行选择。困惑度越低,模型的预测能力越强;困惑度越高,则表明模型对语言的理解越不准确。
例如,假设一个语言模型对某个测试句子的词序列计算得到的对数概率为 -30,平均每词对数概率为 -3.0,则该句子的困惑度为 $\exp(3.0) \approx 20.1$,表明模型预测时平均面临约20个可能的词选择。相比之下,一个优秀的语言模型在标准测试集上可能达到个位数的困惑度。
困惑度与交叉熵(Cross-Entropy)密切相关。交叉熵定义为:
$$H(S) = -\frac{1}{n} \sum_{i=1}^{n} \log_2 P(w_i | w_1, ..., w_{i-1})$$
困惑度实际上是交叉熵的指数形式:$\text{PP}(S) = 2^{H(S)}$。在信息论中,交叉熵度量了使用基于模型 $P$ 的编码方案来编码来自真实分布 $Q$ 的序列所需的平均比特数,而困惑度则提供了更直观的不确定性解释。
然而,困惑度作为评价指标也存在局限性。首先,它对词表的粒度敏感——基于字节对编码(Byte Pair Encoding, BPE)等子词词表的模型,其困惑度不能直接与基于词级词表的模型比较。其次,困惑度是一个平均指标,可能掩盖模型在不同类型序列上的表现差异。因此,现代语言模型评估通常结合困惑度与下游任务性能(如问答准确率、文本分类精度等)进行综合评价。
1.1.3 基准测试与标准化评估
随着语言模型技术的快速发展,标准化的基准测试成为评估不同模型能力的必要工具。常用的基准测试包括:
Penn Treebank (PTB) 是语言模型研究中最经典的数据集之一,由华尔街日报语料库标注而成。PTB经过预处理后包含约100万个词,常用于报告标准困惑度分数。GPT-1论文报告的基础困惑度为约47,意味着模型平均在约47个候选词中进行选择。
WikiText-2 和 WikiText-103 是从Wikipedia提取的大规模语言建模数据集,包含更丰富的词汇和更长的上下文。WikiText-103的测试集包含约400万个词,对模型的长期依赖建模能力提出更高要求。
LAMBADA 数据集专门设计用于测试模型的文本捕获能力(textual entailment)和长期依赖理解。该数据集要求模型根据一段长文本(通常约4-5句话)的全部内容来预测最后一个词,这些最后一个词通常需要结合上下文才能推断。
LAMA(LAnguage Model Analysis)则通过完形填空格式测试语言模型中编码的事实知识,例如"Pascal was born in [MASK]"这类探测性查询,用于评估模型是否能够从预训练中获取结构化知识。
```mermaid timeline title 语言模型评估体系的演进
2001-2003 : PTB成为标准基准 N-gram模型基准确立 困惑度作为核心指标
2011-2016 : Billion Word Benchmark发布 WikiText数据集出现 神经语言模型超越N-gram
2018-2019 : LAMBADA测试长期依赖 LAMA探测事实知识 GLUE多任务基准建立
2020-2022 : SuperGLUE超越人类基线 BIG-Bench多领域挑战 MMLU知识广度测试
2023-2024 : MMLU-Pro高难度知识测试 ChatArena对话评估 能力导向评估框架兴起 ```
这些基准测试共同构成了语言模型评估的完整体系,从基础的困惑度度量到高级的任务性能评估,帮助研究者全面理解模型的能力边界与改进方向。
---
1.2 从N-gram到神经网络的建模范式转变
1.2.1 N-gram模型的基本原理与局限
N-gram模型是语言建模领域最经典的方法,其核心思想是利用有限历史窗口内的词序列统计来预测下一个词。一个N-gram模型假设第 $t$ 个词的概率仅依赖于其前 $N-1$ 个词:
$$P(w_t | w_1, ..., w_{t-1}) \approx P(w_t | w_{t-N+1}, ..., w_{t-1})$$
这种马尔可夫假设将联合概率的计算简化为一系列条件概率的查表操作。对于一个三元模型(trigram),条件概率通过最大似然估计计算:
$$P(w_t | w_{t-2}, w_{t-1}) = \frac{\text{count}(w_{t-2}, w_{t-1}, w_t)}{\text{count}(w_{t-2}, w_{t-1})}$$
N-gram模型的优势在于其简洁性和可解释性。训练过程仅需统计语料库中词序列的出现频率,无需复杂的优化算法;推理速度极快,通过哈希表查找即可完成概率计算。此外,N-gram模型对长文本的处理效率不受文本长度影响,因为其仅需维护固定大小的上下文窗口。
然而,N-gram模型的局限性同样显著。首先是数据稀疏性问题:随着N值增大,高阶N-gram的组合数量呈指数增长,而实际语料库中大多数词序列从未出现或仅出现极少量次数。以英语为例,常见词汇约5万个,trigram的可能组合数达到 $50000^3 = 1.25 \times 10^{17}$,而现有语料库根本无法覆盖如此庞大的组合空间。
其次是泛化能力不足:N-gram模型无法理解词的语义属性,只能机械地匹配训练数据中观察到的词序列。例如,模型可能对"狗在追猫"赋予高概率,但对"猫在追狗"赋予极低概率——尽管两者在语义上是等价的。这种缺陷源于N-gram模型缺乏对语言深层结构的理解。
为缓解数据稀疏性,研究者发展了多种平滑技术。拉普拉斯平滑(加一平滑)在所有计数上加一个常数;Kneser-Ney平滑通过调整计数分布来更好地处理未见N-gram;插值平滑结合不同阶数的N-gram模型。这些技术虽然改善了低频词的预测,但无法从根本上突破N-gram的表达能力上限。
1.2.2 神经语言模型的兴起与突破
2003年,Bengio等人发表了具有里程碑意义的论文"A Neural Probabilistic Language Model",首次将神经网络引入语言建模领域。这一工作的核心贡献是提出词向量(word embedding)的概念,将离散的词符号映射为连续的实值向量表示。
在Bengio的模型中,词首先通过一个共享的嵌入矩阵 $C$ 转换为 $d$ 维向量,然后这些词向量被拼接并送入一个带有一个隐藏层的前馈神经网络:
$$h = \tanh(H \cdot x + b_1)$$ $$y = \text{Softmax}(W \cdot h + b_2)$$
其中 $x = [C(w_{t-N+1}); ...; C(w_{t-1})]$ 是前 $N-1$ 个词的嵌入拼接,$H$ 和 $W$ 是网络权重。
这一定义的优势在于其泛化能力。通过词向量的连续表示,语义相近的词在向量空间中距离较近,因此模型能够对未见过的词序列进行泛化预测。例如,即使训练语料中从未出现"猫在追狗",只要模型学习到"狗"和"猫"的语义关系,就能合理地预测这类新组合的概率。
2010年前后,Mikolov等人提出了Word2Vec模型族,包括Skip-gram和CBOW两种训练框架,在大规模语料上学习高质量词向量。Word2Vec的核心创新在于通过简化的模型结构实现高效训练:Skip-gram通过中心词预测上下文词,CBOW则通过上下文词预测中心词。这种简化的代价函数使得可以在数十亿词级别的语料上进行训练,学习到极为丰富的语义表示。
```mermaid graph LR A[输入词序列] --> B[词嵌入层] B --> C[上下文表示] C --> D[Softmax输出]
E[词: 机器] --> F[向量: 300维] E --> G[词: 学习] G --> F
F --> H[语义相似词聚类] H --> I["狗 → 动物"] H --> J["北京 → 中国"]
style B fill:#e1f5fe style D fill:#fff3e0 ```
Word2Vec学到的词向量蕴含了令人惊讶的语义结构。向量运算能够捕捉语言中的类比关系:$\text{vector}("king") - \text{vector}("man") + \text{vector}("woman") \approx \text{vector}("queen")$。这种"语义算术"能力表明,词向量成功编码了词的语义属性和关系结构。
1.2.3 分布式假设与语义表示的数学基础
词向量之所以能够编码语义信息,根本上源于分布式假设(Distributional Hypothesis)的语言学基础。这一假设由Harris于1954年提出,其核心观点是:"一个词的意义由其所出现的上下文决定"(You shall know a word by the company it keeps)。
分布式假设的数学形式化可以通过共现矩阵来理解。设语料库词典大小为 $|V|$,上下文词数(上下文窗口大小)为 $c$,则共现矩阵 $M$ 是一个 $|V| \times |V|$ 的对称矩阵,其中 $M_{ij}$ 表示词 $i$ 和词 $j$ 在训练语料中共同出现的次数。基于共现矩阵,词 $i$ 的语义表示即为其在矩阵中的对应行向量。
然而,原始共现矩阵存在两个问题:高频词(如"的"、"了")的计数过大,造成维度灾难和信息冗余。为解决这些问题,研究者发展了TF-IDF加权、PMI(点互信息)等变换方法:
$$\text{PMI}(i, j) = \log_2 \frac{P(i, j)}{P(i) \cdot P(j)}$$
GloVe(Global Vectors for Word Representation)模型进一步将分布式假设与矩阵分解方法相结合。GloVe的损失函数定义为:
$$J = \sum_{i,j} f(X_{ij}) (w_i^T \tilde{w}_j + b_i + \tilde{b}_j - \log X_{ij})^2$$
其中 $X_{ij}$ 是共现矩阵元素,$f$ 是加权函数,$w_i$ 和 $\tilde{w}_j$ 是学习到的词向量。通过在大规模语料上进行全局共现统计与局部上下文的联合优化,GloVe向量在词语类比和相似度任务上取得了优异表现。
分布式假设的哲学意义在于,它提供了一种无需显式语法规则即可学习语义表示的方法。这种涌现式(emergent)学习范式与后来大语言模型的核心思想一脉相承:通过对大规模文本的统计学习,模型能够自动发现语言的内在结构,而非依赖人工编码的规则。
---
1.3 序列到序列学习与注意力机制的革命
1.3.1 Seq2Seq架构的诞生与演进
2014年,Sutskever等人提出了序列到序列(Sequence-to-Sequence, Seq2Seq)学习框架,这是现代大语言模型架构的重要里程碑。Seq2Seq模型由编码器(Encoder)和解码器(Decoder)两部分组成,分别基于循环神经网络(RNN)实现。
编码器将输入序列 $x_1, x_2, ..., x_n$ 逐步处理为一系列隐藏状态:
$$h_t = \text{RNN}(h_{t-1}, x_t)$$
最终得到上下文向量 $c = h_n$,它压缩了整个输入序列的信息。解码器则以 $c$ 为初始隐藏状态,自回归地生成输出序列:
$$p(y_t | y_1, ..., y_{t-1}, c) = \text{RNN}(y_{t-1}, s_{t-1}, c)$$
其中 $s_t$ 是解码器在时刻 $t$ 的隐藏状态。这种架构使得模型能够处理输入输出长度不同的任务,如机器翻译、文本摘要、问答系统等。
然而,基本Seq2Seq模型存在严重的信息瓶颈问题。编码器将整个输入序列压缩为单一向量 $c$,这一有限容量的向量必须承载输入序列的全部语义信息。当输入序列较长时,这种压缩不可避免地造成信息丢失,导致解码器难以准确恢复输入的细节。
早期研究者尝试通过引入注意力机制(Attention Mechanism)来解决这一问题。2015年,Bahdanau等人提出了一种软性注意力机制,允许解码器在生成每个输出词时,动态地"关注"输入序列的不同部分:
$$e_{ti} = v^T \tanh(W_h h_i + W_s s_{t-1})$$ $$\alpha_{ti} = \frac{\exp(e_{ti})}{\sum_{j=1}^{n} \exp(e_{tj})}$$ $$c_t = \sum_{i=1}^{n} \alpha_{ti} h_i$$
其中 $\alpha_{ti}$ 表示解码器在生成第 $t$ 个输出时对输入第 $i$ 个位置的关注权重。这种设计使模型能够显式建模输出与输入之间的对齐关系,极大提升了长序列处理能力。
1.3.2 LSTM与GRU:解决长距离依赖问题
在Seq2Seq架构中,标准的RNN存在梯度消失和梯度爆炸问题,限制了模型捕捉长距离依赖的能力。长短期记忆网络(Long Short-Term Memory, LSTM)和门控循环单元(Gated Recurrent Unit, GRU)通过引入门控机制,有效缓解了这一问题。
LSTM的核心是三个门控单元:遗忘门控制上一时刻记忆单元的信息保留程度,输入门控制新信息的写入程度,输出门控制记忆单元对当前输出的贡献:
$$f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)$$ $$i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)$$ $$o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)$$
记忆单元 $c_t$ 的更新:
$$c_t = f_t \odot c_{t-1} + i_t \odot