← 课程库
语言模型与架构模块三 · Transformer 结构组成代码14 分钟

Transformer 全貌:一层里到底有什么

把注意力、FFN、残差、归一化拼成一块「积木」

学完这节你能:
  • 说出 Transformer 一层的组成
  • 理解残差连接与层归一化的作用
  • 区分编码器层与解码器层

Transformer 由多层相同的「积木」堆叠而成。每一层有两个子层:多头自注意力 + 前馈网络(FFN),每个子层都配残差连接和层归一化。

  • 输入编码:token → embedding,加/融入位置编码。
  • 子层 1:多头自注意力(让词与词交互)。
  • 子层 2:前馈网络 FFN(对每个位置独立做非线性变换,通常先升维再降维)。
  • 每个子层外面包:残差连接(x + 子层(x))+ 层归一化,保证深层也能稳定训练。

🔑 残差连接让梯度有「高速公路」直达浅层,缓解深层退化;层归一化稳定每层激活的分布。两者是深层网络能训起来的关键。

编码器层解码器层
自注意力双向(看全句)因果掩码(只看左边)
交叉注意力有(关注编码器输出)
典型用途理解生成
自测关于 Transformer 一层的结构,正确的是:
// 带走一句话

Transformer 一层=多头自注意力+FFN,每子层外包残差+层归一化;编码器双向、解码器因果掩码。

独立练习

做到这些,才算完成本节

  1. 画出 Pre-Norm 因果解码器单层数据流,逐处标记残差张量形状。
  2. 删除因果掩码运行一个最小例子,证明当前位置能够读取未来 token。
  3. 在本地运行代码,打印每个关键张量的 shape。
  4. 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
位置编码与 RoPE 旋转位置编码
下一课 →
三大主流架构:编码器-解码器 / 因果 / 前缀解码器

学完不要急着赶进度:去练习自测,或完成对应的阶段实验