离线速查 / 2026-11-08

Transformer 形状与公式速查

先标位置、再标head、最后标物理存储。所有公式默认标准decoder全注意力;MLA、SWA与跨卡分片要另算。

看shape仍然不直观?

打开逐格维度图解:从实际小矩阵看投影、分头、转置、合头、GQA、SwiGLU、packed与分页;点击元素追踪新旧坐标。

符号和Qwen3-0.6B实例

符号含义实例
H / F / Lhidden / MLP中间宽度 / 层数1024 / 3072 / 28
Hq / Hkv / dQ头 / KV头 / head_dim16 / 8 / 128
Vocab词表大小151936
B / T / N请求数 / 序列长度 / packed本轮token数由负载决定

实例值:模型官方config,2026-11-08核验;保存副本见docs/research/qwen3-0.6b-config.json。源码证据:Qwen3Attention。

一层的形状

X [N,H] → QKV [N,(Hq+2Hkv)d]
Q [N,Hq,d];K,V [N,Hkv,d]
Q/K norm → RoPE → attention
O [N,Hq,d] → flatten [N,Hq·d] → Wo [N,H]
gate_up [N,2F] → SiLU(gate)⊙up [N,F] → down [N,H]

数学矩阵采用xW,W=[in,out];PyTorch Linear.weight=[out,in]。Qwen3的Hq·d=2048,不等于H=1024。课15 · 课20。

attention / mask / online softmax

A = softmax(QKᵀ/√d + M),O=AV
有p个历史token、新chunk长c:M[i,j]允许j≤p+i
m′=max(m,mᵦ);α=exp(m−m′);β=exp(mᵦ−m′)
l′=αl+βlᵦ;o′=αo+βoᵦ;最终O=o/l

分块独立softmax后平均会出错;无可见key的全−∞行也不能直接正常归一化。课17 · 课22。

KV字节与分页

标准KV bytes = 2 · L · B · T · Hkv · d · dtype_bytes
Qwen3-0.6B BF16:112 KiB / token;4096 token = 448 MiB
slot = block_table[t // block_size] · block_size + t % block_size

不含权重、激活、workspace、图缓冲、页尾空槽;FP8还可能有scale开销。单步缓存dense attention约O(t),累计N步约O(N²),不能说整段生成O(N)。课21 · 课25。

容易误认的三种缓存

对象保存什么依赖什么
模型KV每层历史K/Vtoken及其上下文
RoPE cos/sin表旋转系数位置与频率参数
CUDA Graph缓冲静态地址上的输入/输出捕获shape和执行合约

完整术语见术语表;有疑问把公式与自己的形状标注发给老师。