知识全景图/ 软件工程与系统/ 人工智能全景图/ 语言建模目标 / Teacher Forcing / Next Token Prediction

语言建模目标、Teacher Forcing 与 Next Token Prediction 底层图谱

从样本窗口、右移标签、因果 mask、teacher forcing、logits、cross entropy、perplexity 到自回归生成循环,理解语言模型到底被训练成了什么

阅读定位: 这一页补 AI 底层理解线里的“训练目标层”。它不替代 优化器 / Loss / 训练稳定性,后者解释 loss、梯度和优化器怎样稳定收敛;也不替代 Logits / Softmax / 概率输出,后者解释 hidden state 怎样投到词表概率;也不替代 解码 / 采样,后者解释推理时怎样从分布里选 token。本页只回答一个底层问题:所谓“预测下一个 token”在训练数据、标签、mask、loss 和生成循环里到底怎么发生。
一、语言建模目标的最小链路
Text
原始语料
Tokens
token ids
Input Window
x0...xN-1
Shifted Labels
x1...xN
Causal Mask
不能看未来
Logits + CE
预测下一个 token
环节它是什么最关键的直觉容易误解
样本文本文档、代码、对话、网页、书籍、合成数据等序列模型学习的是训练分布中的条件延续模式以为模型逐条保存了答案
Tokenizer把文本变成 token id 序列训练目标发生在 token 坐标上,不是自然词坐标上把“下一个词”粗略等同于“下一个 token”
输入窗口给模型看的前缀序列每个位置都用前面 token 预测后一个 token以为一个样本只产生一个训练目标
右移标签labels 通常是 input ids 向左错一位后的目标当前位置 hidden state 要预测真实的下一个 tokeninput 和 label 对齐错会让 loss 失真
因果 mask禁止当前位置 attention 到未来 token训练时虽然整段都在 GPU 里,但每个位置不能偷看答案以为 teacher forcing 就是允许看未来
Cross Entropy惩罚真实下一个 token 概率太低模型被推向更高的真实 token logprob以为 loss 低就等于事实正确或会推理
一句话:

Next token prediction 不是让模型背一整段答案,而是在每个位置用“已允许看到的前缀”去提高真实下一个 token 的概率。

二、右移标签:训练样本到底长什么样
位置输入 token该位置允许看到训练标签训练含义
0喜欢看到“我”后预测“喜欢”
1喜欢我 喜欢学习看到“我 喜欢”后预测“学习”
2学习我 喜欢 学习AI看到前缀后预测主题 token
3AI我 喜欢 学习 AI预测句子结束或后续延展

为什么叫 shifted labels

训练时常把同一段 token 同时作为输入和标签来源,只是标签整体向左错一位:输入位置 t 的目标是原序列位置 t+1。padding、prompt-only 区域、非 assistant 区域或不想训练的 token 会被 mask 掉,不参与 loss。

三、Teacher Forcing:训练和生成的分叉点
训练时
  • 每一步的前文来自真实训练序列
  • 模型犯错不会立刻污染后续输入
  • 可以并行计算整段序列所有位置的 loss
推理生成时
  • 下一步输入来自模型刚刚生成的 token
  • 早期错误会进入上下文,影响后续分布
  • 需要逐 token 循环,并受解码策略影响
这造成什么
  • 训练 loss 很低,不代表自由生成不会跑偏
  • 长答案中错误可能逐步累积
  • 解码、评测、RAG、工具和自检会变得重要
最大坑:

Teacher forcing 不是作弊,也不是让模型训练时看未来。它只是用真实前缀作为下一步预测条件;因果 mask 仍然保证每个位置看不到目标 token 本身和更后面的 token。

四、因果 Mask:为什么整段并行仍然没有偷看答案
问题机制和 QKV 的关系排查信号
为什么不能看未来attention score 在未来位置被 mask 成不可选Q/K 算出匹配分后,mask 在 softmax 前生效训练 loss 异常低、生成异常好,怀疑 label leakage
为什么能并行训练每个位置的预测目标不同,但同一 forward 可一次算完每层 attention 都遵守下三角可见性检查 attention mask shape、padding mask 和 position ids
padding 怎么处理padding token 通常不参与 loss,也不应被有效 attentionpadding mask 与 causal mask 共同决定可见区域ignore_index、attention_mask、packed sequence 边界
多轮对话怎么处理SFT 常只让 assistant token 计入 lossuser / system 仍可作为上下文,但不一定作为训练目标assistant-only loss、chat template、special token 对齐

和 QKV 页的分工

QKV / Multi-Head Attention 解释“谁看谁、看多少、拿什么信息”;本页解释“为什么训练时每个位置只允许看过去,并用这个前缀预测下一个 token”。两者合起来,才是 decoder-only LLM 的训练核心。

五、Cross Entropy、Log Likelihood 与 Perplexity
概念回答的问题和 next token prediction 的关系不能代表什么
Logits每个候选 token 的原始分数是多少每个位置输出一个 vocab 维度的分数向量单个 logit 不是稳定置信度
Softmax / Logprob真实 token 在模型分布下概率多大目标 token logprob 越高,loss 越低不是外部世界事实概率
Cross Entropy模型分布离训练标签有多远语言模型最常见的训练 loss不直接衡量指令遵循、安全或工具成功
Negative Log Likelihood真实序列在模型下有多“不像”可按 token 累加成序列损失不同长度序列需要归一化比较
Perplexity模型对数据平均有多困惑常用于语言建模和数据分布比较不能替代任务评测和事实性评测
实用判断:

Perplexity 下降通常说明模型更会拟合某个文本分布;但一个低 perplexity 模型仍可能幻觉、拒答边界差、工具参数错或业务任务失败。

六、训练目标解释了什么,也解释不了什么
它能解释原因它解释不了需要接哪一层
为什么模型能续写、翻译、补全代码这些都可表现为条件分布下的合理后续 token为什么一定事实正确能力边界 / 幻觉、RAG、工具校验
为什么 prompt 改几个字会变条件前缀改变,下一 token 分布跟着改变为什么遵循组织策略指令层级、安全护栏
为什么长生成会积累错误生成时后续条件包含模型自己的输出为什么能做长期规划推理模型、搜索规划、Agent
为什么数据分布会影响能力训练目标直接拟合数据里的条件模式为什么模型符合人类偏好后训练 / 对齐机制
为什么 logits 和解码参数重要最终输出来自 token 分布的逐步选择为什么产品可上线Eval、LLMOps、发布闸门、人工审核
七、训练和推理错位的调试表
症状可能原因先查什么继续下钻
训练 loss 下降,但自由生成跑题teacher forcing 下的真实前缀训练,与生成时自回归条件不同生成样本、解码参数、长答案错误累积解码 / 采样
loss 异常低,评测异常高label leakage、未来 token 可见、评测污染causal mask、label shift、数据去重、benchmark 泄漏预训练数据污染
训练 loss 不下降labels 对齐错、ignore_index 错、tokenizer / vocab 不匹配input_ids / labels 打印、特殊 token、padding mask优化器 / Loss
SFT 后只会模板化回答assistant-only loss、模板数据比例或重复样本过强数据多样性、格式标签、训练轮数、eval 切片微调 / 对齐
低 perplexity 但事实差文本分布拟合好,不代表知识可验证事实样本、引用、RAG 证据、不可回答测试模型评测 / Eval
7.1 目标函数证据包:哪些 token 被奖励或惩罚
证据节点必须记录的字段用来排查什么
样本对齐sample_id、input_ids_hash、label_ids_hash、shift_rule、ignore_indexlabels 是否右移正确,是否把未来 token 泄漏给模型?
Loss 覆盖loss_mask_hash、assistant_only_flag、masked_token_ratio、special_token_policy模型到底在学用户文本、助手回答、工具格式还是无意义 padding?
目标切片bucket_name、bucket_loss、token_type、language / domain、sequence_length总 loss 下降时,哪些语言、领域、长度或格式切片没有学好?
训练 / 推理差异teacher_forcing_context、generation_config_id、exposure_bias_case_id训练时条件很干净,生成时自回归错误为什么会滚雪球?
评测连接perplexity_snapshot、eval_case_id、contamination_flag、trace_id低 perplexity 是真实能力,还是数据泄漏、模板记忆或评测污染?
八、回到 AI 主干
AI 全景 神经网络 / 训练循环 优化器 / Loss 语言建模目标 Tokenizer / 词表 Transformer QKV / 注意力头 Logits / Softmax 解码 / 采样 模型评测 / Eval

这张图在主线里的位置

如果优化器页解释模型怎样被更新,Logits 页解释每一步怎样打分,解码页解释怎样选择输出,那么本页解释训练目标如何把“文本序列”变成“每个位置预测下一个 token”的监督信号。它是理解预训练、SFT、perplexity、幻觉、长生成退化和结构化输出稳定性的中间齿轮。