Transformer 为什么要对整个词表同时打分
围绕最后线性层、Logits 和 Softmax 的描述,解释解码器隐藏状态如何映射到完整词表,并选择下一词元。
相关工具
解码器最后输出的还不是一个词
经过多层解码器后,当前位置得到的是一个隐藏状态向量。它包含目标前缀、源序列信息和各个子层加工后的特征,但还不是词表中的具体词元。Transformer 相关概念 在介绍最后线性层和 Softmax 时,专门说明了从向量到词的转换过程。
输出层要做的事情,是把这个隐藏状态映射到模型词表空间,让每个候选词元都获得一个分数。只有完成这一步,系统才有可能比较“下一个应该是哪个词”。

解码器隐藏状态经过输出线性层,映射到词表大小的 Logits 向量。
为什么不是只计算几个候选词
在生成某个位置时,模型通常并不知道正确词元会落在哪个小候选集合里。上下文可能允许名词、动词、标点、特殊标记或多个不同表达,输出层需要让整个词表中的候选参与比较。
对完整词表打分并不表示所有词都同样可能。经过训练后,当前上下文相关的词元通常获得更高分数,明显不合适的词元获得较低分数。完整候选空间给模型留下了选择余地,概率分布也能反映候选之间的差距。
Linear 层把模型宽度变成词表大小
假设解码器隐藏状态宽度是 d_model,词表有 V 个词元,输出线性层会把每个位置的 d_model 维向量映射成 V 维向量。这个 V 维结果就是 Logits,每一维对应词表中的一个候选词元。
资料 用一个拥有 10000 个英文词的词表举例说明,Logits 向量也会有 10000 个数字。每个数字不是概率,而是模型对对应词元的相对分数。词表扩大时,输出投影的规模和计算成本也会随之增加。

输出线性层把 d_model 维隐藏状态投影成词表大小 V 的 Logits 向量。
Logits 为什么不能直接当概率
Logits 可以是负数、正数或零,它们之间的差距有意义,但不满足概率的基本条件。概率不能为负,并且同一位置所有候选词元的概率需要加起来等于 1。
Softmax 会对整组 Logits 做归一化,把分数转换成非负概率。分数较高的词元通常得到更高概率,分数差距越大,分布越集中;多个候选分数接近时,概率分布会更平缓。
Softmax 是在同一位置的词表候选之间比较
对于一个目标位置,Softmax 会沿着词表维度处理这组 Logits。它比较的是同一位置上不同候选词元的相对分数,而不是把不同序列位置或不同样本的分数混在一起。
如果一次训练有多个目标位置,那么每个位置都会得到一组自己的词表分布。当前位置的隐藏状态不同,Logits 不同,Softmax 后的概率也不同。输出层因此可以对整段目标序列逐位置给出下一词预测。

不同目标位置的隐藏状态分别投影到词表,并在各自的词表维度上进行 Softmax。
训练时如何利用完整词表分布
训练时,目标标签会告诉模型当前位置真正应该预测哪个词元。交叉熵损失会查看完整概率分布,要求真实词元获得较高概率,同时也会根据其他候选的概率分配产生梯度。
这比只判断“选对或选错”提供了更多信息。如果真实词元概率很低,模型会收到明确反馈;如果几个候选概率接近,梯度也会反映它们之间的差距。输出层因此能逐步调整隐藏表示和投影参数。
推理时如何从词表分布选择词元
推理时,系统得到当前完整词表的 Logits 或概率后,可以使用不同解码策略选择下一词元。贪心策略选概率最高者,束搜索保留多条候选路径,采样策略则根据概率分布随机选择。
选择并不一定等于永久确定。普通词元会追加到目标前缀并进入下一轮,EOS 会触发停止判断。输出层负责形成候选分布,解码策略负责从分布中选择,生成循环负责把选择结果带入下一步。
词表大小为什么会影响输出层成本
输出线性层的输出维度等于词表大小,因此词表越大,每个位置需要计算的 Logits 数量越多。训练时还要针对这些候选计算概率和损失,推理时也要在候选分布上执行选择或采样。
这也是一些模型会研究词表设计、输出投影共享、分层 Softmax 或其他近似方法的原因。但在经典 Transformer 的基本流程里,最清楚的理解仍然是:隐藏状态通过线性层映射到完整词表,再由 Softmax 得到下一词概率。
用五步检查输出层
第一,确认输入是解码器当前位置的隐藏状态;第二,确认线性层输出宽度等于词表大小;第三,确认 Logits 只是分数,不是概率;第四,确认 Softmax 沿词表维度归一化;第五,确认解码策略根据分布选择词元并处理 EOS。
这五步把模型内部向量和最终文本连接起来。输出层不是简单的“查表取词”,而是让当前隐藏状态与整个词表进行一次比较,再把比较结果交给生成控制流程。
常见问题
Logits 向量中的每个数字对应什么?
每个数字对应词表中的一个候选词元,表示当前隐藏状态对该候选的相对分数。
Softmax 会在不同目标位置之间一起归一化吗?
通常不会。每个目标位置都有自己的词表 Logits,Softmax 主要沿该位置的词表维度分别归一化。
输出概率最高的词一定是最终生成词吗?
不一定。贪心解码会选最高概率词,但束搜索、采样和其他解码策略可能做不同选择;EOS 还会触发停止判断。