
本课学习重点
- 位置编码
- 多头自注意力
- 前馈网络
先从一个具体问题出发
同一个词,在不同位置有不同作用
Transformer 可以同时处理一句话中的所有词元,但同时处理会失去天然的先后顺序。因此它需要显式加入位置信息,再让每个词元通过自注意力联系上下文。
SEQUENCE & ATTENTION
通过逐步信息流理解词元、位置编码、多头自注意力、残差连接和 Transformer 层。
这一课要回答:Transformer:把上下文联系起来建立必要的基础概念
先认识三个关键词
先看每个概念负责什么,再把它们放回完整流程。无需先记公式,先建立直觉。
告诉模型词元在哪里
词元表示加入位置线索,区分相同词出现在不同顺序的情况。
从多个角度观察关联
不同注意力头可以学习语法、指代、距离等不同关系。
逐位置加工信息
注意力完成信息交流后,每个位置再经过相同的小网络变换。
把概念连接成流程
走过一个 Transformer 层
按顺序走一遍,观察每一步的输入、动作与输出。
- 01
词元嵌入
把离散词元变成连续向量。
- 02
加入位置信息
保留先后与距离线索。
- 03
多头自注意力
每个位置收集相关上下文。
- 04
残差与前馈网络
保留原信息并进一步变换,再传入下一层。
互动实验 · 动手建立直觉
逐步点亮 Transformer 信息流
从词元输入开始,逐步查看位置、自注意力、信息融合和输出表示。
当前信息词元嵌入
‘桥梁’先变成一组连续数字。
知道模型能做什么,也知道不能做什么
三个容易忽略的边界
技术名词描述的是一种计算方法。真正用于产品时,还要检查数据、指标、成本与使用场景。
并行不等于没有顺序
位置编码负责注入顺序,自注意力负责建立关系。
多头不保证分工清晰
有些头会出现相似或难以解释的模式。
长上下文需要大量资源
标准注意力的比较数量随序列长度平方增长。
可选代码实践 · 逐行理解
调用一个 Transformer 编码层
代码只呈现本课最关键的计算路径。先根据注释理解每一步,再放进完整项目。
course-12.py
import torch.nn as nn
layer = nn.TransformerEncoderLayer(
d_model=64,
nhead=4,
dim_feedforward=128,
batch_first=True,
)
encoder = nn.TransformerEncoder(layer, num_layers=2)
output = encoder(token_vectors + position_vectors)- 步骤 1
d_model=64 表示每个词元用 64 维向量表示。
- 步骤 2
4 个注意力头并行查看不同关系,它们共享总表示维度。
- 步骤 3
两个编码层依次更新每个位置的上下文表示。
知识检查与课程总结
确认你能把概念讲清楚
完成三个问题,再用五句话回顾本课主线。
已回答 0 / 3 题 · 当前答对 0 题
- 词元嵌入提供内容表示,位置编码提供顺序线索。
- 自注意力让每个位置聚合上下文。
- 多头机制从不同表示空间捕捉关系。
- 前馈网络逐位置加工融合后的信息。
- 残差连接与归一化帮助深层结构稳定训练。
下一课 · COURSE 13
大语言模型如何生成文字
把 Transformer 的上下文表示用于下一词元预测,逐步生成文本。