大模型之Attention Is All You Need详解:Transformer如何用注意力重写序列建模

写在前面

从零走向AGI 】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。

项目地址 🔗:https://github.com/AI-mzq/From-Zero-to-AGI.git

魔方AI空间

猫先生

从零走向AGI

面试面经

AIGC算法岗/开发岗面试面经交流社群 (涵盖AI Agent、AIGC图像创作、AI视频、LLM大模型、AI多模态、数字人、传统深度学习、具身智能等AIGC面试干货资源)欢迎大家加入:https://t.zsxq.com/YtJ09

Attention Is All You Need详解:Transformer如何用注意力重写序列建模

导读

2017 年的《Attention Is All You Need》提出 Transformer,直接移除了序列模型中的循环和卷积,只用注意力机制完成编码、解码和跨序列信息交互。在论文发表前,机器翻译主流方案依赖 RNN/LSTM 或 CNN:前者必须按时间步计算,后者需要堆叠卷积才能扩大感受野。Transformer 把整段序列一次性映射成 token 表示,训练阶段可以高度并行,同时让任意两个位置之间只经过一层注意力连接。

模型采用标准 encoder-decoder 结构。Encoder 和 decoder 各堆叠 6 层;每层包含多头自注意力和前馈网络,decoder 额外加入对 encoder 输出的 cross-attention。Scaled Dot-Product Attention 用 Q K T QK^T QKT 计算相关性,Multi-Head Attention 把表示投影到多个子空间并行处理,正弦位置编码则补回"第几个 token"这一顺序信息。

在 WMT14 英德翻译上,Transformer-Base 达到 27.3 BLEU,Transformer-Big 达到 28.4;英法任务达到 41.8 BLEU,8 张 P100 训练约 3.5 天。论文还用消融验证了多头数量、模型宽度、位置编码和 dropout 的影响,并在英文成分句法分析上展示了迁移能力。

猫先生认为,这篇论文的历史意义不只是提出一个更快的翻译模型,而是把"序列必须按顺序处理"从架构前提变成了可被重新设计的工程选择。Transformer 的通用接口------token 表示、注意力混合、位置注入和逐位置前馈网络------后来成为大语言模型的共同底座。
论文标题 :Attention Is All You Need

论文地址https://arxiv.org/abs/1706.03762

论文 HTML 全文https://arxiv.org/html/1706.03762

PDFhttps://arxiv.org/pdf/1706.03762

原文脉络

论文依次说明 RNN/CNN 的顺序计算瓶颈,给出 Transformer 架构和注意力公式,比较 self-attention 与循环/卷积层的复杂度,再介绍训练细节和翻译、句法分析实验。

1-2. 背景与问题:序列建模为什么需要摆脱循环

RNN 在第 t t t 个位置依赖 h t − 1 h_{t-1} ht−1,所以一个样本内部的计算无法并行;序列越长,训练吞吐越容易受限。CNN 可以并行计算,但相距很远的两个 token 需要经过多层卷积,信息路径随距离增长,模型还要在卷积核大小和层数之间做折中。

Attention 允许当前位置直接读取序列中任意位置的表示,但当时通常只是 RNN encoder-decoder 的辅助模块。Transformer 的激进之处在于:把循环本身去掉,让全局注意力承担序列内依赖建模 。代价是每层 self-attention 对长度为 n n n 的序列需要 O ( n 2 d ) O(n^2d) O(n2d) 的相关性计算,这个代价在短文本上换来了并行性和较短的信息路径。

3. 模型架构:Encoder、Decoder 与注意力模块

3.1 Encoder 与 Decoder 堆栈

图 1:Transformer 的 encoder-decoder 总体结构。左侧 encoder 将输入序列编码为表示,右侧 decoder 以 masked self-attention 和 encoder-decoder attention 自回归地产生输出。来源:论文 Figure 1。

Encoder 由 N = 6 N=6 N=6 个相同层组成,每层依次是 Multi-Head Self-Attention 和 position-wise Feed-Forward Network。每个子层外都有残差连接与 LayerNorm:

L a y e r N o r m ( x + S u b l a y e r ( x ) ) . \mathrm{LayerNorm}(x+\mathrm{Sublayer}(x)). LayerNorm(x+Sublayer(x)).

所有子层和 embedding 的维度为 d m o d e l = 512 d_{model}=512 dmodel=512。Decoder 同样是 6 层,但每层多一个 encoder-decoder attention。Decoder 的 self-attention 使用上三角 mask,使位置 i i i 只能访问已经生成的 ≤ i \leq i ≤i 位置,避免训练时偷看未来 token。

3.2 Scaled Dot-Product Attention

注意力把 query 与一组 key-value 对映射为加权后的 value。Transformer 使用缩放点积形式:

A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V . \mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^{T}}{\sqrt{d_k}}\right)V. Attention(Q,K,V)=softmax(dk QKT)V.

点积 Q K T QK^T QKT 提供 query-key 兼容度,softmax 将兼容度变成权重,再对 V V V 加权求和。除以 d k \sqrt{d_k} dk 是为了抑制高维点积的方差,避免 softmax 进入梯度很小的区域;点积形式还能直接使用高效矩阵乘法。

3.3 Multi-Head Attention

图 2:左图是 Scaled Dot-Product Attention 的计算路径,右图展示多个 attention head 并行投影、计算并拼接。来源:论文 Figure 2。

Multi-Head Attention 不在一个完整维度上只做一次加权,而是把 Q , K , V Q,K,V Q,K,V 分别投影到 h h h 个较小子空间:

M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a d 1 , ... , h e a d h ) W O , \mathrm{MultiHead}(Q,K,V)=\mathrm{Concat}(\mathrm{head}_1,\ldots,\mathrm{head}_h)W^O, MultiHead(Q,K,V)=Concat(head1,...,headh)WO,

h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i V ) . \mathrm{head}_i=\mathrm{Attention}(QW_i^Q,KW_i^K,VW_i^V). headi=Attention(QWiQ,KWiK,VWiV).

Base 模型使用 h = 8 h=8 h=8,每个 head 的 d k = d v = 64 d_k=d_v=64 dk=dv=64,总计算量与单个 512 维 attention 接近。不同 head 可以分别关注词法、句法、位置或长距离关系,避免单头加权平均把不同类型的信息抹平。

3.4 三种注意力使用方式

Transformer 在三个位置调用 Multi-Head Attention:

  1. Encoder self-attention: Q , K , V Q,K,V Q,K,V 都来自 encoder 当前层,每个输入位置可以读取整段输入。
  2. Decoder masked self-attention: Q , K , V Q,K,V Q,K,V 来自 decoder,因 causal mask 只能读取当前位置及其左侧历史。
  3. Encoder-decoder attention: Q Q Q 来自 decoder, K , V K,V K,V 来自 encoder 输出,生成每个目标 token 时可以对齐输入序列。

猫先生认为,Multi-Head Attention 的价值不在于简单复制 8 次 attention,而在于给模型提供了多套"相关性坐标系"。同一层可以同时处理当前位置、远距离依赖和跨序列对齐。

3.5 Position-wise FFN、Embedding 与位置编码

注意力负责 token 之间的信息混合,FFN 则对每个位置独立做非线性变换:

F F N ( x ) = max ⁡ ( 0 , x W 1 + b 1 ) W 2 + b 2 . \mathrm{FFN}(x)=\max(0,xW_1+b_1)W_2+b_2. FFN(x)=max(0,xW1+b1)W2+b2.

Base 配置中 d m o d e l = 512 d_{model}=512 dmodel=512、 d f f = 2048 d_{ff}=2048 dff=2048。输入输出 embedding 和 pre-softmax 线性投影共享权重,embedding 输出再乘以 d m o d e l \sqrt{d_{model}} dmodel 。

因为模型没有 RNN 或卷积,token embedding 需要叠加位置编码。论文采用固定的正弦、余弦函数:

P E ( p o s , 2 i ) = sin ⁡ ( p o s / 10000 2 i / d m o d e l ) , PE_{(pos,2i)}=\sin\left(pos/10000^{2i/d_{model}}\right), PE(pos,2i)=sin(pos/100002i/dmodel),

P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s / 10000 2 i / d m o d e l ) . PE_{(pos,2i+1)}=\cos\left(pos/10000^{2i/d_{model}}\right). PE(pos,2i+1)=cos(pos/100002i/dmodel).

不同维度使用不同频率,波长从 2 π 2\pi 2π 到 10000 ⋅ 2 π 10000\cdot2\pi 10000⋅2π。作者希望固定的相对位移关系帮助模型外推更长序列;消融中 learned positional embedding 与正弦编码的结果几乎相同。

4. 为什么选择 Self-Attention

论文用每层复杂度、最少顺序操作数和最长信息路径比较 self-attention、RNN、卷积和受限 attention。Self-attention 的单层复杂度为 O ( n 2 d ) O(n^2d) O(n2d),但顺序操作数为 O ( 1 ) O(1) O(1),任意两点路径长度也是 O ( 1 ) O(1) O(1);RNN 的顺序操作和最长路径都是 O ( n ) O(n) O(n)。因此在论文涉及的句子长度中,self-attention 通常更容易并行,也更容易学习远距离依赖。

代价是长度较大时的二次显存与计算。局部受限 attention 可把复杂度降到 O ( r n d ) O(rnd) O(rnd),但信息路径会变成 O ( n / r ) O(n/r) O(n/r)。训练可并行,decoder 推理仍按 token 顺序生成。

5. 训练设置:让架构优势真正落地

英德任务使用约 450 万句对和约 3.7 万词共享 BPE 词表;英法任务使用约 3600 万句对和 3.2 万 word-piece 词表。训练按相近长度组成 batch,每个 batch 约含 25k source 和 25k target tokens。

优化器为 Adam,参数 β 1 = 0.9 \beta_1=0.9 β1=0.9、 β 2 = 0.98 \beta_2=0.98 β2=0.98、 ϵ = 10 − 9 \epsilon=10^{-9} ϵ=10−9。学习率采用带 warmup 的反平方根衰减:

l r a t e = d m o d e l − 0.5 ⋅ min ⁡ ( s t e p − 0.5 , s t e p ⋅ w a r m u p − 1.5 ) , \mathrm{lrate}=d_{model}^{-0.5}\cdot\min(\mathrm{step}^{-0.5},\mathrm{step}\cdot\mathrm{warmup}^{-1.5}), lrate=dmodel−0.5⋅min(step−0.5,step⋅warmup−1.5),

warmup 步数为 4000。Base 使用 8 张 P100 训练约 12 小时,Big 训练约 3.5 天。残差连接和 embedding+position encoding 使用 dropout,Base 的 dropout 为 0.1;label smoothing ϵ l s = 0.1 \epsilon_{ls}=0.1 ϵls=0.1 能降低困惑度并提高 BLEU。

6. 实验结果与消融

6.1 机器翻译

Transformer-Base 在 WMT14 英德测试集达到 27.3 BLEU,Transformer-Big 达到 28.4 BLEU;英法任务 Big 模型达到 41.8 BLEU,并以单模型、约 3.5 天训练成本刷新当时结果。摘要指出,英德结果比当时包含 ensemble 的最佳结果高出 2 BLEU 以上。

6.2 模型变化

消融显示,单头 attention 的 BLEU 约为 24.9,4 头约 25.5,8 和 16 头约 25.8,头数继续增加到 32 反而下降。减小每个 head 的 d k d_k dk 也会损失效果,说明"多个子空间"与每个子空间的表达容量需要平衡。增加层数、模型维度和 FFN 宽度通常带来收益,dropout 对抑制过拟合有效;learned 位置编码与正弦编码几乎持平。

6.3 英文成分句法分析

在 Penn Treebank/WSJ 句法分析任务上,Transformer 也能迁移到非翻译场景。仅使用 WSJ 数据时 F1 为 91.3,加入半监督数据后达到 92.7,说明 self-attention 学到的表示不只服务于翻译。

7. 局限与后续影响

Transformer 把训练并行性和长距离路径优化得很好,但 self-attention 的 O ( n 2 ) O(n^2) O(n2) 成本限制了超长上下文;decoder 生成仍然串行,推理延迟也没有被彻底消除。位置编码、注意力稀疏化、线性 attention 和 KV cache 等后续研究,基本都在回应这两类边界。

论文的实验重点是机器翻译和句法分析,不能直接说明模型在所有序列任务上都同样有效;更大的模型和数据也会带来算力、内存与过拟合问题。它真正留下的,是一个可扩展的模块组合,而不是一组对所有任务固定不变的超参数。

总结:注意力成为主干之后

《Attention Is All You Need》的主线可以浓缩为:用 self-attention 取代循环,靠 Multi-Head Attention 保留多种依赖关系,用位置编码恢复顺序,再用 FFN 和残差归一化堆叠出可训练的 encoder-decoder。

Transformer 的优势来自三种改变:训练可并行;任意位置之间的路径短;输入、输出和跨序列对齐都由同一种注意力接口表达。代价是长序列的二次复杂度和 decoder 生成的顺序性,但这组权衡开启了 BERT、GPT、T5 以及多模态 Transformer 的路线。

参考资料

  1. Attention Is All You Need
  2. 论文 HTML 全文
  3. 论文 PDF

推荐阅读

► 技术资讯: 魔方 AI 新视界

► 项目应用:开源视界

► 技术专栏: 多模态大模型最新技术解读专栏 | AI 视频最新技术解读专栏 | 大模型基础入门系列专栏 | 视频内容理解技术专栏 | 从零走向 AGI 系列

相关推荐
thesky12345629 分钟前
27届大模型面试准备(七十四):大模型长上下文推理与服务化工程——分块 Prefill、KV 卸载与 Ring Attention
大模型·服务化·chunked prefill·长上下文推理·kv卸载·ring attention·序列并行
小白说大模型31 分钟前
AI 提示词专栏:Zero-Shot 与 One-Shot Prompt 的差别与适用场景
大数据·数据库·人工智能·sql·深度学习·prompt
寻道码路1 小时前
大模型工程化实战(七):JSON Schema 强约束——模型吐的 json 不合规?schema 校验不通过,重试、兜底、降级一条龙
大模型·agent·rag·json schema·ai工程化·llmops`
Ado柳贯一1 小时前
Transformer模型详解-CSDN发布版
人工智能·深度学习·transformer
阳明山水2 小时前
概念漂移分类与自适应策略解析
人工智能·深度学习·算法·机器学习·架构
KeepSeek2 小时前
大模型推理优化面试题
大模型
deepseek232 小时前
Claude Fable 5.1 深度拆解:推理强度、缓存降价,Agent 工作流成本如何省 45%
大模型·claude·ai agent
牧羊人.3332 小时前
计算机视觉基础第15章|DNN实现图像风格迁移
图像处理·人工智能·深度学习·opencv·计算机视觉
Mickey Q2 小时前
【深度学习】权重衰减与 Dropout
人工智能·深度学习