跳转到内容

基础原理第 4 篇,共 13 篇

Transformer:从输入到下一 token

以 decoder-only 为主,定位 Embedding、Block、LM Head 与训练生成两条路径

更新于 阅读约 2 分钟

Transformer 主干把每个 token 的初始向量变成包含上下文的向量。LM Head 再把这个向量投影成下一 token 的词表分数。

先读:基础原理总览。本文先看整体,各模块的细节见下表中的链接。

ids [B,T]
↓ Embedding + 位置信息
X [B,T,D]
↓ 重复 L 个 Block:Attention → 残差;MLP → 残差
↓ 最后归一化
hidden [B,T,D]
↓ LM Head(D → Vocab)
logits [B,T,Vocab]
模块解决什么问题深入
Embedding 与位置整数如何变成向量,顺序如何进入模型输入表示
Attention + causal mask当前 token 如何读取已有上下文注意力
Norm、残差、MLP如何逐层改进表示,并保持接口维度一个 Block
LM Head表示如何变成 100 个候选分数训练与生成的数据流
KV Cache生成时如何复用历史计算缓存

教学输入 [11,23,37] 表示“小猫 坐在 窗边”。Embedding 后是 [1,3,8]。每层 Block 保持这个外部形状,同时改变向量内容。LM Head 产生 [1,3,100]。

第 0 个位置预测“坐在”;第 1 个位置预测“窗边”;第 2 个位置预测“晒太阳”。最后一行不是“窗边的概率”,而是读完前缀后,下一个 token 的分数。

这一组文章以 decoder-only 为主线:没有独立 Encoder,也没有读取 Encoder memory 的 cross-attention。2017 年原论文是 Encoder–Decoder;翻译时,源语言进入 Encoder,目标语言前缀进入 Decoder。原图和具体数据流见 Encoder–Decoder 对照。两种架构的输入方式不同,不要混在一起理解。

GPT-2 使用学习式位置向量、LayerNorm、GELU 和 MHA。许多现代模型换用 RoPE、RMSNorm、SwiGLU 和 GQA,但“输入表示 → 多层 Block → 输出分数”的骨架仍可用于定位组件。具体模型以配置为准,不把一组参数当成所有 Transformer 的规定。

接着读:输入表示,或直接看 训练与推理。

来源:Attention Is All You Need;Illustrated GPT-2。