第1章 大语言模型发展脉络与核心技术总览 / Chapter 1: Development Context and Core Technology Overview of Large Language Models
语言模型(Language Model, LM)作为自然语言处理(Natural Language Processing, NLP)的核心基础组件,其核心目标是从大规模语料中学习自然语言的统计规律,对任意给定的上下文序列$x_{1:t}$建模下一个词$x_{t+1}$出现的条件概率$P(x_{t+1}|x_{1:t})$。从1980年代统计语言模型的萌芽,到2022年底大语言模型(Large Language Model, LLM)的爆发,NLP领域经历了近40年的技术演进,每一次核心突破都源于对前一阶段瓶颈的精准破解。本章将系统梳理这一演进路径,明确Transformer架构、预训练范式、对齐技术三大核心支柱的技术地位,同时介绍本书的整体结构与学习路径,为后续章节的深入学习奠定认知基础。
1.1 统计语言模型时代:概率驱动的局部序列建模
统计语言模型(Statistical Language Model, SLM)是语言模型技术的起点,其核心假设是马尔可夫假设(Markov Assumption):即当前词的出现概率仅依赖于前$n-1$个词,与更早的历史无关。基于该假设衍生的$n$-gram模型是这一时期的主流技术方案,其中$n$表示上下文窗口的大小,$n=1$时称为unigram(一元语法),$n=2$为bigram(二元语法),$n=3$为trigram(三元语法)。
1.1.1 核心原理与实现
$n$-gram模型通过统计语料中$n$元组的出现频率来估计条件概率,以bigram为例,其概率计算公式为: $$P(x_t|x_{1:t-1}) \approx P(x_t|x_{t-1}) = \frac{C(x_{t-1}, x_t)}{C(x_{t-1})}$$ 其中$C(\cdot)$表示对应词序列在语料中出现的次数。在实际应用中,通常会引入拉普拉斯平滑(Laplace Smoothing)解决零概率问题:即对未出现过的$n$元组计数加1,避免概率为0导致后续计算失效。
从实现角度看,$n$-gram模型的存储结构是一个哈希表,键为$n-1$个词组成的上下文,值为后续词的概率分布。以trigram为例,一个覆盖100万词汇、10亿条语料的trigram模型,存储空间通常需要10-20GB,在2010年之前属于中等规模的语言模型。
1.1.2 核心瓶颈与局限性
尽管$n$-gram模型在早期语音识别、机器翻译等任务中实现了落地,但其固有的局限性严重制约了性能天花板: 1. 数据稀疏与维度灾难:随着$n$的增大,$n$元组的数量呈指数级增长,即使使用百亿规模的语料,绝大多数$n$元组的出现次数也为0,拉普拉斯平滑只能缓解问题,无法从根本上解决数据稀疏。例如中文中“量子纠缠的工程化应用”这类专业表述,在通用语料中的出现次数极少,trigram无法学习到合理的概率分布。 2. 长距离依赖缺失:受马尔可夫假设限制,$n$-gram最多只能捕捉$n-1$个词范围内的局部依赖,完全无法建模长距离的语义关联。例如在句子“我去年在清华大学参观了校史馆,其中展出的1909年建校时的老校徽给我留下了深刻印象”中,“1909年”与“老校徽”的关联跨度超过20个词,$n$-gram完全无法捕捉。 3. 语义信息缺失:$n$-gram仅基于词的表层序列建模,无法理解词的语义相似性。例如“猫”和“狗”是语义相近的词,“猫”和“汽车”是语义无关的词,$n$-gram无法区分这两类关系,导致泛化性极差。
【📌 实践案例】早期中文分词歧义消除是$n$-gram的典型应用场景:对于句子“南京市长江大桥”,unigram模型会将“长江大桥”识别为一个词,导致分词结果为“南京市/长江大桥”;而bigram模型通过统计“南京”与“市”、“市长”与“江”等词对的概率,会将分词修正为“南京市/长江/大桥”,但面对“研究生命科学”这类歧义更复杂的句子时,$n$-gram依然无法给出准确结果。
1.2 神经语言模型时代:分布式表示与序列建模突破
2003年,Bengio等人在论文《A Neural Probabilistic Language Model》中首次提出神经语言模型(Neural Language Model, NLM),用神经网络代替$n$-gram的统计计数,通过分布式表示(Distributed Representation)学习词的向量 embedding,从根本上解决了数据稀疏问题,开启了语言模型的神经网络时代。
1.2.1 核心突破:分布式表示与循环神经网络
神经语言模型的核心创新是将one-hot编码的词映射为低维稠密向量,语义相近的词在向量空间中的距离更近。例如“猫”的向量为$[0.2, -0.5, 0.8, \dots]$,“狗”的向量为$[0.3, -0.4, 0.7, \dots]$,余弦相似度可达0.9以上,而“猫”与“汽车”的向量相似度仅为0.1左右。这种表示方式将词汇表的维度从百万级降到百级,大幅降低了模型参数量,同时赋予了模型语义泛化能力。
2014年,循环神经网络(Recurrent Neural Network, RNN)的改进版本LSTM(Long Short-Term Memory)和GRU(Gated Recurrent Unit)被广泛应用于语言建模,其门控机制解决了普通RNN的梯度消失问题,能够捕捉最长50-200词的上下文依赖。LSTM的核心更新公式如下: $$ \begin{aligned} 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) \\ \tilde{C}_t &= \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \\ C_t &= f_t * C_{t-1} + i_t * \tilde{C}_t \\ o_t &= \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \\ h_t &= o_t * \tanh(C_t) \end{aligned} $$ 其中$f_t、i_t、o_t$分别为遗忘门、输入门、输出门,$C_t$为细胞状态,$h_t$为隐藏状态,$\sigma$为sigmoid激活函数。门控机制让模型可以选择性地记忆或遗忘历史信息,大幅提升了长序列建模能力。
1.2.2 典型应用与核心瓶颈
神经语言模型在2010-2017年间成为NLP领域的主流技术,典型应用包括:
- 2010年,Google用LSTM替代$n$-gram模型做语音识别,词错误率(Word Error Rate, WER)从15%降到10%以下;
- 2014年,Seq2Seq(序列到序列)模型提出,基于Encoder-Decoder的RNN架构实现了端到端的机器翻译,2016年Google神经机器翻译(GNMT)系统上线,翻译BLEU值相比传统统计机器翻译提升了30%以上,达到38分。
但神经语言模型的瓶颈也逐渐显现: 1. 并行化能力差:RNN/LSTM的序列计算方式要求必须按词序依次处理,无法利用GPU的并行计算能力,训练速度极慢,处理千级长度的序列需要数小时; 2. 长距离依赖依然薄弱:即使LSTM的门控机制也只能捕捉200词以内的依赖,面对长文档、长对话场景时性能骤降; 3. 任务特定训练范式:所有模型都需要针对特定任务标注数据进行微调,数据利用率极低,无法复用通用语言知识。
【💡 代码示例】以下是一个基于PyTorch的简单神经语言模型实现,对比$n$-gram的统计方式,展示了分布式表示的核心逻辑: ```python import torch import torch.nn as nn
class SimpleNeuralLM(nn.Module): def __init__(self, vocab_size, embed_dim=128, hidden_dim=256): super().__init__()
词嵌入层:将one-hot的 vocab_size 维向量映射为 embed_dim 维稠密向量
self.embedding = nn.Embedding(vocab_size, embed_dim)
LSTM层:捕捉序列依赖
self.lstm = nn.LSTM(embed_dim, hidden_dim, batch_first=True)
输出层:预测下一个词的概率分布
self.fc = nn.Linear(hidden_dim, vocab_size)
def forward(self, x):
x shape: (batch_size, seq_len)
embed = self.embedding(x) # (batch_size, seq_len, embed_dim) out, _ = self.lstm(embed) # (batch_size, seq_len, hidden_dim) logits = self.fc(out) # (batch_size, seq_len, vocab_size) return logits ```
1.3 预训练语言模型时代:通用表示的范式革命
2017年,Google团队在论文《Attention is All You Need》中提出Transformer架构,彻底解决了神经语言模型的并行化和长距离依赖问题,为预训练语言模型(Pre-trained Language Model, PLM)的爆发奠定了架构基础。2018年,BERT和GPT1的相继发布,标志着“预训练+微调”范式的正式确立,NLP领域进入了通用语言表示时代。
1.3.1 Transformer架构的核心突破
Transformer的核心创新是自注意力机制(Self-Attention),其核心公式为缩放点积注意力(Scaled Dot-Product Attention): $$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$ 其中$Q、K、V$分别为查询(Query)、键(Key)、值(Value)矩阵,$d_k$为键向量的维度,除以$\sqrt{d_k}$是为了避免点积过大导致softmax梯度消失。自注意力机制允许序列中的每个词直接与其他所有词交互,无论距离多远,完全捕捉长距离依赖,同时支持完全并行计算,训练速度相比LSTM提升了10倍以上。
基于Transformer架构,2018年Google发布了BERT(Bidirectional Encoder Representations from Transformers),采用双向Transformer Encoder结构,预训练任务为掩码语言模型(Masked Language Model, MLM)和下一句预测(Next Sentence Prediction, NSP):MLM随机掩码输入文本中的15%的词,让模型预测被掩码的词,从而学习双向上下文表示;NSP让模型判断两个句子是否属于原文的连续片段,学习句子级别的语义关联。BERT在GLUE通用语言理解基准测试中拿到了80.5分,比之前的最好成绩高出7个百分点