Transformer 架构与自注意力机制详解
发布时间:2026/6/28 2:59:34
分类:文化教育
浏览:1234

1. 核心设计哲学摒弃循环与卷积在Transformer之前处理序列数据如文本主要依赖RNN循环神经网络和LSTM。它们的缺点是必须按顺序逐个处理单词无法并行计算且难以处理长距离依赖关系。Transformer的革命性在于它完全依靠“注意力机制Attention”允许模型在处理某个词时直接“看”到句子中所有其他的词并计算出它们与当前词的相关性权重。这带来了两个巨大优势并行计算所有词的位置可以同时进行计算极大加速了训练。长距离依赖无论两个词隔得多远它们之间的路径长度都是1直接计算注意力分数。2. 整体骨架编码器-解码器架构原始的Transformer是一个典型的Seq2Seq序列到序列模型由两部分组成现代GPT系列只使用了其中的解码器部分编码器Encoder负责读取完整的输入句子将其提炼为富含上下文信息的向量表示。它的结构是双向的能看到左边和右边的词。解码器Decoder负责根据编码器的输出一步步地生成目标句子。它的结构是单向的因果的在预测当前词时只能看到已经生成的前面的词不能看到未来的词。3. 微观组件拆解核心零件无论是编码器还是解码器都是由多个相同的层Layer堆叠而成的。每一层主要由以下四个核心组件构成1多头自注意力机制Multi-Head Self-Attention—— 最核心的发明这是Transformer的灵魂。它的工作原理可以分为三步缩放点积注意力对于输入的每个词都会生成三个向量Query查询、Key键和Value值。计算过程是当前词的Q与所有词的K做点积得到注意力分数相似度除以缩放因子√d防止梯度消失然后通过Softmax归一化为概率最后用这个概率去加权求和所有词的V。数学公式Attention(Q,K,V) softmax(QK^T / √d) * V多头机制模型不只用一组Q、K、V而是并行使用多组如8-64组。每一组被称为一个“头”。每个头负责关注不同的方面例如一个头关注语法另一个头关注指代关系另一个关注词义。最后将所有头的输出拼接起来。直观理解当模型处理句子“我吃了一个苹果”中的“吃”时注意力机制会让“吃”这个词去“询问”所有词发现“我”和“苹果”与“吃”的相关性最高因此会把这两个词的信息聚合到“吃”的表示中。2位置编码Positional Encoding—— 补充顺序信息由于注意力机制本身没有顺序感它把句子当作无序的袋子为了让模型知道词的位置需要注入位置信息。原始论文使用正弦和余弦函数来计算位置向量并将其直接加到输入词向量上。现在的模型如GPT更常用可学习的位置嵌入Learned Positional Embedding。3前馈神经网络Feed-Forward Network, FFN在注意力层之后每个位置会单独通过一个全连接网络。这个网络通常是一个两层的线性变换中间有一个ReLU或GELU激活函数。公式FFN(x) max(0, xW1 b1)W2 b2作用注意力层是做线性加权聚合信息而FFN引入非线性变换负责对聚合后的信息进行复杂的特征转换和记忆。可以理解为注意力负责“在哪里找信息”FFN负责“对这个信息做什么处理”。4残差连接Residual Connection与层归一化Layer Normalization残差连接每个子层注意力层和FFN的输入都会直接加到输出上Output LayerNorm(x Sublayer(x))。这解决了深层网络中的梯度消失问题使得模型可以轻松堆叠上百层。层归一化对单个样本的所有特征进行归一化使训练更加稳定。4. 编码器与解码器的关键区别虽然两者都由上述组件构成但有一个关键的结构差异编码器Encoder包含自注意力层和FFN。自注意力是双向的即[CLS] I love you [SEP]中的“love”可以看到“you”也可以看到“I”。解码器Decoder包含掩码自注意力层、交叉注意力层和FFN。掩码自注意力在预测当前词时通过一个“上三角掩码矩阵”将未来位置的信息遮住设为负无穷确保预测第t个词时只能看到第1到第t-1个词。交叉注意力Cross-Attention这是解码器独有的。它的Q来自解码器上一层的输出正在生成的词而K和V来自编码器的最终输出输入句子的语义。这让解码器在生成每个词时都能动态地从源句子中“查阅”最相关的信息类似于机器翻译中的对齐机制。5. 数据完整流动过程以机器翻译为例英译中假设输入英文句子I am a student输出中文我 是 一个 学生。输入嵌入将[I, am, a, student]转换为向量并加上位置编码。编码器处理向量经过N层编码器每层先做多头自注意力再做FFN。在这个过程中student会注意到I和am最终输出的是一组富含上下文的记忆向量共4个向量。解码器初始化输入一个起始标记START加上位置编码进入解码器。解码器生成迭代过程第一层做掩码自注意力此时只有一个词没影响。进入交叉注意力用START的Q去查询编码器输出的4个K和V计算出最应该关注源句子中的哪个词大概率关注I因为要开始翻译主语了。经过FFN输出向量送入最后的线性层和Softmax预测出第一个词我。循环生成将START和我作为新的输入再次送入解码器。此时掩码自注意力允许我看到START但不允许看到未来词。交叉注意力帮助生成是。如此循环直到生成终止标记END。6. Transformer的现代演变变体虽然原理相同但现代主流模型对原始架构进行了简化或调整GPT系列自回归只使用解码器去掉了编码器和交叉注意力层。因为其任务是预测下一个词只需要单向注意力。它采用堆叠的“掩码自注意力 FFN”结构。BERT系列自编码只使用编码器采用双向注意力。它通过掩码语言模型MLM进行预训练。T5/GLM保留完整的Encoder-Decoder结构适用于需要理解输入并生成输出的任务如翻译、摘要。7. 总结Transformer为什么这么强特性说明全局感受野任何两个词之间信息传递路径长度为 O(1)解决了RNN的长期遗忘问题。并行计算所有位置的注意力分数可以同时用矩阵乘法算出极大利用了GPU算力。可解释性可以可视化注意力权重矩阵直观看到模型在关注哪些词使得调试成为可能。可扩展性残差连接和LayerNorm使得模型可以轻易扩展到数千亿参数如GPT-4且增加层数效果持续提升。