一句话定义
Logits 是模型最后一层输出的未归一化分数;Softmax 把这些分数变成总和为 1 的概率分布,供采样或计算损失。
为什么需要它
模型输出的是任意实数,不能直接当概率。Softmax 用指数函数放大差距、再归一化,得到可解释的分布;训练时用交叉熵比较预测分布和真实 token,推理时用它采样下一个 token。Softmax 对 logits 的尺度很敏感:整体放大 logits,分布会变得更尖锐。
怎么工作
- 模型对词表每个 token 输出一个 logit
z_i。 - Softmax 计算
p_i = exp(z_i) / Σ exp(z_j)。 - 训练时用
-log p(y)作为交叉熵损失。 - 推理时按
p_i采样,或取最大概率做贪心解码。
关键点与取舍
- 温度 T 把 logits 除以 T:T<1 更尖锐,T>1 更平坦。
- Softmax 的概率不是“置信度”,模型可能很自信地答错。
- 词表很大时,Softmax 计算和显存都不小;实际实现会做数值稳定处理。
- 数值稳定实现会先减去最大值,再取指数,避免溢出。
常见误区
- Logits 不是概率,可能为负、也不求和为 1。
- 概率高不等于答案正确;它只表示模型更倾向这个 token。
- Argmax 只是贪心解码,不等于“最优回答”。
- 多分类 Softmax 假设类别互斥;多标签任务通常用 Sigmoid。
用在哪里
- 语言模型的输出层、分类任务、交叉熵训练。
- 调温度/Top-P、做校准或分析模型不确定性时。
- 看模型输出分数、做蒸馏或对比不同模型时,先分清 logits 和概率。
- 分析模型不确定性时,要看校准后的概率,而不是单看最高分。
相关概念
- LLM:Softmax 输出的使用方。
- 采样与解码:拿到概率之后怎么选 token。
- Transformer:产生 logits 的主干。