Skip to content
🔗 分享本题
查看我的学习进度 →

交叉熵与困惑度动漫知识图:下一 Token 预测使用左移目标,对非填充位置计算正确 Token 概率的负对数并求平均,Perplexity 是平均交叉熵的指数

🧠 图解记忆:交叉熵惩罚正确 Token 的低概率,PPL 是平均损失的指数;点击图片可查看原图。

LLM 预训练使用 Cross-Entropy Loss(交叉熵损失),也叫 Next-Token Prediction Loss。

为什么用 Cross-Entropy?

预测目标:P(y_t | x_1, ..., y_{t-1})
即:给定上文,预测下一个真实 Token 的概率

Cross-Entropy Loss = -log(P(正确Token))

损失越小 → 模型对正确 Token 的概率越高 → 预测越准确

公式推导

假设词表大小 V = 50,000
模型输出 logits: [0.5, 2.3, -1.1, ..., 0.8]  (每个词一个分数)

经过 Softmax 变概率: [0.003, 0.72, 0.001, ..., 0.005]

如果正确答案是第 2 个 Token:
  Loss = -log(0.72) ≈ 0.33

如果模型错得很离谱,正确答案只有 0.01 的概率:
  Loss = -log(0.01) ≈ 4.6  (大得多!)

Cross-Entropy Loss vs Perplexity

指标定义含义关系
Cross-Entropy Loss-log(P(正确Token))越低越好(最小为 0)基础指标
Perplexityexp(Cross-Entropy Loss)表示模型每次猜测时有多少候选词(越低越好)PPL = e^Loss

通俗解释 Perplexity:

Perplexity = 2^2 = 4 意味着:平均而言,模型每次预测时有 4 个候选词"同样可能"
PPL=4 说明预测比较有信心(猜对了其中一个)

Perplexity = 2^10 = 1024 意味着:平均有 1024 个候选词
PPL=1024 说明模型完全不确定

LLM 典型范围:GPT-3 base perplexity ~20,GPT-4o < 5

工程视角:监控训练的关键信号

现象原因对策
Loss 持续下降正常学习过程✅ 继续训练
Loss 降到一定值不再降接近数据噪声下限⚠️ 检查是否欠拟合或数据质量差
Loss 突然上升Learning rate 过大、梯度爆炸❌ 降低 lr、加梯度裁剪
Train Loss 低但 Val Loss 高过拟合加 Dropout、增大数据、早停

面试话术:

"LLM 预训练用的是标准交叉熵损失:负对数似然。本质上就是在测'模型对正确 Token 给了多高的概率'。Perplexity 是交叉熵的指数形式,可以理解为'模型每次做选择时有多少个同样可能的选项'——PPL 越低越确定。训练中我主要看两条曲线:Train Loss 和 Validation Loss,如果后者开始回升那就是过拟合了。"


📚 参考:Hugging Face:Perplexity of fixed-length models