大模型预训练的目标是什么?为什么是「预测下一个 token」?
简化版
主流大模型(GPT/Llama 系)的预训练目标是自回归语言建模——给定前面的所有 token,预测下一个 token,损失是这个预测的交叉熵。之所以选它:一是监督信号极密集(简要说里每个 token 都是一次预测目标,无需人工标注);二是任务通用(学会”续写”就隐含学会了语法、事实、推理,一个目标通吃所有能力);三是天然契合生成(训练方式和推理时逐 token 生成完全一致)。它和 BERT 的掩码语言建模(MLM)、T5 的去噪是不同的预训练目标。
详细版
自回归语言建模的数学形式
把一段文本 x = (x₁, x₂, …, x_n) 的联合概率按链式法则分解:
P(x) = ∏_{i=1}^{n} P(x_i | x₁, x₂, …, x_{i-1})
模型学的就是每个条件概率 P(x_i | 前文)。训练损失是下一个 token 的交叉熵(等价于负对数似然):
L = − Σ_i log P(x_i | x_{<i})
配合因果掩码,一次前向就能并行算出所有位置的预测和损失。
三大类预训练目标对比
| 目标 | 机制 | 代表 | 擅长 |
|---|---|---|---|
| 自回归(下一个 token) | 预测下一个词,单向 | GPT、Llama | 生成、通用 |
| 掩码语言建模 MLM | 遮住部分词双向还原 | BERT | 理解、判别 |
| 去噪 / Span 填空 | 遮连续片段再还原 | T5、BART | 序列转换 |
为什么下一个 token 预测胜出
- 信号密集:序列里每个 token 都是监督目标,n 个词提供近 n 个训练信号;MLM 只对被遮的 ~15% 计算损失,数据利用率更低。
- 无需标注:直接拿海量原始文本自监督,天然可规模化。
- 能力涌现:为了把下一个词预测准,模型被迫学会语法、世界知识、逻辑推理——「压缩即智能」。
- 训练推理一致:训练就是预测下一个词,推理就是逐词生成,行为对齐,无鸿沟。
完整版教学
一、预训练到底在学什么
预训练是大模型的「打地基」阶段:在海量无标注文本上做自监督学习,让模型从零学会语言的统计规律、世界知识和一定的推理能力。它不针对任何具体任务,产出的是一个「什么都懂一点」的基座模型(base model),之后再通过微调、对齐适配到具体用途。
关键词是自监督——不需要人工标注,标签直接来自数据本身(下一个词就是天然的标签)。这让训练数据可以轻松扩展到万亿 token 级别,而这正是大模型能力的来源。
二、“预测下一个词”为何能逼出智能
初看「预测下一个词」平平无奇,但把它推到极致会发生质变。要在海量文本上把下一个词预测得足够准,模型不得不学会:
- 语法结构:主谓宾搭配、时态一致,否则预测不准。
- 世界知识:「法国的首都是___」要填对,必须记住事实。
- 逻辑与推理:「3 个苹果加 5 个苹果是___」要答对,得会算术。
- 上下文追踪:代词指代谁、前文定义的变量,都要跟踪。
换个视角:准确预测下一个词,等价于对文本做极致压缩(信息论上,好的预测器就是好的压缩器)。而要压缩人类产出的全部文本,就得理解文本背后的规律和知识。这就是「压缩即智能」的直觉——一个看似简单的目标,逼着模型学会了一切。
记住这条洞察:下一个 token 预测不是”学说话”,而是”逼着模型理解世界以便预测”。 目标简单,但内容无限丰富。
三、和 MLM、去噪目标的本质区别
MLM(BERT):随机遮住约 15% 的词,用双向上下文还原。好处是理解充分(能看两边),但有两个短板:一是只对被遮的少数词算损失,信号稀疏;二是双向 + 还原的方式与「自回归生成」不匹配,天生不擅长生成。
去噪 / Span 填空(T5):遮住连续片段,让模型还原被遮的 span,统一成 text-to-text。适合序列转换任务,但同样在通用生成和 few-shot 上不如自回归。
自回归(GPT):每个位置都预测下一个词,信号最密集、与生成完全一致、任务最统一。当规模上去后,它涌现出的上下文学习和通用能力让它成为大模型的默认选择。三者不是谁绝对更好,而是自回归最契合”用海量数据训一个通用生成器”这条路线。
四、训练流程:一次前向算出全部损失
自回归训练非常高效,得益于因果掩码带来的并行:
- 取一段文本,tokenize 成
(x₁…x_n); - 输入模型,配合因果掩码(每个位置只能看左侧),一次前向并行算出所有位置对「下一个词」的预测分布;
- 每个位置 i 的预测和真实的
x_{i+1}算交叉熵,全序列求和/平均得到 loss; - 反向传播更新参数。
关键点:「预测下一个词」在训练时是并行的(不是真的一个个生成),因果掩码保证位置 i 看不到答案 x_{i+1} 及以后,避免信息泄漏。这让它既有密集监督,又能高效并行——鱼与熊掌兼得。
五、评估预训练好坏:困惑度
预训练模型常用困惑度(Perplexity, PPL) 衡量:
PPL = exp(平均交叉熵损失)
直觉是「模型对下一个词平均有多少种等概率的候选在犹豫」——PPL 越低,预测越确定、语言建模越好。它不需要标注,直接反映预训练目标的完成度。但要注意:PPL 低不代表下游任务一定强,最终还要看实际任务表现,PPL 只是预训练阶段的过程指标。
六、面试拆解算例
预训练题最好落到预算账和稳定性账。假设训练一个 7B 模型,目标 token 数是 1T,按常见粗估 6 × 参数量 × token 数,训练计算量约为 6 × 7e9 × 1e12 = 4.2e22 FLOPs。如果有效集群算力是 1e18 FLOPs/s,理想情况下也要约 42,000 秒;现实还要扣通信、数据加载、checkpoint 和故障恢复的损耗。
training_flops ≈ 6 * N * D
N = 7e9 parameters
D = 1e12 tokens
training_flops ≈ 4.2e22
| 账本 | 关键变量 | 常见瓶颈 | 排查信号 |
|---|---|---|---|
| 数据账 | token 数、重复率、质量分 | 脏数据和污染 | eval 异常偏高 |
| 算力账 | GPU 数、利用率、通信 | MFU 低 | step time 抖动 |
| 显存账 | batch、序列长、优化器状态 | OOM | 激活占用过高 |
| 稳定性账 | 学习率、精度、梯度 | loss spike | overflow/NaN |
语料 -> 清洗去重 -> tokenization -> 分布式训练 -> checkpoint -> 评测
| | | | |
质量 覆盖率 吞吐 可恢复 能力验证
所以回答「大模型预训练的目标是什么?为什么是「预测下一个 token」?」时,不能只说某个技巧“省显存”或“加速”。要说明它省的是哪一笔账、牺牲了什么、线上训练日志里应该观察哪个信号。
七、常见误区与追问
- 误区:预训练需要标注数据。 不需要,标签是「下一个词」本身,纯自监督。
- 误区:MLM 比自回归先进。 各有所长;生成式大模型选自回归,因信号密集、任务统一、契合生成。
- 追问:为什么自回归训练效率高于 MLM? 每个 token 都是预测目标(密集信号),MLM 只用被遮的约 15%。
- 追问:预测下一个词怎么就学会推理了? 为了在海量文本上预测准,模型被迫内化语法、知识、逻辑——压缩即智能。
- 追问:训练时是逐词生成吗? 不是,训练时用因果掩码一次并行算完所有位置,只有推理才逐词生成。
- 追问:困惑度是什么? 交叉熵的指数,衡量语言建模好坏,越低越好,但不完全等同下游能力。
八、加强记忆
预训练目标记「自回归 + 交叉熵 + 密集信号」:按链式法则 P(x)=∏P(x_i|x_{<i}),损失是预测下一个 token 的交叉熵,配因果掩码一次并行算完。 它胜出的三条理由钉死:信号密集(每 token 都是目标,无需标注)、任务统一(学会续写即隐含学会一切)、训练推理一致(都是预测下一个词)。再挂一个洞察——「预测下一个词=极致压缩文本=被迫理解世界」,这就是简单目标逼出通用智能的原因。和 MLM(双向、稀疏、擅理解)、去噪(片段填空、擅转换)区分开,就把预训练目标答透了。