LESSON 3.5 · 代码 · 140 分钟
Transformer Block 逐行实现
常见的 pre-norm GPT Block 依次执行 x = x + Attention(LayerNorm(x)),再执行 x = x + MLP(LayerNorm(x))。因果自注意力让每个位置只读取当前及更早的 token;MLP 则独立地变换每个位置的通道。两条残差支路把更新量加回主干,使信息和梯度能跨越许多层传播。
DIRECT ANSWER · VERIFIED SOURCES ·
一个现代 GPT 的 Transformer Block 如何更新残差流?
常见的 pre-norm GPT Block 依次执行 x = x + Attention(LayerNorm(x)),再执行 x = x + MLP(LayerNorm(x))。因果自注意力让每个位置只读取当前及更早的 token;MLP 则独立地变换每个位置的通道。两条残差支路把更新量加回主干,使信息和梯度能跨越许多层传播。
视频对齐
视频对齐点:按 LayerNorm → 因果多头注意力 → 残差相加 → LayerNorm → GELU/MLP → 残差相加的顺序,逐项核对代码与张量形状。
关键结论
- 注意力负责跨位置混合信息,MLP 负责在每个位置内部混合特征通道。
- pre-norm 把 LayerNorm 放在子层之前;原始 Transformer 论文采用的 post-norm 顺序不同。
- 残差连接要求子层输出与 x 的形状一致;多头输出必须先拼接并投影回模型维度。
边界与常见误解
“Transformer Block”不是唯一固定配方。不同模型会改变归一化位置、激活函数、位置编码、注意力类型和偏置;实现时应以目标模型配置为准。Dropout 通常只在训练时启用。
一手来源
学完你应该能够
- 能不用术语堆砌,解释「Transformer Block 逐行实现」解决了什么问题。
- 能围绕 attention、MLP、dropout 画出变量与因果关系。
- 能完成「写出可单测的 Block」,并用证据而不是感觉判断结果。
核心概念
attention
attention需要同时解释信息流、张量 shape 与因果约束,并在一个四 token 小矩阵上手算。 先给它一个可操作的定义,并指出它解决的具体问题。
MLP
MLP需要同时解释信息流、张量 shape 与因果约束,并在一个四 token 小矩阵上手算。 把它放进前后依赖中:输入从哪里来,输出会改变谁。
dropout
dropout需要同时解释信息流、张量 shape 与因果约束,并在一个四 token 小矩阵上手算。 写出至少一个不变量、shape 约束或成立条件。
LayerNorm 组合
LayerNorm 组合控制深层网络中的数值尺度。目标不是让所有值都一样,而是让每层前向激活与反向梯度处在可学习范围,同时区分训练期统计与推理期行为。
实践任务
写出可单测的 Block
- 预测:在运行代码前,写下你预期的输出、趋势或失败位置。
- 构建:先写接口和 shape 断言,只保留回答核心问题所需的最小组件。
- 验证:使用小矩阵手算、mask 单测、权重对齐与生成一致性;保存参数、随机种子与原始结果。
- 迁移:改变 head 数、上下文长度或归一化位置后预测影响,说明原结论是否仍成立。