在 1.1 节中,我们把大语言模型的技术本质归结为一个“条件概率生成器”;在 3.7 节中,我们又看到 GPT 路线的 Decoder-only 架构已成为当前主流大模型的统一选型。那么,这类模型在预训练阶段究竟被训练来做什么?答案就是因果语言建模(Causal Language Modeling, CLM),也被称为自回归语言建模。
CLM 不是众多训练任务中的一种“可选项”,而是 Decoder-only 大模型能力的“第一性原理”。理解它的数学机制、工程实现与能力边界,是你后续理解交叉熵损失(4.3 节)、上下文学习(6.1 节)乃至思维链(6.2 节)的底层基础。
一、核心思想:让模型学会“接龙”
CLM 的训练目标极其朴素:给定一个文本序列中前面的所有 Token,预测下一个 Token 是什么。
用一句话概括,就是逼着模型在海量文本中学会“文字接龙”。它不需要人工标注的答案,只需要原始文本本身。一篇维基百科文章、一段 GitHub 代码、一本电子书,都可以直接作为训练样本。
从概率角度,CLM 把一段文本的联合概率分解为条件概率的连乘:
$$P(x_1, x_2, \dots, x_T) = \prod_{t=1}^{T} P(x_t \mid x_1, x_2, \dots, x_{t-1})$$
其中:
- $x_t$ 是序列中的第 $t$ 个 Token;
- $x_{<t}$ 表示 $t$ 之前的所有 Token;
- 模型要学的就是每一个 $P(x_t \mid x_{<t})$ 的分布。
在每次前向传播时,模型会并行地计算所有位置 $t$ 的预测概率,但对于位置 $t$,它只能使用 $x_1$ 到 $x_{t-1}$ 的信息,而不能“偷看” $x_t$ 本身或更后面的 Token。这就是“因果”二字的含义。
二、因果掩码:工程上如何实现“不能偷看”
你可能会问:Transformer 的 Self-Attention 不是能看全局吗?怎么保证模型在预测第 $t$ 个词时看不到后面的词?
答案是因果掩码(Causal Mask / Attention Mask)。
在标准 Decoder-only 的 Transformer 中,注意力层的计算会乘以一个下三角掩码矩阵:
- 该矩阵的上三角(包括对角线以上的部分)被设为负无穷(或一个极大的负数);
- 经过 Softmax 后,这些位置的概率被压到 0。
这样,当模型位于序列第 $t$ 个位置时,注意力权重只能分配给位置 $1$ 到 $t-1$,后面的 Token 被完全屏蔽。这种掩码机制配合 3.5 节提到的位置编码,确保了模型既享有 Transformer 的并行训练效率,又严格遵守了自回归的因果约束。
三、训练时的样本构造:输入与标签如何配对
在工程实现中,CLM 的训练样本构造非常高效,无需繁琐的样本对标注。以一句话为例:
输入文本:
人工智能改变生活
经过 Tokenizer 切分后假设为:[人工, 智能, 改变, 生活]。
在一个批次(Batch)中,模型接收到的输入张量通常就是这段 Token 序列本身。而标签(Label)则是将输入序列整体左移一位:
| 输入 (Input) | 模型需预测的目标 (Label) |
|-------------|------------------------|
| [BOS], 人工, 智能, 改变 | 人工, 智能, 改变, 生活 |
在每个位置 $t$,模型基于 $x_{<t}$ 输出对词表(Vocabulary)的概率分布,然后与真实的 $x_t$ 计算误差。由于因果掩码的存在,模型预测“改变”时,只能看到 [BOS], 人工, 智能,而不能看到“改变”本身。
关键工程细节:
- teaching forcing:训练时输入是完整的前文,而不是像推理时那样把模型自己刚生成的 Token 再喂回去。这保证了训练过程的稳定性和并行性。
- Padding 与 Loss Masking:实际批次中句子长度不一,需要补零(Padding)。计算损失时,这些 Padding 位置的预测必须被屏蔽,只保留真实文本 Token 上的损失进行反向传播。
- 权重共享(Weight Tying):Embedding 层与输出层的投影矩阵常常共享权重,这既能减少参数量,又能提升训练稳定性,是 CLM 训练中的常见技巧。
四、为什么是 CLM,而不是 MLM?
既然 BERT 使用的掩码语言建模(Masked Language Modeling, MLM)在理解类任务上表现那么好,为什么今天的大模型主流都转向了 CLM?
这是架构选型与目标函数相互锁定的结果,核心原因有三点:
1. 生成任务的天然一致性
MLM 是“完形填空”,训练时让模型根据双向上下文猜被盖住的词;而 CLM 是“续写”。大模型最终要面向用户生成连贯的回复、代码、文章,CLM 的训练目标与推理时的行为完全一致,不存在“训练-推理分布偏移”。
2. 概率建模的完整性
CLM 通过链式法则建模了完整序列的联合概率,这让它天生适合作为通用生成器。而 MLM 只能建模条件独立的局部概率,难以直接用于生成开放式长文本。
3. 涌现能力的土壤
GPT-3、Llama、Qwen 等模型的实践经验表明,当规模足够大时,CLM 训练出的 Decoder-only 模型会自发涌现出上下文学习(In-Context Learning)和链式推理(Chain-of-Thought)能力。虽然学界对“涌现”的机理仍有争论,但工业界的共识是:CLM + Decoder-only + 足够大的规模,是目前解锁这些高阶能力最可靠的配方。
当然,这并不意味着 MLM 被淘汰。它仍在 Encoder 模型(如 Embedding 模型、向量检索模型)中扮演重要角色,详见 4.2 节。
五、CLM 到底在学什么?
表面上看,CLM 只让模型学“下一个词是什么”。但海量参数在万亿级 Token 上重复这一任务时,模型实际上在隐式地学习多层能力:
- 语法与句法:主谓宾结构、时态一致性、代码缩进规则;
- 世界知识:巴黎是法国的首都、Python 的
list.append()方法怎么用; - 逻辑与推理模式:数学证明的常见套路、法律条文的引用结构;
- 长程依赖:长篇小说中人物关系的保持、代码中跨函数变量的追踪。
这些能力并非被显式编码,而是作为概率关联被压缩进了 Transformer 的权重中。这也解释了为什么 1.1 节说 LLM 是“知识权重化存储”——CLM 就是完成这一压缩过程的“炼金术”。
六、CLM 的能力边界与代价
理解 CLM 的局限性,与理解它的优势同等重要:
1. 单向信息的天然瓶颈
由于严格的因果约束,模型在预测当前 Token 时无法“利用”后文信息。虽然人类读文章时会前后扫视,但 CLM 训练出的模型在编码阶段只能从左向右累积信息。这导致某些需要全局双向理解的任务(如精确的指代消解、复杂的语义匹配)并非其强项——尽管可以通过 prompt 工程和对齐阶段的部分缓解。
2. 误差累积(Exposure Bias)
训练时模型看到的是真实数据分布(Ground Truth),而推理时它看到的是自己生成的 Token。一旦早期生成了一个不太合理的词,后续所有预测都会基于这个错误前提继续“接龙”,导致偏差逐级放大。这是长文本生成中后半段质量下降的技术根源之一。
3. 对长程数值推理的脆弱性
CLM 逐 Token 预测的方式对符号化、精确化的长程计算并不友好(例如多位数乘法、复杂符号积分)。因为这类任务要求严格的规则执行,而非统计上的“最可能接龙”。这也是为什么 6.2 节所讲的 CoT(思维链)和 6.3 节的工具调用如此重要——它们本质上是在用文本推理补偿 CLM 在精确计算上的短板。
七、小结
因果语言建模(CLM)是 Decoder-only 大模型的预训练基石。它用链式法则将文本联合概率拆解为逐 Token 的条件概率,借助因果掩码在并行训练中维持自回归约束,让模型通过下一个词预测这一单一任务,将语法、知识和推理模式压缩进海量参数。
关键 takeaway:
- CLM = Next Token Prediction,是 GPT 路线大模型一切能力的起点;
- 因果掩码是工程实现的核心,确保训练与推理的因果一致性;
- CLM 与 Decoder-only 架构高度绑定,是生成式 AI 爆发的直接技术动因;
- 它的局限(单向性、误差累积、数值推理弱)决定了后续需要 CoT、RAG、工具调用等增强手段。
在 4.2 节中,我们将把目光转向另一种训练目标——掩码语言建模(MLM),看看它如何在 Encoder 和 Encoder-Decoder 架构中继续发挥作用,以及它与 CLM 在数据效率和任务适配上的根本差异。