自回归语言模型
自回归语言模型(Autoregressive Language Model)是当前主流大语言模型(GPT、Claude、LLaMA 等)的核心范式。理解自回归原理,是深入掌握 LLM 工作机制的第一步。
自回归的定义:Next-Token Prediction
自回归语言模型的训练目标极其简单:给定前面所有的 Token,预测下一个 Token。
形式化表达为:给定一个 Token 序列 $x_1, x_2, \ldots, x_T$,模型学习条件概率:
P(x_t | x_1, x_2, ..., x_{t-1})
整个序列的联合概率通过链式法则(Chain Rule)分解:
P(x_1, x_2, ..., x_T) = P(x_1) × P(x_2|x_1) × P(x_3|x_1,x_2) × ... × P(x_T|x_1,...,x_{T-1})
这种分解方式的核心优势在于:它将一个高维联合分布的建模问题,转化为一系列条件概率的建模问题,而每个条件概率都可以由神经网络直接参数化。
训练时,模型接收完整序列,在每个位置预测下一个 Token,并用交叉熵损失(Cross-Entropy Loss)衡量预测与真实 Token 之间的差距:
L = -Σ log P(x_t | x_1, ..., x_{t-1})
条件概率链式分解的直觉理解
链式分解不仅是数学技巧,更有直觉上的意义:
- 语言是时序依赖的——每个词的选择都受到前文语境的约束
- 模型通过学习海量文本,内化了语言的统计规律、语法结构、世界知识
- 在足够大的规模下,"预测下一个 Token"这一任务隐式要求模型理解语义、推理逻辑、掌握事实
与 BERT 的对比:CLM vs MLM
语言模型主要分为两类训练目标:
| 维度 | 因果语言模型(CLM) | 掩码语言模型(MLM) |
|---|---|---|
| 代表模型 | GPT 系列、LLaMA、Claude | BERT、RoBERTa、ALBERT |
| 训练目标 | 预测下一个 Token | 预测被遮盖的 Token |
| 注意力方向 | 单向(只看左侧上下文) | 双向(同时看左右上下文) |
| 适合任务 | 文本生成、对话、代码 | 文本分类、NER、语义匹配 |
| 推理方式 | 逐 Token 自回归生成 | 一次性编码,无法直接生成 |
BERT 的掩码语言模型(MLM)训练:随机遮盖 15% 的 Token,要求模型利用双向上下文还原被遮盖的词。这使 BERT 在理解任务上表现优秀,但无法直接用于生成——生成时无法并行预测所有位置,且无法利用双向信息。
GPT 类的因果语言模型(CLM)使用单向注意力(Causal Mask,下三角矩阵),每个位置只能"看到"自身及左侧的 Token,天然支持自回归生成。
Teacher Forcing 训练技巧
在训练阶段,如果让模型用自己的预测结果作为下一步的输入,早期训练中的错误会不断累积,导致训练极不稳定。Teacher Forcing 解决了这一问题:
- 做法:训练时始终将真实标签(Ground Truth Token)作为下一步输入,而非模型的预测结果
- 效果:消除错误传播,显著加速收敛,使训练更加稳定
- 代价:训练与推理时的输入分布存在差异(Exposure Bias)——训练时看真实 Token,推理时看自己生成的 Token
Scheduled Sampling 等方法尝试缓解 Exposure Bias,但在 LLM 规模下,Teacher Forcing 仍是主流选择。
推理时的自回归生成策略
推理阶段,模型需要逐步生成 Token 序列。有多种解码策略(Decoding Strategy)可供选择:
贪心搜索(Greedy Search)
每步选择概率最高的 Token:
x_t = argmax P(x | x_1, ..., x_{t-1})
- 优点:速度快,确定性输出
- 缺点:容易陷入局部最优,生成内容重复、缺乏多样性
Beam Search
维护 K 条候选序列(Beam Width=K),每步扩展并保留总概率最高的 K 条:
- 优点:比贪心搜索找到更高概率的序列
- 缺点:仍然倾向于生成通用、保守的文本;K 越大计算开销越大
- 适用:机器翻译等需要确定性高质量输出的场景
随机采样(Sampling)
按概率分布随机采样 Token,引入随机性:
x_t ~ P(x | x_1, ..., x_{t-1})
温度(Temperature)调节
Temperature 参数 $\tau$ 控制概率分布的"尖锐程度",通过在 Softmax 前对 Logits 缩放实现:
P(x_i) = exp(z_i / τ) / Σ exp(z_j / τ)
- $\tau < 1$(如 0.3):分布更尖锐,高概率 Token 被放大,输出更确定、更保守
- $\tau = 1$:原始分布
- $\tau > 1$(如 1.5):分布更平滑,增加随机性,输出更有创意但可能更不连贯
Top-k 采样
每步只从概率最高的 K 个 Token 中采样,截断长尾分布:
- 固定候选集大小为 K,防止低概率 Token 被选中
- 问题:K 固定无法适应不同步骤分布形状的变化(有时高概率 Token 很集中,有时很分散)
Top-p(Nucleus)采样
选取累积概率恰好超过阈值 p 的最小 Token 集合,再从中采样:
- 当分布集中时,候选集小;当分布平坦时,候选集大
- 自适应地控制候选范围,通常比 Top-k 生成更自然
- 典型取值:p = 0.9 或 0.95
实际应用中的参数组合
生产环境通常组合使用多个参数:
Temperature=0.7, Top-p=0.9, Top-k=50
创意写作场景可适当提高 Temperature,代码生成等精确任务则使用较低 Temperature(甚至贪心解码)。