Transformer 架构

2017 年一篇论文改变了 AI 世界——"Attention Is All You Need"。 抛弃顺序处理,一次性理解整句话。

🏫 用"全班讨论"来理解

🤚

旧方法:RNN = 一个接一个发言

老师让每个学生按顺序站起来发言。第 50 个人说的时候,要把前面 49 个人说了什么都记住。人越多越记不住开头。而且慢——50 个人得等半天。

🪧

新方法:Transformer = 同时举牌打分

别排队了!所有人同时把自己的想法写下来,每个人同时看其他所有人的牌,自己打分决定最该关注谁。一次搞定,并行处理。

🧩 核心机制拆解

1. Self-Attention:每个词都在看所有词

句子:"The cat sat on the mat because it was tired"

"it" 指代什么?人读完能推断是 "cat"。Self-Attention 做的事就是——

2. QKV 机制(Query / Key / Value)

这是 Self-Attention 的数学实现。每个词被投影到三个向量空间:

Query (Q)
我要找什么?
×
Key (K)
我有什么标签?
Value (V)
我的实际内容

Q 和 K 的点积 = 注意力分数 → Softmax → 加权求和 V → 最终输出

数学公式:
Attention(Q, K, V) = softmax(QKᵀ / √dₖ) × V

√dₖ 是缩放因子,防止点积过大导致 Softmax 梯度消失。

3. Multi-Head Attention:多个视角同时看

不只用一组 QKV,而是用 8 或 16 组不同的 QKV,每组捕捉不同的关系:

最后把所有 Head 的结果拼接起来——多个视角合在一起,理解更全面。

🏗️ 架构全景

输入文本
Token + Positional Encoding
Multi-Head Self-Attention × N
Feed Forward × N
输出概率分布

关键组件:

🔀 三种范式

范式 代表模型 适用任务
Encoder-Only BERT, RoBERTa 文本理解、分类、QA、情感分析
Decoder-Only GPT 系列, Llama, DeepSeek 文本生成、对话、代码补全
Encoder-Decoder T5, BART, 原始 Transformer 翻译、摘要(输入→输出)
💡 你每天用的 ChatGPT、DeepSeek、Claude 都是 Decoder-Only 架构——它们只做一件事:给定上文,预测下一个 Token。

❓ 常见问题

Q: Transformer 怎么知道词序?它没有"第一个、第二个"的概念啊。

👋 简单版(给所有人)

回到"全班举牌"的比喻:所有人同时举起自己的牌子,老师一眼扫过去——但老师不知道谁先举的、谁后举的。

而顺序很重要——"我打你"和"你打我"意思完全相反。

💡

解决方案:在牌子上偷偷印暗号

每个人举的牌子上,都有一个只有他自己知道的独特暗号。老师看到暗号,就能还原出谁在前、谁在后。

🌊

暗号长什么样?用"波浪"

不用数字 1、2、3……因为到第 1000 个人暗号太大。改用波纹:第 1 个人波纹很密,第 50 个人变稀疏,第 500 个人非常稀疏。每个位置的波纹形状独一无二。

一句话:每个词举牌的时候,牌子上除了"我是什么意思",还偷偷叠加了一个代表"我是第几个"的波纹图案。Self-Attention 在计算谁跟谁相关的时候,会自动感知到这些波纹的差异。

Q: 为什么 Transformer 这么强?
→ 可以无限堆叠(像叠积木),堆越多越聪明。而且 GPU 特别喜欢它——全是矩阵乘法,一次算完,不用排队等。训练效率远超 RNN。

Q: 为什么不所有问题都用 Transformer?
→ Attention 的计算复杂度是 O(n²)——句子长度翻倍,计算量翻四倍。处理 10 万字长文时非常昂贵。这是当前研究的活跃方向(稀疏 Attention、状态空间模型等)。