揭开 Transformer 的神秘面纱:深入探讨现代大语言模型的数学原理
大型语言模型(LLM)的内部工作常常像一个“黑箱”,被高级抽象和复杂的矩阵运算所掩盖。对于开发者和研究者来说,理解数据的精确流动——从 token ID 到概率分布——对于优化性能以及把握诸如多头潜在注意力(MLA)或专家混合(MoE)等架构创新的实际工作原理至关重要。
Transformer Math Explorer 提供了对这些过程的罕见、细粒度的观察。它有意放弃高级矩阵乘法,转而使用显式的求和和索引,从而揭示驱动现代 AI 生成每个 token 的基础数学。
高层流程:从 Token 到概率
从本质上讲,Transformer 模型(如 GPT-2)可以视为一个函数,输入是 token ID,输出是下一个 token 的概率分布。该过程遵循特定的结构化流水线:
- 嵌入(Embeddings):Token ID 被转换为连续向量。
- Transformer 块:这些嵌入通过 $L$ 个相同的块流动,每个块在上下文中细化 token 的表示。
- 输出头(Output Head):最终处理的向量映射回词表大小,生成下一个 token 的概率分布。
Transformer 块的解剖
每个 Transformer 块的设计旨在保持信号的稳定性,同时提升模型学习复杂模式的能力。标准块由两个主要子层组成:
- 因果自注意力(Causal Self-Attention):使模型能够衡量序列中不同 token 的重要性。
- 多层感知机(MLP):处理注意力机制提取的信息。
这两个子层都被 残差连接(residual connections) 包裹,以防止训练期间梯度消失问题,并配有 归一化(normalization) 层,使激活保持在稳定范围内。
因果自注意力的机制
自注意力是 Transformer 的核心引擎。对于单个头,计算遵循严格的步骤:将输入 $x$ 投影为查询(Query,$Q$)、键(Key,$K$)和值(Value,$V$)向量,计算它们之间的兼容性得分,对未来位置进行掩码以确保因果性,应用 softmax 函数,最后计算值的加权求和。
缩放点积(Scaled Dot Product)
位置 $t$ 的查询与位置 $s$ 的键之间的“兼容性得分”使用缩放点积计算。为了防止随着头宽度 ($d_h$) 增大得分方差爆炸,结果除以 $\sqrt{d_h}$:
$$z_{t , s} = \frac{1}{\sqrt{d_{h}}} \sum_{0 \leq a < d_{h}} q_{t , a} k_{s , a}$$
KV 缓存
在自回归生成过程中,模型一次生成一个 token。由于注意力机制是因果的,位置 $t$ 的键($k_t$)和值($v_t$)向量仅依赖于位置 $\leq t$ 的输入。
这意味着随着后续 token 被加入序列,这些向量保持不变。为避免重复计算,模型使用 KV 缓存,将这些向量存储并在每个解码步骤中复用。这大幅降低了生成长序列的计算开销。
超越基础:现代架构变体
虽然基础数学保持一致,现代模型引入了多种优化以提升效率和推理能力。Transformer Math Explorer 允许用户在这些高级配置之间切换:
- MLA(多头潜在注意力):一种降低 KV 缓存内存占用的优化。
- MoE(专家混合):用稀疏、专门的“专家”网络替代密集 MLP 层,以在计算成本不成比例增长的情况下提升模型容量。
- RoPE(旋转位置嵌入):通过在复数空间中旋转向量来编码位置信息的高级方法,提升模型处理更长上下文的能力。
- MTP(多 Token 预测):一种架构转变,使模型一次性预测多个未来 token,而非单个。
通过将这些概念拆解为基础的求和和索引,我们可以超越“线性代数”的抽象,看到机器预测句子中下一个词的实际算术过程。