大模型训练中的 logits 是什么
简述:大模型输出的原始得分。
Logits 在中文技术文献中通常直接使用英文术语,没有统一的中文译名。
在大模型训练中,Logits 可以理解为模型对每个预测结果的“原始打分”,它直接反映了模型对不同类别的“倾向性”,但尚未转换为概率。以下是通俗解释:
Logits 是什么?
直观理解
假设你问大模型:“明天会下雨吗?”模型可能会输出三个选项的原始分数:
下雨:
2.5
不下雨:
-1.0
阴天:
0.3
这些数值就是 Logits,它们表示模型对每个选项的“信心值”,数值越大代表模型越倾向于该结果。
技术定义
Logits 是模型最后一层神经网络的原始输出,未经过任何归一化处理(如 Softmax)。它的特点是:
可以是任意实数(正数、负数,甚至极大/极小值)。
不直接代表概率(总和不一定为1)。
Logits 的作用
训练阶段:指导模型学习
计算损失:模型通过 Logits 直接计算损失(如交叉熵损失)。例如,若正确答案是“下雨”,但模型对“下雨”打分为
2.5
,对“不下雨”打分为-1.0
,损失会衡量这种预测偏差。反向传播:Logits 的数值差异会影响梯度更新,帮助模型调整参数,提升预测准确性。
推理阶段:决定最终预测结果
选择最大值:在预测时,模型只需取 Logits 中数值最大的那个类别。例如,
[2.5, -1.0, 0.3](@ref)
中最大值是2.5
,对应“下雨”。避免冗余计算:直接取最大值比先转换为概率再选类别更高效。
灵活适配任务
多分类:如文本分类(新闻、娱乐等)。
生成任务:如语言模型预测下一个词时,Logits 对应词汇表中每个词的得分。
Logits 为什么重要?
数值稳定性
直接输出 Logits 而非概率,能避免梯度消失或爆炸问题(例如概率接近0时梯度趋近于0)。
模型表达自由
Logits 允许模型输出任意实数,无需受限于概率的约束(如总和为1),从而更灵活地学习复杂关系。
统一处理不同任务
无论是分类、生成还是强化学习,Logits 都能作为中间结果适配不同损失函数(如交叉熵、对比损失)。
Logits 与概率的区别
特性 | Logits | 概率(Softmax后) |
---|---|---|
数值范围 | 任意实数(如 -100, 50) | 0~1 之间 |
总和 | 无限制 | 必须为1 |
直接含义 | 模型的“原始倾向性” | 明确的概率解释 |
计算效率 | 高效(无需转换) | 需额外计算 Softmax |
举个实际例子
假设大模型要分类图片中的动物:
Logits 输出:
[猫: 3.2, 狗: 1.5, 鸟: -0.8](@ref)
Softmax 转换后:
[猫: 0.78, 狗: 0.19, 鸟: 0.03](@ref)
预测结果:模型认为图片最可能是猫(概率最高)。
总结
Logits 是模型输出的“原始信号”,它直接反映模型对每个选项的倾向性,是训练和推理的核心中间结果。通过 Softmax 转换后,Logits 变成可解释的概率,但实际应用中(如预测时)通常直接使用 Logits 的最大值,兼顾效率与准确性。