aaihubhub
大模型原理游戏课:模型工坊 16 关 · 第 10 课 / 共 16 课 ↗ AI 教程

10|LM head 投影台:从隐藏状态回到词表

理解最终归一化、线性投影、权重共享与 logit 排名。

author
↗ 3 阅读
LESSON BRIEFING10 / 16
第 10 / 16 关

校准输出投影

把最后隐藏状态投影回词表维度,得到每个候选的 logit。

输出是分数表,不是已经选好的词。

CHECKPOINT

权重共享指的常见做法是?

理解最终归一化、线性投影、权重共享与 logit 排名。

高塔顶部仍然是一条 hidden_size 宽的向量,而采样器需要词表中每个 token 的分数。LM head 就是一座投影台,把内部坐标重新映射到词表坐标。

先建立整机直觉

不要先背术语。先问三个工程问题:这一阶段接收什么形状的数据、做了哪一种变换、结果交给谁。只要数据流清楚,公式就不再是孤立符号。

核心机械结构

  • 最终 RMSNorm 先稳定顶层隐藏状态。
  • 隐藏向量与形状为 vocab_size × hidden_size 的输出矩阵相乘,得到 vocab_size 个 logits。
  • 权重共享让输出矩阵复用输入嵌入矩阵,减少参数,并在“读 token”和“写 token”之间建立几何联系。

跟着一个例子走

hidden_size=1024、vocab=248,320 时,单个位置输出 248,320 个分数。模型通常只需要最后位置来生成下一个 token;训练则可以并行计算序列中每个位置的输出。

阅读例子时,把“固定权重”和“本次请求产生的激活”分别标记。前者在训练后保存,后者会随输入变化;混淆两者会导致对记忆、隐私和性能的错误判断。

容易掉进的坑

logit 不是概率,也不是可直接比较不同提示词的绝对置信度。它只在当前候选集合和当前上下文中通过相对差异起作用。

动手工坊

  1. 用 3 维隐藏向量和 5×3 输出矩阵手算 logits。
  2. 对所有 logits 同加 100,再做 softmax,验证概率不变。
  3. 计算不共享权重时嵌入与 LM head 分别需要多少参数。

完成后不要只保存结果。记录输入、参数、观察和结论,换一组输入重复实验。一个现象只有在可重复时才是证据。

检查点

你应能解释为何 LM head 输出的是词表大小的分数向量。

回到页面上方的互动任务,调节两个控制量并完成选择题。答对后,本关会在浏览器中记为完成并获得 XP。

参考与延伸

  • https://mlx.void.app/zh
  • https://arxiv.org/abs/1608.05859

本课程为 aiHubHub 原创改写。外部站点只用于核对概念范围与交互启发,正文、例子、练习和界面均重新设计。