学习 Transformer 架构的路线
1 课程概览
本课介绍学习 Transformer 架构的路线。Transformer 由输入、输出、编码、解码四部分组成。学习思路从输入到编码到解码到输出。由于编码器和解码器结构相似,相同组件(如 Add & Norm、Feed Forward)只讲一次,解码器中直接复用。需要单独学习的组件:Input Embedding、Positional Encoding、Multi-Head Attention、Feed Forward、Add & Norm、Masked Multi-Head Attention、Linear、Softmax。
2 核心概念与定义
- Input Embedding:词嵌入层,将文本转为词向量。
- Positional Encoding:位置编码,给词向量加位置信息。
- Multi-Head Attention:多头注意力机制。
- Feed Forward:前馈全连接层。
- Add & Norm:残差连接 + 规范化层。
- Masked Multi-Head Attention:掩码多头注意力,又称多头自注意力。
- Linear:线性层。
- Softmax:输出概率分布。
3 模型与算法详解
学习路线
输入部分 → 编码器 → 解码器 → 输出部分
需要单独学习的组件
| 组件 | 所属部分 | 说明 |
|---|---|---|
| Input Embedding | 输入 | 词嵌入层 |
| Positional Encoding | 输入 | 位置编码 |
| Multi-Head Attention | 编码器 | 多头注意力 |
| Feed Forward | 编码器 | 前馈全连接层 |
| Add & Norm | 编码器 | 残差连接 + 规范化层 |
| Masked Multi-Head Attention | 解码器 | 掩码多头注意力(多头自注意力) |
| Linear | 输出 | 线性层 |
| Softmax | 输出 | 输出概率分布 |
编码器 vs 解码器
| 对比项 | 编码器 | 解码器 |
|---|---|---|
| 子层数量 | 2 个 | 3 个 |
| 相同子层 | Multi-Head Attention、Feed Forward | Multi-Head Attention、Feed Forward |
| 不同子层 | 无 | Masked Multi-Head Attention |
Masked Multi-Head Attention 的别名
Masked Multi-Head Attention 也被称为多头自注意力机制。
- 面试官可能问:什么是多头自注意力机制?
- 答案:就是 Masked Multi-Head Attention,区别在于是否有掩码。
学习步骤
Step 1:搞定各组件的作用
Step 2:单独测试每个组件
Step 3:组装成完整 Transformer
4 数学原理与推导
本课为路线介绍,无数学原理。
5 代码示例
本课为路线介绍,无代码示例。
6 重难点与易错提醒
- ❗重点:学习路线——输入 → 编码 → 解码 → 输出。
- ❗重点:需要单独学习的组件有 8 个。
- ⚠️易错:解码器比编码器多一个子层(Masked Multi-Head Attention)。
- 💡深入理解:Masked Multi-Head Attention = 多头自注意力。
- 💡深入理解:相同组件只讲一次,解码器直接复用。
7 课堂问答精选
Q1:学习 Transformer 的路线是什么?
A:从输入到编码到解码到输出。由于编码器和解码器结构相似,相同组件(如 Add & Norm、Feed Forward)只讲一次,解码器中直接复用。
Q2:需要单独学习的组件有哪些?
A:①Input Embedding;②Positional Encoding;③Multi-Head Attention;④Feed Forward;⑤Add & Norm;⑥Masked Multi-Head Attention;⑦Linear;⑧Softmax。
Q3:Masked Multi-Head Attention 和 Multi-Head Attention 有什么区别?
A:Masked Multi-Head Attention 有掩码,防止偷看未来词,也被称为多头自注意力。Multi-Head Attention 没有掩码。
Q4:为什么相同组件只讲一次?
A:因为编码器和解码器结构相似,相同组件(如 Add & Norm、Feed Forward)在编码器讲过后,解码器中直接复用,避免重复。
8 本课小结
- 学习路线:输入 → 编码 → 解码 → 输出。
- 需单独学习 8 个组件。
- 解码器比编码器多一个 Masked Multi-Head Attention。
- Masked Multi-Head Attention = 多头自注意力。
- 相同组件只讲一次,解码器直接复用。
9 延伸思考
- 如何用代码实现 Input Embedding?
- 如何用代码实现 Positional Encoding?