news 2026/10/10 3:14:49

transformer架构的学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
transformer架构的学习笔记

学习参考视频:【Transformer 算法原理与实战】https://www.bilibili.com/video/BV1ej1EBWEWu?vd_source=885c958fed22b3aa519cf675b9bbe233 up 主:炮哥带你学。

对比了几个课程,感觉这套 Transformer 课程直击重点,对新手友好,对transformer架构感兴趣的 推荐去看该视频课程。

另外其实原up主也有好多套讲cv的课程,做相关方向的朋友可以去学习参考一下

下面是我对 Transformer 架构的简单理解与该视频的一些笔记。

Transformer整体架构示意图

注:该 Transformer 架构是用于机器翻译的。

首先看左边的输入部分,分为 input embeddings 和 positional encoding。

Inputs输入

公式:输入 = 词向量 + 位置编码

示意图

input embedding

embedding就是把 词变为词向量 的一个过程

目的:将每个自然语言词汇转化为对应的向量,该向量称为词向量。

公式:词向量 = 词嵌入矩阵 × 独热向量

示意图

独热向量(one-hot vector)只有一个位置为 1,其余均为 0。假设词表共有 v 个单词,则独热向量的维度为 v。

词嵌入矩阵形状为 d×v,初始化为随机值,属于可训练参数。

词嵌入矩阵与独热向量相乘相当于一次查表操作:若独热向量为 [1,0,…],则取出的词向量即为词嵌入矩阵的第一列。

(我习惯将每一行理解为一个词的向量表示,相当于做了一次转置,下文统一按"每一行为一个词向量"的约定来讲解。)

positional encoding位置编码

目的:为每个词向量添加对应的位置信息。

因为上一步得到的词向量不包含位置信息,而"我爱你"和"你爱我"含义并不相同,所以需要额外添加位置信息。

公式:

公式:
P E ( p o s , 2 i ) = sin ⁡ ( p o s 10000 2 i d ) P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 10000 2 i d ) \begin{align*} PE(pos,2i) &= \sin\left(\frac{pos}{10000^{\frac{2i}{d}}}\right) \\ PE(pos,2i+1) &= \cos\left(\frac{pos}{10000^{\frac{2i}{d}}}\right) \end{align*}PE(pos,2i)PE(pos,2i+1)​=sin(10000d2i​pos​)=cos(10000d2i​pos​)​

特点:第 2i 项与第 2i+1 项分别对应同一角度的正弦与余弦,二者平方之和恒等于 1。

举例子:

假设查表得到:“篮球” 词向量:[0.2,0.5,-0.1,0.3]

计算得到 PE()=[0,1,0,1]

所以 inputs=[0.2,1.5,-0.1,1.3]

注:原论文中每个词向量的维度为 512 维。

Encoder编码器

一共三个结构:Multi-Head Attention、Add&Norm、Feed Forward。

Multi-Head Attention多头注意力机制

多头注意力机制可以说是 Transformer 最重要的架构之一,如果这里能够理解,后面的结构就都比较简单了。

作用:让输入的每个词向量都融入其他词向量的信息,即融合上下文信息。

输入 input 的维度为 L×d,经过该结构后输出矩阵的维度仍为 L×d。

  • L:length,输入单词的数量
  • d:dimension,维度

所谓"多头",指的是多套 Q、K、V。

先介绍单头注意力机制,即只有一套 Q、K、V 的情况。

Attention公式:
Attention ( Q , K , V ) = softmax ( Q K ⊤ d k ) V \text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dk​​QK⊤​)V

其中,Q=Wq·input、K=Wk·input、V=Wv·input。
s o f t m a x ( z ) i = e z i ∑ j = 1 n e z j softmax(\boldsymbol{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{n} e^{z_j}}softmax(z)i​=∑j=1n​ezj​ezi​​
Wq、Wk、Wv 为可训练的权重矩阵,维度均为 d×dk。一般 dk≤d,降维可以减少计算开销。原论文中 d=512、dk=64,多头注意力共有 8 个头(8 套 QKV),由于 512=64×8,便于最后直接拼接。

符号含义

  • Q:Query 查询矩阵,代表要查询的内容,来自当前位置的 token,维度 n×dk。

  • K:Key 键矩阵,代表待匹配的索引键,是所有 token 的特征,维度 n×dk。

  • V:Value 值矩阵,代表最终要提取的信息,维度 n×dk。

  • QK^T:Q 和 K 的转置做矩阵乘法,得到相似度矩阵,衡量每个 Query 与各个 Key 之间的匹配程度。

  • dk:经过 Wq 等权重矩阵降维后的维度。

多头注意力机制示意图

提醒:原论文中 d=8×dk,所以右侧维度 8dk×d 应是一个方阵,图示此处略有小问题。

简单来说,多头注意力机制就是采用 8 套 QKV(即 8 套 Wq、Wk、Wv),分别独立执行注意力公式,QKV 各自降维到 dk(因为 d=8dk),最后将各头的结果直接拼接,从而保证输入输出维度不变。

注:自注意力机制中的"自"表示 Q、K、V 均来自同一个输入;若来自不同输入,则称为交叉注意力机制(Cross-Attention),解码器中便包含该结构。除此之外,二者在计算上没有区别。

Add&Norm残差连接与层归一化

Add残差连接

公式上很简单,就是输入矩阵与输出矩阵相加。
x o u t = x + SubLayer ( x ) \boldsymbol{x}_{out} = \boldsymbol{x} + \text{SubLayer}(\boldsymbol{x})xout​=x+SubLayer(x)

作用:

  1. 解决深度模型的梯度消失问题,梯度可以通过直连支路直接回传;
  2. 让网络只需要学习残差,学习目标从"完整映射"简化为"增量修正",深层网络更容易训练。
Norm归一化

论文里指的是 LayerNorm 层归一化(与之对应的还有一个叫批归一化 BN)。

公式:
LayerNorm ( x ) = γ ⋅ x − μ σ 2 + ε + β \text{LayerNorm}(\boldsymbol{x}) = \gamma \cdot \frac{\boldsymbol{x}-\mu}{\sqrt{\sigma^2+\varepsilon}} + \betaLayerNorm(x)=γ⋅σ2+ε​x−μ​+β

其中 γ 和 β 为可学习参数,μ 是均值,σ² 是方差,ε 是一个极小值(约等于零),用于防止分母为零,实际计算时可省略。

作用:

  1. 对每一个样本单独做归一化(BN 是对 batch 维度归一化,LN 是对特征维度归一化);
  2. 将特征拉到均值为 0、方差为 1 的分布,加速模型收敛、稳定训练;
  3. Transformer 使用 LN,不受 batch 大小影响,适配 NLP 变长序列。

✅ Transformer 原始论文顺序:先子层 → Add 残差相加 → LayerNorm
(现在很多实现是 Pre-LN:先 Norm 再进子层,原始论文是 Post-LN)

Feed Forward前馈神经网络

公式:
F F N ( x ) = max ⁡ ( 0 , x W 1 + b 1 ) W 2 + b 2 \mathrm{FFN}(\boldsymbol{x})=\max(0,\boldsymbol{x}\boldsymbol{W}_{1}+b_{1})\boldsymbol{W}_{2}+b_{2}FFN(x)=max(0,xW1​+b1​)W2​+b2​

W1、W2 为权重矩阵,b1、b2 为偏置矩阵,ReLU(x)=max(0,x)。

作用:逐 token 独立做非线性特征变换,每个词向量单独计算,token 之间互不影响。

结构如下:

前馈神经网络 = linear 层 → ReLU → linear 层

这里进行了维度变换,维度变换过程:

  1. 第一层权重 W1:512 → 2048(升维)
  2. 经过 ReLU 激活函数,引入非线性特征
  3. 第二层权重 W2:2048 → 512(降维)

维度变化作用:先升维扩空间、激活学特征,后降维做浓缩、保维度,既提升了模型拟合能力,又满足了 Transformer 残差连接的结构要求。

Decoder解码器

解码器的结构大体上与编码器相同,相同的部分不再赘述,主要在两种注意力机制的变体:Masked Multi-Head Attention(掩码注意力机制)和 Cross-Attention(交叉注意力机制)。

Masked Multi-Head Attention因果掩码注意力机制

公式:
Attention ( Q , K , V ) = softmax ( Q K ⊤ d k + m a s k ) V \text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}+mask\right)VAttention(Q,K,V)=softmax(dk​​QK⊤​+mask)V

图示:

mask 矩阵如图所示:左下角全为 0,右上角全为 -∞。

mask 矩阵的作用:将掩码加到注意力分数矩阵后再送入 softmax。softmax 对 -∞ 的计算结果趋近于 0,从而让当前 token 无法看到未来位置的 token,只能利用自身以及此前已出现的词,防止模型提前看到后面的单词,保证生成任务的因果性。

注:该结构也是 Transformer 在训练时能够实现并行的关键。

Cross-Attention交叉注意力机制

即为该结构,公式与多头注意力机制中的公式相同,区别在于这里的 Q、K 来自编码器,而 V 来自解码器。

作用:建立源句子与目标句子之间的关联。

架构总结

原论文中 N=6,整体结构如图左所示,图右是一些变体。

此处笔记写得并不详尽,原视频讲解得十分细致,感兴趣的朋友可前往下方视频链接深入学习。

【Transformer算法原理与实战】https://www.bilibili.com/video/BV1ej1EBWEWu?vd_source=885c958fed22b3aa519cf675b9bbe233

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 3:14:34

VMware Tools 8.8.0离线安装指南:老内核Linux虚拟机必备内核模块方案

简介:本资源为VMware Tools 8.8.0正式版安装包(构建号471268),面向Linux/Unix虚拟机用户及VMware平台运维人员,专用于提升虚拟机性能、图形渲染、I/O效率与宿主协同能力。压缩包含2477个文件,主体为1598个编…

作者头像 李华
网站建设 2026/10/10 3:14:32

轻量级前端知识竞赛系统:离线可用、实时排名、自动判分

简介:这是一套基于VC6.0开发的C知识竞赛系统完整源码工程,面向高校计算机专业学生、课程设计实践者及C初学者,解决在线答题、题库管理与实时排名等典型教学类竞赛场景需求。资源包含61个文件,涵盖11个cpp核心逻辑模块(…

作者头像 李华
网站建设 2026/10/10 3:14:28

策略模式实战:从订单计价if-else重构到设计模式落地

1. 项目概述:从一次订单计价重构说起策略模式这个名词,干过一段时间后端的应该都不陌生。打开IDE搜一下,规模稍微大一点的工程里基本都能看到一堆以Strategy结尾的类。这篇是这个设计模式系列的第五篇,我们专门来聊策略模式。我会…

作者头像 李华
网站建设 2026/10/10 3:14:23

华为MetaERP一套科目,三种视角经营科目表 × 集团科目表 × 备选科目表(中国) —— 编码设计哲学、实现逻辑与底层原理一、先看事实:三个号码不是乱编的你给出的三个编码,长度不同、结构不同

一套科目,三种视角经营科目表 集团科目表 备选科目表(中国) —— 编码设计哲学、实现逻辑与底层原理一、先看事实:三个号码不是乱编的你给出的三个编码,长度不同、结构不同、用途不同。这不是"同一个科目的三个…

作者头像 李华
网站建设 2026/10/10 3:14:14

Flutter on OpenHarmony 数据持久化实战:电子合同场景选型与踩坑

从第一次在模拟器上把Flutter应用跑进OpenHarmony,到真正把完整的电子合同签署App落地,最折磨人的其实不是UI适配,反而是那些看起来没什么技术含量的数据持久化。我最初想得很简单:数据库存一下合同内容,本地存一下PDF…

作者头像 李华
网站建设 2026/10/10 3:13:41

信息安全基础知识全景梳理:从CIA三元组到纵深防御的完整指南

很多人刚开始接触信息安全技术基础知识时,会陷入一种奇怪的状态:教程收藏了几十个,工具下载了一大堆,安全新闻也天天刷,但一问到本质问题就卡壳——信息安全和网络安全到底有什么区别?加密算法为什么分对称…

作者头像 李华