人人都会AI编程

4.1 因果语言建模(CLM):自回归生成的核心训练目标

更新时间:2026-07-09

在 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 在数据效率和任务适配上的根本差异。