⛶ 全屏
DEEP LEARNING
Transformer
深度解析
原理 · 架构 · 应用 · 实例
Attention Is All You Need
Self-Attention NLP GPT BERT Vision Transformer
或点击右侧按钮开始
📑 目录 Overview
📖

Part 1

背景与动机
为什么需要Transformer

🧠

Part 2

核心原理
自注意力机制详解

🏗️

Part 3

模型架构
编码器-解码器结构

🚀

Part 4

应用与实例
GPT/BERT/ViT等

02

传统序列模型的困境
🔄
RNN / LSTM 的局限
  • 顺序计算,无法并行,训练速度慢
  • 长序列存在梯度消失/爆炸问题
  • 难以捕获长距离依赖关系
  • LSTM/GRU虽有改善,但本质未变
📊
CNN 用于序列的问题
  • 感受野有限,需要多层堆叠
  • 不善于建模变长序列
  • 位置信息处理不够灵活
💡
Transformer 的解决方案
  • 完全基于注意力机制,抛弃递归
  • 天然支持并行计算,训练效率极高
  • 通过自注意力直接建模任意距离
  • 统一架构适用于多种任务

"Attention Is All You Need"

— Vaswani et al., 2017 (Google Brain)
03
📅 Transformer 发展里程碑
2017

🎯 Transformer 诞生

Google Brain 发表 "Attention Is All You Need",在机器翻译任务上取得SOTA

2018

📘 GPT-1 & BERT

OpenAI 推出 GPT-1,Google 推出 BERT,开启预训练语言模型时代

2019

📈 GPT-2 & 大规模化

GPT-2 展示惊人文本生成能力(15亿参数),引发AI安全讨论

2020

🚀 GPT-3 & ViT

GPT-3(1750亿参数)展示Few-shot能力;ViT将Transformer引入计算机视觉

2022

💬 ChatGPT 出世

ChatGPT 引爆全球,Transformer成为通用AI的基础架构

2023-24

🌍 GPT-4, Gemini, Claude

多模态大模型涌现,Transformer架构统治AI领域

04

核心机制:Self-Attention
🎯 什么是自注意力?

自注意力机制允许序列中的每个位置直接关注序列中的所有其他位置,从而捕获全局依赖关系。


想象你在阅读一个句子:
"这只很可爱,正在睡觉"

自注意力能让模型知道"它"指的是"猫",无论它们相距多远。

Attention(Q,K,V) = softmax(QKT/√dk)V
缩放点积注意力公式
🔑 Q、K、V 三元组
Q (Query) 查询
"我想要找什么信息?"
K (Key) 键
"我有什么信息可以被查到?"
V (Value) 值
"查到之后,返回什么内容?"
📐 为什么要缩放?
除以 √dk 防止点积结果过大,避免 softmax 梯度消失(落入饱和区)。
05
🔍 注意力计算步骤详解
📥
输入嵌入
X
✖️
线性变换
生成Q,K,V
📊
计算注意力分数
QKT/√d
📈
Softmax
归一化
🎯
加权求和
×V
📤
输出
Z
📝 计算示例

假设输入句子: "I love AI"


Step 1: 每个词向量 × WQ, WK, WV → 得到 Q, K, V

Step 2: Qi · KjT → 注意力分数矩阵

Step 3: 分数 / √dk → Softmax → 注意力权重

Step 4: 权重 × V → 加权输出

🎨 注意力权重可视化
I
love
AI
I
0.7
0.15
0.15
love
0.2
0.4
0.4
AI
0.1
0.3
0.6
颜色越深表示注意力权重越大
06
🔮 多头注意力 Multi-Head Attention
💡 为什么需要"多头"?

单个注意力头可能只关注一种模式。多头注意力允许模型同时关注不同位置的不同表示子空间。


就像看一幅画时,一双眼看颜色,另一双看形状,还有看纹理的——多视角理解更全面。

MultiHead(Q,K,V) = Concat(head₁,...,headₕ)WO
其中 headᵢ = Attention(QWᵢQ, KWᵢK, VWᵢV)
📊 原始论文设置

8个头(h=8)

• 模型维度 dmodel = 512

• 每个头维度 dk = dv = 512/8 = 64

多头注意力示意
输入 X Head 1 语法关系 Head 2 语义相似 Head 3 指代关系 Head h ... Concat 拼接 Linear WO 输出
07
📍 位置编码 Positional Encoding
❓ 为什么需要位置编码?

自注意力机制是排列不变的(permutation invariant)——它不关心输入的顺序。


但语言有顺序!
"狗 咬 人" ≠ "人 咬 狗"


所以需要显式注入位置信息

PE(pos,2i) = sin(pos/100002i/d)
PE(pos,2i+1) = cos(pos/100002i/d)
正弦余弦位置编码公式
✨ 正弦编码的优点
  • 可以推广到训练时未见过的序列长度
  • 相对位置可通过线性变换表示
  • 不同维度对应不同频率的波
  • 无需额外学习参数
📊 位置编码可视化
pos0
pos1
pos2
pos3
pos4
不同位置使用不同频率的正弦/余弦波
08

Transformer 完整架构

🔵 编码器 Encoder

输入嵌入 + 位置编码
多头自注意力 (Multi-Head Self-Attention)
+ 残差连接 & 层归一化
前馈神经网络 (FFN)
+ 残差连接 & 层归一化
× N 层(原始论文 N=6)

🔴 解码器 Decoder

输出嵌入 + 位置编码
掩码多头自注意力 (Masked)
+ 残差 & LayerNorm
编码器-解码器注意力 (Cross-Attention)
+ 残差 & LayerNorm
前馈神经网络 (FFN)
+ 残差 & LayerNorm
Linear + Softmax → 输出概率
09
🧩 关键组件详解
🔗
残差连接

x + Sublayer(x)


将输入直接加到子层输出上:

  • 缓解梯度消失
  • 使深层网络易于训练
  • 借鉴自 ResNet
📏
层归一化 (LayerNorm)

对每个样本的特征维度进行归一化:


LayerNorm(x) = γ · (x-μ)/σ + β


  • 稳定训练过程
  • 加速收敛
  • 不依赖 batch size
🧮
前馈网络 (FFN)

FFN(x) = ReLU(xW₁+b₁)W₂+b₂


两层全连接网络:

  • 内层维度 dff=2048
  • 每个位置独立应用
  • 提供非线性变换能力
🎭 Masked Attention(掩码注意力)

在解码器中,生成第 t 个词时不能看到 t 之后的词(防止信息泄露)。

通过将未来位置的注意力分数设为 -∞(softmax 后变为 0)来实现。

10
⚖️ 模型架构对比
特性 RNN/LSTM CNN Transformer
并行计算 ❌ 不支持 ✅ 支持 ✅ 完全支持
长距离依赖 O(n) 路径 O(log n) 路径 O(1) 直接连接
计算复杂度/层 O(n·d²) O(k·n·d²) O(n²·d)
训练速度
可解释性 注意力可视化
扩展性 有限 中等 极强(Scaling Law)

Transformer 在长序列建模中的优势是革命性的:任意两个位置之间只需一步即可直接交互信息。

11
🔧 训练关键技巧
📈
学习率预热

Warmup + 衰减策略:


前 warmup_steps 步线性增大学习率,之后按步数平方根衰减。


lr = d-0.5 · min(step-0.5, step · warmup-1.5)
💧
Dropout 正则化

应用位置:

  • 注意力权重
  • FFN 输出
  • 嵌入 + 位置编码之后
  • 残差连接之前

通常 rate = 0.1

🏷️
标签平滑

Label Smoothing (ε=0.1)


将 one-hot 标签软化:

正确类: 1-ε = 0.9

其他类: ε/(K-1)


防止过拟合,提高泛化能力,提升 BLEU 分数。

6
编码器/解码器层数
512
模型维度 dmodel
8
注意力头数
65M
总参数量
12

Transformer 的广泛应用
📝

自然语言处理

翻译、摘要、问答
文本生成、情感分析
命名实体识别

👁️

计算机视觉

图像分类 (ViT)
目标检测 (DETR)
图像生成 (DiT)

🎵

语音与音频

语音识别 (Whisper)
语音合成 (TTS)
音乐生成

🧬

科学领域

蛋白质结构 (AlphaFold)
药物发现
基因组分析

🤖

对话系统

ChatGPT、Claude
Gemini、文心一言

💻

代码生成

GitHub Copilot
CodeLlama
代码补全与调试

🎨

多模态

DALL·E / Midjourney
文本→图像
视频理解与生成

🎮

决策与控制

Decision Transformer
机器人控制
游戏AI

13
📘 实例1:BERT
🔍
BERT 是什么?

Bidirectional Encoder Representations from Transformers


Google 2018 年推出,只使用 Transformer 的编码器部分。


创新点:双向理解上下文(同时看前后文)。

🎯 预训练任务
MLM (掩码语言模型)
随机遮掩15%的词,让模型预测
"我 [MASK] 吃 苹果" → "喜欢"
NSP (下一句预测)
判断两个句子是否是连续的
[CLS] 句子A [SEP] 句子B → 是/否
📊 模型规格
110M
BERT-Base 参数
340M
BERT-Large 参数
12
Encoder 层数 (Base)
768
隐藏维度 (Base)
🏆 BERT 的影响
  • 刷新11项NLP任务SOTA记录
  • 开创"预训练+微调"范式
  • Google搜索引擎实际部署
  • 衍生: RoBERTa, ALBERT, DistilBERT
14
🤖 实例2:GPT 系列
🧠
GPT 架构特点

只使用 Transformer 的解码器部分

自回归生成:从左到右,逐个预测下一个词

预训练任务:因果语言建模 (CLM)

P(wt | w1, w2, ..., wt-1)

📈 规模增长曲线
GPT-1
117M
GPT-2
1.5B
GPT-3
175B
GPT-4
~1.8T?
🌟 GPT 系列里程碑
GPT-1

生成式预训练

证明预训练+微调范式可行

GPT-2

Zero-shot 能力

无需微调即可执行多种任务

GPT-3

Few-shot 学习

In-context learning,涌现能力

GPT-4

多模态理解

支持图像输入,接近人类水平

💡 关键创新:RLHF

ChatGPT = GPT-3.5 + RLHF

人类反馈强化学习使模型:

  • 更有帮助 (Helpful)
  • 更安全 (Harmless)
  • 更诚实 (Honest)
15
👁️ 实例3:Vision Transformer (ViT)
🖼️ 核心思路

"An Image is Worth 16x16 Words"


将图像切分为固定大小的 patch(如16×16像素),每个 patch 展平后作为一个"token",输入标准 Transformer 编码器。

⚙️ 处理流程
🖼️ 原始图像 224×224
🧩 切分为 196 个 16×16 patches
📊 线性投影 + [CLS] + 位置编码
🧠 Transformer Encoder × L 层
🏷️ [CLS] → MLP Head → 分类结果
🎨 图像分块示意
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
P16
每个 patch 作为一个 token 输入
🏆 ViT 的意义
  • 证明纯 Transformer 可以做好视觉任务
  • 大规模预训练后超越 CNN (如 ResNet)
  • 催生 DeiT, Swin Transformer, MAE 等
  • 统一了 NLP 和 CV 的架构基础
16
🌍 更多应用实例
🧬
AlphaFold 2

蛋白质结构预测


DeepMind 使用 Transformer 中的注意力机制(Evoformer模块)预测蛋白质3D结构。


解决了困扰生物学界50年的难题,被《Nature》评为年度科学突破。


生物学 结构预测
🎨
DALL·E / Stable Diffusion

文本到图像生成


DALL·E 使用 Transformer 理解文本描述,结合扩散模型生成高质量图像。


"一只穿宇航服的柴犬在月球上弹吉他" → 🎨


多模态 生成式AI
🎙️
Whisper

通用语音识别


OpenAI 的 Whisper 使用编码器-解码器 Transformer 架构进行语音识别。


支持 99种语言,可做翻译、时间戳标注、语言检测。


语音 多语言
💻
GitHub Copilot

基于 Codex (GPT的代码微调版) 的AI编程助手,实时代码补全和生成。

编程
🎬
Sora (OpenAI)

使用 Diffusion Transformer (DiT) 架构生成高质量视频,理解物理世界。

视频生成
🔬
Decision Transformer

将强化学习问题转化为序列建模,用Transformer做决策和控制。

强化学习
17
💻 代码实现示例
PyTorch 实现自注意力机制
import torch import torch.nn as nn import math class SelfAttention(nn.Module): def __init__(self, d_model, n_heads): super().__init__() self.d_k = d_model // n_heads self.n_heads = n_heads self.W_q = nn.Linear(d_model, d_model) self.W_k = nn.Linear(d_model, d_model) self.W_v = nn.Linear(d_model, d_model) self.W_o = nn.Linear(d_model, d_model) def forward(self, x): B, L, D = x.shape # 生成 Q, K, V Q = self.W_q(x).view(B,L,self.n_heads,self.d_k) K = self.W_k(x).view(B,L,self.n_heads,self.d_k) V = self.W_v(x).view(B,L,self.n_heads,self.d_k) # 转置: (B, heads, L, d_k) Q, K, V = [t.transpose(1,2) for t in (Q,K,V)] # 注意力计算 scores = Q @ K.transpose(-2,-1) / math.sqrt(self.d_k) attn = torch.softmax(scores, dim=-1) out = (attn @ V).transpose(1,2).reshape(B,L,D) return self.W_o(out)
使用 HuggingFace 快速上手
# 文本分类 (BERT) from transformers import pipeline classifier = pipeline("sentiment-analysis") result = classifier("I love transformers!") # [{'label':'POSITIVE','score':0.99}] # 文本生成 (GPT-2) generator = pipeline("text-generation", model="gpt2") text = generator("Transformers are", max_length=50) # 机器翻译 translator = pipeline("translation_en_to_zh", model="Helsinki-NLP/opus-mt-en-zh") result = translator("Hello world!") # 问答系统 qa = pipeline("question-answering") answer = qa( question="What is Transformer?", context="Transformer is a neural network architecture..." )
🔗 学习资源:
• huggingface.co/transformers
• github.com/karpathy/nanoGPT
• jalammar.github.io/illustrated-transformer
18
⚡ 挑战与未来方向
⚠️
当前挑战
  • 计算成本高:训练GPT-4花费超过$1亿
  • O(n²)复杂度:自注意力随序列长度二次增长
  • 幻觉问题:模型可能生成看似合理但错误的内容
  • 能耗巨大:训练大模型碳排放堪比汽车终生排放
  • 数据依赖:需要海量高质量训练数据
  • 安全伦理:滥用风险、偏见、隐私问题
🔮
未来方向
  • 高效注意力:Flash Attention, Linear Attention, 稀疏注意力
  • 超长上下文:Mamba, RWKV 等新架构突破序列长度
  • 多模态融合:统一的文本/图像/音频/视频模型
  • 模型压缩:量化、蒸馏、剪枝降低部署成本
  • 可靠性提升:RAG检索增强,减少幻觉
  • Agent 范式:AI智能体,工具使用,自主决策

"Scaling laws 表明:更大的模型 + 更多的数据 + 更多的计算 = 更强的能力。
但我们也在探索更高效、更智能的新范式。"

19
📋 总结回顾
🧠

核心原理

自注意力机制
多头注意力
位置编码
残差+LayerNorm

🏗️

架构设计

编码器-解码器
仅编码器(BERT)
仅解码器(GPT)
灵活可扩展

🌍

广泛影响

NLP / CV / 语音
科学发现
代码生成
多模态AI

Transformer 不仅是一个模型架构,更是当代 AI 革命的基石

从2017年的一篇论文,到今天驱动着 ChatGPT、DALL·E、AlphaFold 等

改变世界的产品,它重新定义了我们与技术交互的方式。

20
THANK YOU
感谢聆听
Attention Is All You Need
21
页幻灯片
4
个章节
6+
个应用案例

Q & A 环节

欢迎提问与讨论 💬

← → 翻页 | F 全屏