文章标签:#Transformer #自注意力机制 #深度学习 #自然语言处理 #大模型架构
文章目录
-
- 它到底解决了什么问题?
- 自注意力到底在做什么?
- 为什么还要多头?
- [为什么 Transformer 不等于"只有注意力"?](#为什么 Transformer 不等于“只有注意力”?)
- [Transformer 骨架长什么样?](#Transformer 骨架长什么样?)
- 它为什么影响这么大?
- 最后只记一句
- 这里给些参考与延伸阅读
很多人第一次接触 Transformer,只记住了标题:Attention Is All You Need。但这句话最容易让人误会的地方,恰恰是"all"。
Transformer 当然靠注意力起家,但它真正带来的改变,不是"只剩注意力",而是把序列建模从"按顺序传递信息"改成了"按相关性组织信息"。如果只记一句,可以记这个版本:
自注意力决定"该看哪里",FFN 决定"看完之后怎么加工"。

图 1:Transformer 的关键变化,不是给旧架构补一个模块,而是直接换了一种组织信息的方式。
它到底解决了什么问题?
在 Transformer 之前,主力是 RNN、LSTM、GRU。它们的问题很明显:必须按顺序处理,训练难并行;信息要沿时间步往后传,距离一长就容易衰减。CNN 虽然能并行,但想看远距离关系,通常也得堆很多层。
Transformer 的判断很直接:既然注意力可以直接连接任意两个位置,那就没必要再让信息绕着时间步慢慢传。Attention Is All You Need 真正想说的是:做序列建模,不必再依赖循环和卷积。
自注意力到底在做什么?
可以把它理解成"眼神聚焦"。一句话里,不同词的重要性并不一样。模型也一样:它会让每个词去看其他词,判断谁和我最相关、谁最值得参考。
text
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k))V
公式看着吓人,核心其实只有四步:
- 把输入投影成
Q、K、V - 用
Q和K算相关性分数 - 用
softmax把分数变成权重 - 用权重对
V加权求和,得到新的表示

图 2:先算相关性,再分配注意力,最后提取信息。
这里顺手澄清一个常见误解:Q、K、V 不是输入自带的三个标签,而是同一个输入经过三组可学习矩阵后的三种投影。你也可以把它们理解成三个问题:
Q:我现在在找什么?K:我能提供什么线索?V:如果你关注我,我该给什么内容?
为什么还要多头?
如果只有一组 QKV,模型就只能用一种视角理解整句话。多头注意力的价值,不是重复算几次,而是把不同关系拆到不同子空间里并行建模。

图 3:单头像只戴一副眼镜,多头像同时切换几种观察镜片。
这也是为什么不同的头,常常会分别关注主谓关系、局部上下文、指代关系或长距离依赖。
为什么 Transformer 不等于"只有注意力"?
因为注意力更像"信息路由",并不擅长充分加工信息。真正把内容继续变换的是 FFN,也就是前馈网络。所以更准确的说法不是"注意力就是全部",而是:
注意力负责连接信息,FFN 负责变换信息。
除此之外,还有两个配角也不能省:
- 位置编码:告诉模型顺序,不然它天然不知道"猫追狗"和"狗追猫"不同
- 掩码:在生成任务里挡住未来信息,避免模型偷看答案
Transformer 骨架长什么样?

图 4:编码器负责看懂输入,解码器负责一步步生成输出。
从骨架上看,Transformer 是一套组合拳:
- 编码器负责理解输入
- 解码器负责生成输出
- 每层都在交替做"注意力 + FFN"
- 解码器里的自注意力要加因果掩码
- 编码器输出会通过交叉注意力提供给解码器
所以,Transformer 真正强的地方,从来不是"注意力单兵作战",而是整套组件配合。
注意:这个里边的transformer是最初为 翻译任务而实现的,所以存在 编码器 与解码器。 理解这个才能理解为什么后面GPT只用了DECODER。
你现在再来品品:
#mermaid-svg-WGZHwkr0B01mv2TJ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-WGZHwkr0B01mv2TJ .error-icon{fill:#552222;}#mermaid-svg-WGZHwkr0B01mv2TJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-WGZHwkr0B01mv2TJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-WGZHwkr0B01mv2TJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-WGZHwkr0B01mv2TJ .marker.cross{stroke:#333333;}#mermaid-svg-WGZHwkr0B01mv2TJ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-WGZHwkr0B01mv2TJ p{margin:0;}#mermaid-svg-WGZHwkr0B01mv2TJ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ .cluster-label text{fill:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ .cluster-label span{color:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ .cluster-label span p{background-color:transparent;}#mermaid-svg-WGZHwkr0B01mv2TJ .label text,#mermaid-svg-WGZHwkr0B01mv2TJ span{fill:#333;color:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ .node rect,#mermaid-svg-WGZHwkr0B01mv2TJ .node circle,#mermaid-svg-WGZHwkr0B01mv2TJ .node ellipse,#mermaid-svg-WGZHwkr0B01mv2TJ .node polygon,#mermaid-svg-WGZHwkr0B01mv2TJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-WGZHwkr0B01mv2TJ .rough-node .label text,#mermaid-svg-WGZHwkr0B01mv2TJ .node .label text,#mermaid-svg-WGZHwkr0B01mv2TJ .image-shape .label,#mermaid-svg-WGZHwkr0B01mv2TJ .icon-shape .label{text-anchor:middle;}#mermaid-svg-WGZHwkr0B01mv2TJ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-WGZHwkr0B01mv2TJ .rough-node .label,#mermaid-svg-WGZHwkr0B01mv2TJ .node .label,#mermaid-svg-WGZHwkr0B01mv2TJ .image-shape .label,#mermaid-svg-WGZHwkr0B01mv2TJ .icon-shape .label{text-align:center;}#mermaid-svg-WGZHwkr0B01mv2TJ .node.clickable{cursor:pointer;}#mermaid-svg-WGZHwkr0B01mv2TJ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-WGZHwkr0B01mv2TJ .arrowheadPath{fill:#333333;}#mermaid-svg-WGZHwkr0B01mv2TJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-WGZHwkr0B01mv2TJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-WGZHwkr0B01mv2TJ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WGZHwkr0B01mv2TJ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-WGZHwkr0B01mv2TJ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WGZHwkr0B01mv2TJ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-WGZHwkr0B01mv2TJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-WGZHwkr0B01mv2TJ .cluster text{fill:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ .cluster span{color:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-WGZHwkr0B01mv2TJ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-WGZHwkr0B01mv2TJ rect.text{fill:none;stroke-width:0;}#mermaid-svg-WGZHwkr0B01mv2TJ .icon-shape,#mermaid-svg-WGZHwkr0B01mv2TJ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WGZHwkr0B01mv2TJ .icon-shape p,#mermaid-svg-WGZHwkr0B01mv2TJ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-WGZHwkr0B01mv2TJ .icon-shape .label rect,#mermaid-svg-WGZHwkr0B01mv2TJ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WGZHwkr0B01mv2TJ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-WGZHwkr0B01mv2TJ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-WGZHwkr0B01mv2TJ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 解码器 ×N
编码器 ×N
K,V
输入嵌入 + 位置编码
多头自注意力
残差 + LayerNorm
FFN
残差 + LayerNorm
输出嵌入 + 位置编码
掩码多头自注意力
残差 + LayerNorm
交叉注意力 Q来自Decoder
残差 + LayerNorm
FFN
残差 + LayerNorm
线性层 + Softmax
它为什么影响这么大?
因为这套架构后面几乎长成了现代大模型的通用骨架:
- GPT 主要用了最初翻译任务TRANSFORMER中的解码器
- ViT 把 Transformer 带进了视觉领域
今天的 LLaMA、Claude、Gemini,本质上也都还站在这条路线之上。
最后只记一句
如果你以前把 Transformer 理解成"更高级的注意力模型",那只对了一半。
更准确的说法是:Transformer先用自注意力解决长距离依赖和并行训练的问题,再用 FFN、位置编码和掩码把整套机制补完整,最终建立了现代大模型的基础骨架。
这里给些参考与延伸阅读
阅读原汁原味的才好:
- Attention Is All You Need (Vaswani et al., 2017):Transformer 原始论文
- The Illustrated Transformer (Jay Alammar):视觉化理解 Transformer 最经典的博客之一