🔥个人主页:杨利杰YJlio
❄️个人专栏:《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》
《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》
《超简单:用Python让Excel飞起来》
🌟让复杂的事情更简单,让重复的工作自动化
一条视频讲懂 Transformer:从 Token 到 BERT
- 1、为什么说 Transformer 是大模型的关键地基
- 2、自然语言进入模型前,先要变成 Token
- 3、词向量:让语义关系可以被计算
- 4、Q、K、V:注意力机制里的查询、键和值
- 5、QK 打分:模型如何判断谁更值得关注
- 6、softmax:把打分变成注意力分配比例
- 7、Attention 公式:本质是相关性加权汇总
- 8、多头注意力:模型从多个角度理解上下文
- 9、Add & Norm:从残差连接开始理解稳定训练
- 10、Encoder:把输入文本编码成一组上下文向量
- 11、Decoder:根据已有输出预测下一个 Token
- 12、Decoder 层结构:带掩码注意力与交叉注意力
- 13、BERT:编码器路线的经典理解模型
- 总结:一条视频看懂 Transformer 的真正价值
- 参考关键词
这篇文章来自一段Transformer原理讲解视频。视频用动画方式,把Attention Is All You Need、Token、词向量、Q/K/V、注意力打分、softmax、Attention公式、多头注意力、残差连接、Encoder、Decoder和BERT串成了一条完整学习线。
本文不是视频逐字稿,而是把视频内容整理成适合 CSDN 发布的学习笔记。重点不是死背公式,而是理解Transformer的完整逻辑:自然语言如何变成Token,Token如何变成向量,向量如何通过Q/K/V计算注意力,注意力如何进入编码器和解码器,最后又如何支撑BERT、GPT这类模型。
上面这张图是全文开场图。画面中出现了Attention is all you need、Encoder、Decoder等关键词,适合用于引出整篇文章的主题。它只放在文章开头,不放到后面的Add & Norm、词向量或BERT章节。
1、为什么说 Transformer 是大模型的关键地基
要理解今天的大语言模型、自然语言处理、文本生成、智能问答和代码生成,就绕不开那篇经典论文Attention Is All You Need。视频一开始就用这篇论文引出Transformer,是非常合理的讲法。
这张图左侧是Attention Is All You Need论文,右侧是Transformer架构示意,表达的是Transformer对后续大模型发展的基础意义。它只对应“为什么Transformer重要”这一节。
Transformer的核心思想,是让模型通过注意力机制判断一句话里哪些词更重要,哪些词之间关系更强。它不是让模型真正像人一样思考,而是用数学方式把“应该重点看哪里”这件事计算出来。
| 学习问题 | Transformer 的处理方式 |
|---|---|
| 一句话里哪些词更重要 | 通过Attention计算注意力权重 |
| 同一个词在不同上下文中含义不同怎么办 | 结合上下文重新计算词的表示 |
| 模型如何理解输入 | 通过Encoder编码成上下文向量 |
| 模型如何生成输出 | 通过Decoder根据已有内容预测下一个Token |
一句话理解:Transformer的关键价值,是把语言理解问题转成向量表示 + 注意力权重 + 编码解码的计算问题。
2、自然语言进入模型前,先要变成 Token
人看到一句话,可以直接理解它的意思。但模型不能直接理解文字本身,它只能处理数字。因此,自然语言进入模型前,需要先被切分成Token,再进入后续向量化和注意力计算流程。
视频先用“拉不拉”和“拉货”的例子说明上下文的重要性。同一个“拉”字,放在不同词语和句子里,语义可能完全不同。
这张图对应上下文语义变化。画面里拉不拉指向拉货,说明模型不能只看单个字,而要结合上下文判断当前词真正表达什么含义。
接下来,文本需要进入模型可处理的形式。最简单的直觉就是把不同词语映射成不同编号。
这张图对应Token编号。画面中货拉拉、拉不拉、拉布拉多分别被标成0、1、2。它讲的是文本进入模型前的编号和离散化过程。
| 概念 | 通俗解释 | 在模型中的作用 |
|---|---|---|
Token | 文本被切分后的基本处理单元 | 让模型可以逐个处理输入内容 |
| 编号 | 把不同Token映射成不同数字 | 让文本进入可计算流程 |
| 上下文 | 前后词会影响当前词含义 | 为后面的注意力机制做铺垫 |
简单编号只能说明这些词不同,但不能说明它们语义上有什么关系。比如拉布拉多和金毛都和动物有关,货拉拉和物流平台更接近。要表达这种语义关系,就需要词向量。
3、词向量:让语义关系可以被计算
视频用二维坐标轴讲词向量。一个方向表示“是否跟动物相关”,另一个方向表示“是否跟交通相关”。这样一来,语义相近的词就会在图上靠得更近。
这张图对应词向量和语义空间。图中金毛、牧羊犬、拉布拉多更靠近动物方向,货拉拉、网约车、物流平台更靠近交通和物流方向。
真实模型中的向量不会只有二维,而是高维空间。每个维度可能表达某种抽象语义特征。模型通过这些数字计算词之间的距离、相关性和上下文影响。
| 图中直观表达 | 真实模型中的含义 |
|---|---|
| 横轴表示是否跟交通相关 | 向量中的某些维度可能表达运输、移动、物流等语义 |
| 纵轴表示是否跟动物相关 | 向量中的某些维度可能表达动物、宠物、犬类等语义 |
| 距离越近表示语义越接近 | 模型可以用向量计算判断词语相似度 |
一句话总结:词向量不是简单编号,而是把词放进一个可以表达语义距离的数字空间。
4、Q、K、V:注意力机制里的查询、键和值
理解了Token和词向量之后,就可以进入Q/K/V。视频中把Q/K/V类比成查询、键、值和词块数据库,这个比喻非常适合入门。
这张图对应Q/K/V变换。左侧画面是Query、Key、Value和词块数据库,右侧画面出现了WQ、WK、WV,说明输入的语义和位置向量会通过不同矩阵变换生成Q、K、V。
| 名称 | 中文理解 | 作用 |
|---|---|---|
Query | 查询 | 当前词想要寻找什么信息 |
Key | 键 | 每个词提供用于匹配的标签 |
Value | 值 | 真正被汇总和传递的信息内容 |
可以这样记:Q负责问,K负责匹配,V负责交出内容。模型先用Q和K判断相关性,再根据相关性去加权汇总V。
关键点:Q/K/V不是凭空来的,而是由输入向量经过不同权重矩阵变换得到的。
5、QK 打分:模型如何判断谁更值得关注
有了Q和K之后,下一步就是计算相关性。视频用拉不拉更关注货拉拉的例子说明,注意力不是平均分配的,而是根据语义和上下文关系动态变化。
这张图对应QK相关性打分。画面中Q2与K1、K2、K3进行相关性计算,得到8、11、4这样的分数。这里表达的是当前词对其他词的关注程度。
| 计算对象 | 含义 |
|---|---|
Q · K | 计算查询向量和键向量的相关性 |
| 分数越高 | 说明当前词越应该关注对应词 |
| 分数越低 | 说明当前词和对应词关系较弱 |
这一步得到的是原始注意力分数,还不能直接当作比例。后面还需要经过缩放和softmax,才能变成真正的注意力分配权重。
一句话理解:QK打分就是模型在问:“我现在处理这个词时,句子里谁和我最相关?”
6、softmax:把打分变成注意力分配比例
前面得到的8、11、4这种分数,只能表示相关性大小,还不是最终比例。softmax的作用,就是把分数转成一组概率权重,让它们加起来等于1。
这张图对应softmax权重归一化。图中出现了Q2·K1/√d、Q2·K2/√d、Q2·K3/√d,并通过softmax得到0.15 + 0.84 + 0.01 = 1的注意力分配比例。
| 步骤 | 作用 |
|---|---|
QK打分 | 得到词与词之间的相关性分数 |
除以√d | 对分数进行缩放,避免数值过大 |
softmax | 把分数转成概率形式的注意力权重 |
权重求和为1 | 表示注意力被分配到不同词上 |
一句话理解:softmax把“谁更相关”转换成“分别关注多少”。
7、Attention 公式:本质是相关性加权汇总
视频里出现的注意力公式,是很多人第一次学习Transformer时最容易害怕的地方。
Attention(Q, K, V) = softmax(Q · K / √dₖ) · V这张图对应Attention完整公式。画面中完整展示了Attention(Q,K,V)公式,同时把Query、Key、Value三行向量对应出来。它适合用来解释注意力机制的完整计算过程。
| 公式部分 | 作用 | 通俗理解 |
|---|---|---|
Q · K | 计算相关性 | 判断当前词和其他词有多相关 |
√dₖ | 缩放 | 避免数值过大导致训练不稳定 |
softmax | 归一化 | 把分数变成注意力比例 |
V | 提供内容 | 按照注意力比例加权汇总信息 |
不要被公式吓到:它的本质就是先算相关性,再算分配比例,最后按比例把信息汇总起来。
8、多头注意力:模型从多个角度理解上下文
单个注意力头只能从一个角度看词与词之间的关系,但语言关系很复杂。一个词可能同时涉及语义、语法、位置、指代和上下文主题,所以Transformer使用了Multi-Head Attention。
这张图对应多头注意力。图中H1、H2、H3表示不同注意力头,旁边仍然保留了注意力公式,说明每个头都在做注意力计算,但可能关注不同关系。
| 注意力头 | 可能关注的关系 |
|---|---|
H1 | 语义相关性,例如词义是否接近 |
H2 | 句法关系,例如主语、谓语和宾语之间的关系 |
H3 | 上下文指代关系,例如某个代词指向谁 |
多头注意力不是简单重复计算,而是让模型从多个角度同时理解一句话。一个头可能关注语义,一个头可能关注位置,一个头可能关注长距离依赖。
一句话总结:多头注意力让模型不是只用一种视角理解文本,而是同时用多个视角观察上下文。
9、Add & Norm:从残差连接开始理解稳定训练
视频在多头注意力之后继续讲到了Add和Norm。这一部分经常被初学者忽略,但它对Transformer的稳定训练非常重要。
这张图对应Add和残差连接。画面中多头注意力输出后进入Add,旁边标注了“残差网络”。这里标题写Add & Norm,是因为标准Transformer模块里,残差连接通常和归一化一起理解;但这张图本身重点展示的是Add残差连接。
| 结构 | 作用 |
|---|---|
Add | 把原始输入和注意力输出相加,形成残差连接 |
Norm | 归一化数据分布,让训练更稳定 |
FFN | 前馈网络,对每个位置的向量继续加工 |
可以把Add & Norm理解为稳定器。它让深层网络在堆叠很多层时,仍然可以保留原始信息,并减少训练过程中的数值不稳定。
10、Encoder:把输入文本编码成一组上下文向量
Encoder是Transformer里负责理解输入的部分。它接收输入文本的向量表示,通过多头注意力、残差连接、归一化和前馈网络,把原始输入加工成带上下文信息的一组向量。
这张图对应Encoder编码器结构。图中清楚显示了多个编码层,每层都包含Attention(Q,K,V)、多头注意力、Add & Norm和FFN,最后输出“一组向量”。
| Encoder 组件 | 作用 |
|---|---|
| 多头注意力 | 计算输入文本内部各个词之间的关系 |
Add & Norm | 保留原始信息,并稳定网络训练 |
FFN | 对每个位置的向量继续做非线性加工 |
| 编码输出 | 得到一组带上下文信息的向量 |
简单理解:Encoder的任务是读懂输入,并把读懂后的内容变成后续模块可以使用的上下文向量。
11、Decoder:根据已有输出预测下一个 Token
理解了Encoder以后,再看Decoder会更清楚。Decoder更偏生成,它会根据已经生成的内容,继续预测下一个Token。
这张图对应Decoder生成场景。画面中出现<BOS>、Can和问号,表示模型已经有了起始符和部分输出,接下来要继续预测下一个英文Token。
| 生成阶段 | 含义 |
|---|---|
<BOS> | 表示生成序列的开始 |
Can | 表示已经生成出的部分内容 |
| 问号位置 | 表示模型接下来要预测的下一个Token |
一句话理解:Decoder的生成逻辑就是“看已经生成了什么,再预测下一个最可能出现的内容”。
12、Decoder 层结构:带掩码注意力与交叉注意力
解码器内部结构比编码器更复杂,因为它既要看自己已经生成了什么,也要参考编码器输出的信息。视频中把这部分画成了解码层结构。
这张图对应Decoder层结构。图中出现了带掩码多头注意力、多头交叉注意力、Add & Norm和FFN。其中带掩码注意力用于防止模型偷看未来内容,交叉注意力用于参考编码器输出。
| Decoder 结构 | 作用 |
|---|---|
| 带掩码多头注意力 | 让模型只能看已经生成的内容,不能偷看未来答案 |
| 多头交叉注意力 | 让解码器参考编码器输出的信息 |
Add & Norm | 稳定信息传递 |
FFN | 继续加工每个位置的向量 |
如果用翻译任务理解,编码器负责读懂原文,解码器负责生成译文。解码器既要看自己已经生成的内容,也要看编码器对原文的理解结果。
13、BERT:编码器路线的经典理解模型
视频最后提到BERT。BERT更偏向使用Transformer Encoder路线,它主要用于理解类任务,比如文本分类、语义匹配、问答检索和信息抽取。
这张图对应BERT。图中展示输入进入编码器,然后输出结果,底部标注Transformer经典架构,字幕里也提到“文本分类”。它讲的是编码器理解路线,不是解码生成路线。
| 模型方向 | 核心结构 | 典型任务 |
|---|---|---|
BERT | 偏Encoder | 文本分类、语义理解、问答匹配、信息抽取 |
GPT | 偏Decoder | 文本生成、对话、续写、代码生成 |
| 翻译模型 | Encoder-Decoder | 机器翻译、摘要生成、输入输出转换 |
最终理解:Encoder更偏读懂,Decoder更偏生成,BERT更偏理解路线,GPT更偏生成路线。
总结:一条视频看懂 Transformer 的真正价值
这条视频真正讲清楚的,不是某一个公式,而是Transformer的整体学习路线。自然语言先变成Token,Token再变成词向量;词与词之间通过Q/K/V计算相关性;相关性通过softmax变成注意力比例;多个注意力头从不同角度理解上下文;编码器负责理解输入,解码器负责生成输出。
| 学习阶段 | 应该记住什么 |
|---|---|
Token | 自然语言进入模型前要先切分成可处理单元 |
Embedding | 词向量让语义关系可以被计算 |
Q/K/V | Q负责问,K负责匹配,V负责提供内容 |
Attention | 先算相关性,再按权重汇总信息 |
| 多头注意力 | 模型从多个角度理解上下文 |
Encoder | 把输入编码成上下文向量 |
Decoder | 根据已有内容继续生成下一个Token |
BERT / GPT | 分别代表偏理解和偏生成的不同路线 |
最适合初学者记住的一句话:Transformer就是一套让模型学会“看上下文、分配注意力、理解输入、生成输出”的架构。
学习建议:第一次学Transformer,不要直接死磕公式。建议先按Token → Embedding → Q/K/V → QK 打分 → softmax → Attention → Multi-Head Attention → Add & Norm → Encoder → Decoder → BERT/GPT这条线理解,后面再回头看数学推导会顺很多。
参考关键词
Transformer、Attention、Self-Attention、QKV、Query、Key、Value、softmax、Multi-Head Attention、Add & Norm、Encoder、Decoder、BERT、GPT、Embedding、Token
点击回到顶部