Transformer 架构学习笔记

张开发
2026/4/9 5:08:10 15 分钟阅读

分享文章

Transformer 架构学习笔记
Transformer 架构学习笔记背景2017 年Google 团队发表了论文《Attention Is All You Need》首次提出了Transformer架构。该架构完全基于自注意力机制Self-Attention摒弃了传统的循环神经网络RNN或卷积神经网络CNN成为后续大模型如 BERT、GPT 等发展的基础。1. Transformer 之前如何处理自然语言1.1 前馈神经网络FNN架构图示例输入水是有毒的什么是合并词向量由于 FNN 要求输入是固定长度的不能像 RNN 那样逐个输入词所以需要把这 4 个向量合并成一个向量。两种常见合并方式平均Average将 4 个向量的每个维度分别求平均值得到一个新向量。例如第一个维度(0.2 0.0 0.9 0.1) / 4 0.3依此类推。缺点完全丢失了词的顺序信息“水有毒”和“有毒水”会被当成一样的。拼接Concatenation将 4 个向量首尾连接成一个更长的向量。例如 4 个 4 维向量拼接成 1 个 16 维向量。FNN 的缺点无法理解词语顺序缺乏上下文建模能力输入维度固定句子长度变化时无法处理比如 3 个词和 5 个词的句子拼接后维度不同。1.2 循环神经网络RNNRNN 的优势按时间顺序token 顺序处理输入建模词序具有记忆机制建模上下文依赖支持不定长输入计算过程W, U, V权重矩阵h0初始隐藏状态g激活函数以h1计算过程为例h1g(t1 * W U * h0)y1g(h1 * V)至此我们通过计算得到了两个输出分别是 h1 和 y1其中y1是我们需要翻译的结果I,h1则是携带了上一步的token信息参与下一步的计算。RNN 的局限输入输出长度必须相等如我爱水课 → “I love water class”1.3 编码器-解码器结构Encoder-DecoderRNN解决了输入不定长问题但是没能解决输入和输出不等长的问题。为了解决输入输出不等长的问题将输入和输出拆开我们就得到了编码器 - 解码器结构 如图所示什么是上下文向量 C它是对整个输入序列的语义编码是一个固定长度的向量涵盖了整个输入文本的语义信息。最简单的编码方式C 最后一个时间步的隐藏状态输出(h4)它将作为 Decoder 的输入用于生成目标序列。优点编码器和解码器职责分离输入信息被编码为固定长度的上下文向量 C缺点上下文向量c 多次解码可能导致上下文向量c的信息被稀释导致后续计算不准确。改进让上下文向量C参与每一步的解码过程改进后解码器的每一步都会重新参考同一个上下文向量 C相当于每一步都在问“我刚才读到的输入信息是什么”这在一定程度上缓解了信息稀释的问题。但仍未解决的核心问题遗忘问题Long-Term Forgetting即使让 C 参与每一步它仍然是一个固定长度的向量。当输入句子很长时比如一篇 1000 字的文章C 必须把所有信息压缩成有限长度的向量这会导致早期输入的信息如句首的关键词在压缩过程中被“挤掉”距离较远的依赖关系如第 1 个词和第 500 个词之间的关系很难被 C 完整保留解码器越往后生成对输入开头的“记忆”越模糊1.4 注意力机制Attention Mechanism解决的问题长序列中的遗忘问题不同时间步对当前输出的重要性不同核心思想为每个时间步的输入分配不同权重上下文向量 C 是加权和结构如下计算过程在计算C0的时候我们给h1的权重更高让模型更能关注到“我”这个信息。在计算C1的时候我们给h2更高的权重让模型更能关注到“爱”这个信息如下图所示1.5 小结Transformer 之前的序列转导模型基于 RNN / CNN使用编码器-解码器结构引入注意力机制增强需要说明的是注意力机制在 Transformer 架构提出之前就已经存在。到此为止模型其实已经能够较好地处理上下文和位置关系。但为什么 AI 还没有迎来爆发核心原因在于上述所有模型RNN、LSTM、带注意力的 Encoder-Decoder都是串行计算的。每一步计算都必须依赖前一步的输出结果无法并行处理训练速度极慢难以在工程层面进行大规模扩展串行计算成为了真正的性能瓶颈而非模型表达能力。2. Transformer 架构核心特点完全摒弃 RNN / CNN仍使用编码器-解码器结构完全基于注意力机制2.1 整体结构2.2 计算过程以我爱水课为例获取文字的矩阵信息Embedding使用傅里叶变换位置编码获取位置信息叠加得到1×512的矩阵包含文字和位置信息这里叠加可以理解成两个矩阵的加法得到的新矩阵同时包含语义和位置信息。2.3 自注意力机制Self-Attention—— 核心基础在介绍多头注意力之前必须先理解单头自注意力是如何工作的。2.3.1 为什么要用自注意力之前我们得到每个词的1×512矩阵包含了词本身的语义信息Embedding位置信息Positional Encoding但缺少了上下文信息比如“水” 和 “有毒” 之间的关系“我” 和 “爱” 之间的动作关系自注意力机制的目的让每个词都“看到”句子中的所有其他词并计算出它们之间的相关性权重。2.3.2 Q、K、V 是什么对于输入矩阵X形状n × 512n 是句子长度我们通过三个不同的权重矩阵W_Q、W_K、W_V每个都是512 × 512分别计算得到三个新矩阵QQuery查询Q X · W_Q代表“当前词想查询什么”KKey键K X · W_K代表“每个词能提供的标签”VValue值V X · W_V代表“每个词实际携带的信息”形象理解Query 相当于你在搜索引擎里输入的“问题”Key 相当于网页的“标题/关键词”Value 相当于网页的“正文内容”通过匹配 Query 和 Key决定从 Value 中取多少信息。2.3.3 注意力权重计算Scaled Dot-Product Attention步骤 1计算注意力分数用 Q 和 K 做点积得到一个n × n的分数矩阵我们通过Q和K的点积计算并进行归一化的处理就得到了每个单词在这句话中的权重。计算公式如下其中分子部分表示第 i 个词对第 j 个词的关注程度未归一化分母部分除以√d_kd_k 是 K 的维度这里为 512防止点积结果过大导致梯度消失Softmax 归一化对每一行做 Softmax得到注意力权重矩阵Attention_Weights形状n × n每行之和为 1加权求和用归一化后得到的权重矩阵乘以 V 得到最终的上下文表示。2.3.4 一个具体例子句子“我 爱 水课”计算 “爱” 对 “我”、“爱”、“水课” 的注意力分数可能得到[0.2, 0.7, 0.1]“爱” 最关注自己其次关注 “我”然后用这个权重去加权 V 中的信息得到 “爱” 的新表示这个表示中包含了完整的句子信息语义位置还包含了每个词对其它词的关注度权重。结果每个词的输出向量都融合了整个句子的上下文信息。2.4 多头注意力机制Multi-Head Attention有了单头自注意力的基础我们再来理解多头注意力。2.4.1 为什么需要多个头单头注意力只能学习一种相关性模式例如可能只关注相邻词可能只关注句首句尾但真实语言中一个词可能同时存在多种关系“苹果” 可能既和 “吃” 有动作关系又和 “水果” 有类别关系还可能和 “公司” 有品牌关系多头注意力的做法将 Q、K、V 分别切分成 h 份例如 8 个头每个头维度 512/8 64每个头独立计算自注意力每个头可以学习不同的注意力模式2.4.2 计算过程将 Q、K、V 分别拆成 h 个低维矩阵每个维度n × 64每个头独立执行单头注意力将所有头的输出拼接Concat回n × 512通过一个线性层W_O512 × 512融合多头信息2.4.3 多头注意力的优势增强表达能力每个头学习不同的注意力模式参数效率与并行性拆分为多个头并行计算充分利用 GPU梯度更稳定小维度64计算更稳定允许模型“分而治之”不同头专注不同子任务2.4.4 为什么最后还需要一个线性层多头输出只是简单拼接不同头的特征是并列的、没有交互。通过W_O线性层让不同头的信息加权融合形成统一的表示。2.5 小结Transformer 如何解决串行计算问题在 RNN 中下一步计算必须等上一步完成串行在 Transformer 中输入是一次性全部传入的自注意力通过矩阵运算Q·K^T一次性计算出所有词对之间的权重得到一个n × n的注意力矩阵包含了完整的Token 信息位置信息上下文信息注意力权重这就是 Transformer 能够并行计算的核心原因。2.6 残差连接Residual Connection简单来说残差连接就是把层的输入直接“跳过”该层加到输出上。这样做可以缓解信息在多层传递中被稀释的问题让模型训练更稳定。本文不再展开感兴趣可自行查阅相关资料。2.7 带掩码的多头注意力Masked Multi-Head Attention这是解码器Decoder中使用的一种注意力机制目的是在生成当前位置的输出时屏蔽掉未来的信息防止“提前看到答案”。由于本文定位为入门介绍此处不再深入讲解。结语本文主要梳理了 Transformer 的核心思想与关键组件重点介绍了从 RNN/CNN 到注意力机制的演进过程以及自注意力与多头注意力的基本原理。更深入的内容如掩码机制、Feed-Forward Network、Layer Norm 等暂不展开感兴趣的读者可结合论文《Attention Is All You Need》或相关视频进一步学习。参考资料感谢 B站 UP主“读论文的小羊”提供的视频讲解本文内容参考自该视频特此致谢视频链接https://www.bilibili.com/video/BV1XEanzkEAm/

更多文章