站点标志Map the AI
  • 每日短课
  • AI 新闻
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图

输出投影:从隐藏状态到词表 logit

transformer 的最后一步把一个隐藏向量变成词表中每个 token 的分数。这个投影怎么做,为什么它往往是最大的单个矩阵,以及模型为什么把它和 embedding 绑定。

本页目录
  • 最后一个向量,以及问题所在
  • 这个投影在算什么
  • 生成时只投影最后一个位置
  • 为什么它这么大
  • 权重绑定
  • 要点回顾
模型内部5 / 17

先读这些

  • transformer 是怎么工作的?

有帮助,但非必需

  • logit 与 softmax

对各级别的必要程度

各目标级别的推荐分
新手25 分中的 2 分
进阶45 分中的 4 分
专家45 分中的 4 分

主线上的下一篇

自注意力图解

主题

AI 如何工作

经过最后一层 transformer 之后,一个 token 仍然只是一个向量——几千个数字,和词看不出任何明显关系。还剩一步:把这个向量转换成对每个可能的下一 token 的分数。这就是输出投影(output projection),有时也叫语言建模头(language modeling head),模型的内部表示在这里终于和词表撞上。按参数量算,它往往还是整个模型里最大的单个矩阵。

最后一个向量,以及问题所在

最后一层为每个位置输出一个隐藏状态——一个宽度等于模型内部维度的向量,比如 4096 个数字。这个向量稠密而抽象:它编码了模型关于「下一个该是什么」所汇总的一切,但形式完全没法直接读。

而生成需要的是另一种东西:词表中每个 token 一个数字,表示模型有多偏爱它。如果词表有 5 万个 token,模型就需要 5 万个分数。所以这件事的本质是一次形状变换——从 4096 维的隐藏状态,变成长度 5 万的分数向量。而一次矩阵乘法正好能做到。

这个投影在算什么

输出投影是一个大权重矩阵,形状是(隐藏维度 × 词表大小)。把最终的隐藏状态和它相乘,就得到词表中每个 token 一个分数。这些分数就是 logit。

这个机制值得具体看一眼。矩阵的每一列都是一个可学习的向量,对应词表里的一个 token,和隐藏状态处在同一个空间里。算某个 token 的 logit,就是拿隐藏状态和那一列做点积——一次相似度度量。哪一列的方向和隐藏状态接近,那个 token 的分数就高;指向别处的就低。

所以输出投影实际上在做一次伪装的最近邻比较:词表里的哪个方向和模型最终选定的方向最匹配?最匹配的那些拿到最高的 logit。接下来,softmax 把这些 logit 变成概率,生成就继续下去了。

生成时只投影最后一个位置

一个关于效率的细节。整个栈会为每个位置算出隐藏状态,但生成时模型只需要下一个 token——所以它只需要投影最后一个位置的隐藏状态。投影作用在一个向量上,产出一个分布。

训练时正好相反:投影一次跑遍所有位置,因为教师强制会并行地给每个位置的预测打分。同一个矩阵,生成时作用在一个向量上,训练时作用在整个序列上。这种不对称,是「训练一个序列」和「生成一个序列」虽然权重完全相同、算力分布却差别很大的原因之一。

为什么它这么大

看形状就知道:隐藏维度乘以词表大小。隐藏维度 4096、词表 5 万 token 时,这一个矩阵就超过 2 亿个参数——常常是模型里最大的单个张量,足以和任何一个前馈层匹敌甚至超过它。

这也是为什么词表大小是实打实的架构成本,而不是可以随便设的参数。每多一个 token,这个矩阵就多一整列,输入 embedding 也多出对应的一行。词表更大意味着序列更短(同样文本的 token 更少),但输出投影和 softmax 更重。这个取舍是模型设计里那些静悄悄的平衡动作之一。

权重绑定

多数模型都会做的一个漂亮动作。输入 embedding 矩阵把 token 映射进向量,输出投影把向量映射回 token。两个矩阵形状相同——词表大小 × 隐藏维度——只是使用方向相反。

权重绑定(weight tying)让两者共用同一个矩阵。进来时用来表示某个 token 的那个向量,就是出去时用来给这个 token 打分的向量。这把花在词表处理上的参数大致减半,而且逻辑上很顺:一个 token 的身份就该是一件事,无论模型是在读它还是在预测它。它还倾向于提升质量,因为每个 token 的输入表示和输出表示被迫保持一致。不是每个模型都做权重绑定,但很多都做,而它是「架构反映概念对称性」的一个干净例子。

要点回顾

  • 输出投影用一次矩阵乘法,把最终的隐藏状态变成词表中每个 token 一个 logit
  • 词表中每个 token 都对应一列可学习向量;它的 logit 就是与隐藏状态的点积——一个相似度分数
  • 生成时只投影最后一个位置;训练时并行地投影每一个位置
  • 这个矩阵是隐藏维度 × 词表大小,常常是模型里最大的单个张量,这让词表大小成为真实成本
  • 权重绑定把输入 embedding 矩阵复用作输出投影,让词表相关参数减半,并让每个 token 的表示在两个方向上保持一致

下一篇: 编码器、解码器与编码器-解码器架构——三种排布 transformer 栈的方式。

本页目录

  • 最后一个向量,以及问题所在
  • 这个投影在算什么
  • 生成时只投影最后一个位置
  • 为什么它这么大
  • 权重绑定
  • 要点回顾
站点标志Map the AI

AI 不断向前,学习有路可循。

地图
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图
公司
  • 关于我们
  • 联系我们
法律
  • Cookie 政策
  • 隐私政策
  • 服务条款
© 2026 Map the AI。由 NeatSeed LLC 运营。保留所有权利。