Skip to content

语言建模:下一词预测范式

本页速览 语言建模是全部大语言模型的地基:把"预测下一个词"当作代理任务,估计文本序列的概率分布。本文讲清从 N-gram 到神经语言模型再到预训练范式的继承链、条件概率分解、困惑度与交叉熵,以及"为什么预测下个词能学到知识"。

语言建模:下一词预测范式

语言建模(language modeling)的目标是学会对一段文本分配概率:给定前文,估计下一个词(或 token)出现的概率分布。 它是统计 NLP 时代就存在的经典任务,也是 2020 年代大语言模型(LLM)唯一的核心训练目标——"预测下一个词"这一看似简单的代理任务,在数据与规模的加持下,成了知识、推理与涌现能力的来源。理解语言建模,就等于拿到了理解全部 LLM 现象的钥匙。

一句话定位:大语言模型 = 把"下一个词预测"做得极其成功的概率模型。完整的背景与能力盘点点见什么是大语言模型

一、形式化:语言模型在算一个什么概率

语言模型估计词序列 $$w_1, w_2, \dots, w_n$$ 的联合概率 $$P(w_1, w_2, \dots, w_n)$$。直接估计联合分布在高维空间里不可行,于是用**链式法则(条件概率分解)**把它拆成一组条件概率的乘积:

text
P(w1, w2, ..., wn) = P(w1) · P(w2|w1) · P(w3|w1,w2) · ... · P(wn|w1,...,w(n-1))

                    = ∏_{t=1}^{n} P(wt | w1, w2, ..., w(t-1))

也就是说:"给一段文本打分"等价于"逐词预测下一个词,再把每个预测概率乘起来"。 反过来,从条件概率 $$P(w_t \mid w_{<t})$$ 出发逐步采样,就得到生成——这就是为什么"语言模型天生会写文章":写作文本质是反复做一次次的下一词预测,并把预测结果接回输入。这也是推理基础:自回归与采样里所有解码策略的前提。

这套分解有三个直接推论:评分与生成是同一件事(打分就是逐词累乘概率,生成就是逐词采样);训练数据不需要额外标注(任何文本天然自带"前文→下一词"的监督对);序列越长联合概率越小(乘积项越多,概率指数级下降),所以长文本的联合概率必然极小——实践中通常比较平均损失(NLL)而非联合概率本身。

为什么是"下一词"而不是"下一句"?

一步预测的粒度越小、信号越密集,训练效率越高。词/子词粒度下,每个训练文本都能贡献成百上千个独立的监督信号,模型被迫在每个位置上"押注"整个词汇表——这种密集监督正是大规模训练能跑起来的关键。(也有研究者探索"预测下一句""对比学习"等替代目标,但至今没有任何目标能在通用能力上真正替代下一词预测——它几乎免费地提供密集信号、天然可并行、且与生成任务严丝合缝。)

1. N-gram 语言模型与马尔可夫假设

统计时代最经典的做法是 N-gram 模型:它引入马尔可夫假设——下一个词只依赖最近 $$n-1$$ 个词,与更早的历史无关:

text
P(wt | w1, ..., w(t-1)) ≈ P(wt | w(t-n+1), ..., w(t-1))

参数直接用语料中的频次统计估计(最大似然):$$P(w_t \mid w_{t-n+1:t-1}) = \text{count}(w_{t-n+1:t}) / \text{count}(w_{t-n+1:t-1})$$。n 越大、上下文越准确,但频次估计越稀疏,于是有平滑(smoothing)、回退(backoff)等一整套补救技术。平滑的本质是"给没见过的 n 元组分配一个不为零的概率",主流思路两条:回退(退到更短的 n-gram 借用频次)与插值(把不同阶的估计加权平均)。但无论哪种都只能缓解、不能消除稀疏——n 元组的数量随 n 指数膨胀,而语料规模有限,这是"用计数估计分布"这条路线的天花板。

N-gram 的教训深刻影响了后来的一切:"上下文越长、样本越稀疏"的根本矛盾,只能靠"用更少参数刻画更大的历史"来缓解——神经网络正是这样做的。

2. Bengio 2003:神经概率语言模型

Bengio 等人 2003 年发表 A Neural Probabilistic Language Model(JMLR),是神经语言模型的起点。它把词映射到低维稠密向量(embedding),再喂给一个带隐藏层的前馈网络,输出下一个词的概率分布:

text
输入:前 n-1 个词的 one-hot
  → 查词嵌入表 C(维度 d,远小于词表 V)
  → 拼接/求和得到上下文表示
  → 一层 tanh 隐藏层
  → softmax 输出 P(wt | 前文)(词表 V 上的分布)
训练目标:最大化训练语料的 log 似然(等价于最小化交叉熵)

两个关键贡献:一是用分布式表示对抗维度灾难,词义由低维向量承载而非独立索引;二是副产品——学到的词向量成了 Word2Vec 等表示学习路线的先声。它也有几个当时不起眼、后来影响深远的细节:softmax 输出层的代价是 O(V)(V 是词表规模,可达数万),直接催生了分层 softmax、负采样、采样 softmax 等加速技巧;固定窗口 n 把可利用的上下文锁死在架构里;"词表示 + 组合规则"在同一目标下联合学习——这个"端到端"思想正是后来深度学习范式的雏形。它的局限(固定窗口、单层非线性)很快被循环神经网络超越。

3. 从 RNN/LSTM 到 Transformer

RNN 语言模型用循环隐藏状态 $$h_t = f(h_{t-1}, x_t)$$ 把任意长的前缀压缩成一个向量,理论上摆脱了固定窗口;LSTM 用门控机制缓解梯度消失,一度是语言模型的事实标准。但 RNN 有两个硬伤:序列化的逐时间步计算无法并行,以及长程依赖仍会被"压缩损失"稀释——无论 LSTM 的门控多精巧,把整段历史塞进一个固定维度的向量本身就是有损压缩,距离越远的信息衰减越严重。这也是"压缩到固定长度"思路与"逐位置直接互连"思路的分水岭。

2017 年 Attention Is All You NeedTransformer 架构详解用"让任意两个位置直接互相看得见"的自注意力取代了循环,一举同时解决并行与长程两个问题,也顺带改变了语言建模的形态。三种范式对比如下:

范式上下文建模并行性长程能力训练数据量级代表
N-gram固定 n 元窗口天然并行差(n 限制)10⁶~10⁸ 词KenLM 等
RNN/LSTM循环压缩进隐藏态无(逐时间步)中(受梯度/压缩限制)10⁸~10⁹ 词GPT-2 之前的最优
Transformer自注意力全连接完全并行强(O(n²) 代价)10¹²~10¹³ tokenGPT、Llama、Qwen

二、两种预训练目标:自回归 vs 掩码

"预测下一个词"严格说是自回归(autoregressive, AR)目标:从左到右预测,只能看左侧上文。它天然适配生成。另一个经典目标是 BERT 式掩码语言建模(masked language modeling, MLM):随机掩盖约 15% 的位置,模型利用左右两侧上下文预测被掩盖的 token,属于"填空"而非"续写"。二者对比:

维度自回归(GPT 系)掩码(BERT 系)
预测方向单向(只看左侧)双向(左右都看)
目标形式$$P(w_t \mid w_{<t})$$$$P(w_{\text{mask}} \mid w_{\backslash \text{mask}})$$
损失每个位置都算一次只算被掩盖位置
擅长生成、续写、少样本推理理解、表征、检索/分类
代表模型GPT-1/2/3、Llama、QwenBERT、RoBERTa

现代大语言模型几乎清一色走自回归路线。原因有三:一是生成是更难的目标——会生成自然也会(通过自回归打分)判断,而"填空"目标无法直接用于写长文本;二是自回归目标让每个 token 都参与训练,样本效率高;三是少样本/上下文学习(in-context learning)在自回归目标下被"预训练即学会",GPT-3 的 few-shot 现象是这一路线的决定性证据。

需要澄清的是,这并非否定双向编码的价值——BERT 路线在表征质量与检索/分类上仍占优,T5 等编码器-解码器模型在翻译、摘要等"输入理解 + 输出生成"的任务上也长期领先。只是当目标是"通用的开放域助手"时,decoder-only 的自回归形态把"建模、生成、少样本学习"统一进一个目标,工程与理论都更简洁。两条路线的详细故事见 GPT 系列BERT 与编码器家族

为什么"预训练"是范式跃迁

早期神经语言模型是"在任务语料上从头训";2018 年 GPT/BERT 确立了先在通用海量语料上做语言建模预训练、再(可选)微调的两阶段范式。语言建模从"一种任务"升级为"获取通用能力的手段"。详见预训练:数据与目标演进简史

3. 语言建模作为"统一接口"

另一个值得记住的视角:无论 GPT 的自回归、BERT 的掩码,还是 T5 的 text-to-text,最终都可以看作"给模型一段文本输入,让它预测一段文本输出"。把翻译、问答、摘要、分类全部编码为文本到文本,是 LLM 能够"一个模型处理所有任务"的根本原因——这也是"预测下一个词"范式最深刻的遗产:语言本身成了任务之间唯一的接口

三、训练目标:交叉熵与困惑度

1. 交叉熵损失

训练就是最大化训练文本的似然,等价于最小化交叉熵(cross-entropy)。对每个位置,模型输出词表上的概率分布 $$q_t$$,真实词对应 one-hot 分布 $$p_t$$:

text
单个位置损失:L_t = -Σ_w p_t(w) · log q_t(w) = -log q_t(w_t)
整段文本损失(平均负对数似然,NLL):
L = -(1/n) Σ_t log q_t(w_t)

直观理解:模型对真实词给的概率越接近 1,损失越小;给错词以高概率,损失就被狠狠惩罚。 交叉熵的梯度正比于"预测概率 − 真实分布",误差越大推得越狠,收敛稳定,因此它是所有语言模型的默认损失。

2. 困惑度(perplexity):语言模型最重要的内建指标

困惑度(perplexity, PPL)= 平均负对数似然的指数

text
PPL = exp(L) = exp( -(1/n) Σ_t log q_t(w_t) )

直觉解读:困惑度 ≈ 模型每一步平均要"猜"多少个候选。均匀六面骰子的困惑度是 6;二值公平硬币是 2。PPL 越低,模型对文本的预测越确定、越"懂"这段文本。它有几个特性值得注意:

亲手算一次

假设词表只有 A、B 两个词,测试句是 "A A B A",模型给出的预测概率分别为 0.8、0.9、0.7、0.6。平均负对数似然 = -(ln0.8 + ln0.9 + ln0.7 + ln0.6)/4 ≈ 0.34,困惑度 = e^0.34 ≈ 1.40——模型平均只需在不到 1.5 个候选中"犹豫",相当确定。若某处概率只有 0.2,PPL 会立刻显著抬升:低概率位置对困惑度的贡献是非线性的,这正是"总体流畅、偶发严重失误"会被 PPL 明显暴露的原因。

特性说明
无量纲、可比较同一分词方案下可直接横向对比模型
与分词强相关词表越大、切分越碎,PPL 数字往往越小(见分词与词表),跨分词方案不可直接比
训练损失即验证 PPL预训练"看损失曲线"就是看验证 PPL
与人类质量不完全一致PPL 下降 0.1 可能对应明显变好的生成质量,也可能只是更"保守"

3. 困惑度怎么用:工程视角

PPL 是预训练阶段最常用的"体温计",但使用时有几个纪律:

  • 只在同一分词方案下比较:跨模型比 PPL 前,先确认 tokenizer 一致(见分词与词表),否则数字差异主要来自切分方式而非模型能力;
  • 用同分布评估集:训练分布与目标分布的差异会直接体现在 PPL 上,评估集应与部署场景同分布;
  • 关注相对变化而非绝对值:同一模型训练过程中 PPL 下降的斜率、不同数据配比下 PPL 的差值,比单个数字更有信息量;
  • PPL 与生成质量的非线性:PPL 下降 0.1 可能对应明显质量提升,也可能只是更保守——配一份小规模人工评估样本做校准,是最经济的方法。

低困惑度 ≠ 不幻觉

PPL 衡量"模型对训练分布拟合得好不好",不衡量"说得对不对"。模型可以对一段流畅的虚构内容给出极低的 PPL——幻觉恰恰常发生在"高置信地编造"上。PPL 是评测与基准的起点,绝不是终点,幻觉:成因与缓解会展开讲。

四、为什么"预测下一个词"能学到知识

一个自然的疑问是:光学会"猜词"怎么能学会知识、推理甚至写代码? 三个视角可以帮助理解:

  1. 压缩即理解。预测下一个词本质是"对文本做无损压缩"。要预测得好,模型必须学到文本的生成机制——语法、常识、事实关联、因果结构。一个能把百科压到很小尺寸的模型,必然内化了百科里的知识。这与"理解 = 有效压缩"的信息论视角一脉相承。
  2. 共同出现统计承载知识。事实性知识大多表现为可预测的共现关系:"巴黎是 ___ 的首都"这个填空,需要在大量语料中把"巴黎→法国"的联系编码进参数。模型不是检索到一条知识,而是把亿万条共现统计"揉"成了参数。
  3. 规模把"模式记忆"变成"通用能力"。小模型只能学到表层搭配;当参数和语料跨越某个规模,模型开始把分散的模式泛化为可组合的规则(语法生成、多步推理、指令跟随)。这一从量变到质变的机制就是规模法则与"涌现能力"讨论的主题。

实证证据也在逐年累积:GPT-3 证明少样本提示这类从未显式训练的技能,会在规模跨越某个量级后自动出现;InstructGPT/ChatGPT 证明"读懂指令"可以通过后训练补上,而底层的语言与知识底座仍然来自预训练的下一个词预测;更有力的证据是知识定位——研究者通过探测(probing)可以在注意力头与 FFN 中定位到具体事实(如"埃菲尔铁塔在巴黎"),说明知识确实以参数的形式沉淀在这一目标里。一句话:下一词预测不是"死记硬背"的借口,而是压缩世界模型的机制;能否真正"理解",取决于规模是否足够大、数据是否足够多样。

一个常被用来类比的证据是语言习得:儿童在大量接触语言后,从"模仿大人说话"发展出"自己造句"的能力——他们学到的不是一个个句子,而是背后的生成规则。语言模型用"预测下一个词"把同一件事数据化:规则(参数)从亿万次"预测练习"中涌现。当然类比有边界:模型没有身体、没有意图,它学到的"规则"是世界在文本中的投影,而非亲身经验——这正是幻觉与安全问题的深层根源之一。

一句话记住本页

语言建模 = 对文本序列做条件概率分解 + 逐位置交叉熵训练;PPL 是其自带的度量;"预测下一个词"是全部 LLM 能力的起点——生成、知识、上下文学习,都从这一个目标里长出来。

五、权衡与边界

  • 概率模型的天花板:语言建模学的是"文本像什么",不是"世界是什么"。它擅长分布内的流畅与合理,不保证事实与逻辑正确。
  • 目标与任务错位:预训练目标(通才)与应用目标(QA、翻译、Agent)并不一致,需要微调对齐来拉近。
  • 评估困境:PPL 可自动计算但语义意义有限;下游能力评估靠基准,但基准本身也有饱和与污染问题(评测的完整框架见评测与基准)。
  • 生成代价:自回归每生成一个 token 都要重做一次前向,理解它的成本结构是推理基础的核心内容。

语言模型与人类语言能力的对照

把"预测下一个词"与人类能力并置,能更清醒地看待这条路线的边界:

能力语言模型(下一词预测范式)人类
词汇与句法分布内极强,能流利生成学习成本高,但可举一反三
世界知识依赖语料覆盖与共现统计通过体验与推理获得
长程规划弱:逐词贪心,缺乏全局目标强:有目标与计划
事实核验不主动核验,倾向"流利优先"会质疑与查证
知识更新需重训或外挂检索(见 RAG持续学习

六、从语言建模到产品:能力是怎么长出来的

把本页的知识串成一条产品链:

text
下一词预测(本页)
  → 少样本/上下文学习(GPT-3:给几个例子就会做任务)
  → 指令遵循(SFT/对齐:把"会预测"变成"会听话",见微调与对齐)
  → 推理增强(CoT、思维链,见提示工程)
  → 工具与记忆(RAG、Agent:给模型外挂检索与执行)
  → 多模态(文本之外接图像/语音)

每一环都没有替换语言建模,而是在语言建模的底座上加一层能力。理解这个层级,就能明白为什么"基础模型的每一次突破,几乎都从更好的语言建模开始"。

语言建模的开放问题

即便"下一词预测"如此成功,它仍有三个公认的短板,也是当前研究的重点:长程连贯与规划(逐词预测天然缺少"先想好整篇再写"的全局目标)、事实性与一致性(分布内流畅不等于事实正确,见幻觉:成因与缓解)、目标与对齐的错位(语言建模学"像什么",产品要"该做什么",中间的桥靠对齐搭)。值得注意的趋势是:让"下一词预测"与其他目标(推理时规划、检索、多模态对齐)联合,正在成为新一代模型的共同方向。

延伸阅读

参考资料