第17章 §02 · 高效架构前沿 · 讲解稿¶
承接: Ch17 §01 量化 → §02 架构优化 篇幅: ~4000 字
一 · 一句话总览¶
高效架构 = 用算法创新解硬件瓶颈。Flash Attention (IO 友好) / Mamba-2 (线性 O(n)) / DeepSeek-V3 (MoE 优化) / MoE / SSM, 让 LLM 训练 / 推理快 10× 省 10×。
二 · Flash Attention 家族¶
2.1 Flash Attention 1 (Tri Dao 2022)¶
核心思想: IO aware attention, 不分块就难 OOM。
3 大技巧: 1. Tiling: Q/K/V 分块, 装入 SRAM (Ampere 192KB) 2. Recompute: 反向传播重算 attention, 不存中间矩阵 3. Online Softmax: 分块算 softmax, 数学等价
结果: - 内存: O(n²) → O(n) - 速度: 2-4× (H100/A100) - 数学等价
2.2 Flash Attention 2 (2023)¶
- 减少 warp 间通信
- 并行化 Q/K/V
- H100 上接近 cuBLAS 性能
2.3 Flash Attention 3 (2024)¶
- Hopper 专属: 利用 warp specialization + TMA
- FP8 支持
- 比 FA2 快 2×
2.4 Flash Attention 4 (2025)¶
- 多 GPU + Dynamic Shape
- 支持 MoE + 长 context (128K+)
三 · Mamba-2 (Albert Gu 2024)¶
3.1 SSM 基础¶
State Space Model:
离散化:
3.2 Mamba vs Transformer¶
| 维度 | Transformer | Mamba |
|---|---|---|
| 复杂度 | O(n²) | O(n) |
| 长 context | 困难 | 天然 |
| 记忆 | 全局 KV | 压缩到 hidden state |
| 推理 | 慢 | 5× 快 |
| 训练 | 标准 | 数据并行友好 |
3.3 Mamba-2 (2024)¶
核心: SSM 与 Attention 的对偶性 - SSD (State Space Duality) - 比 Mamba-1 快 2-8× - 与 Transformer 混合架构 (Jamba / Zamba)
3.4 实战¶
from mamba_ssm import Mamba
model = Mamba(
d_model=256, # 隐藏维度
d_state=16, # SSM 状态维度
d_conv=4, # 1D conv 宽度
expand=2, # 扩展因子
).to("cuda")
x = torch.randn(1, 1024, 256).cuda()
y = model(x) # O(n) 复杂度
四 · DeepSeek-V3 / R1¶
4.1 DeepSeek-V3 (2024-12)¶
架构: - MoE: 671B 总参, 37B 激活 - MLA (Multi-head Latent Attention): 压缩 KV - DeepSeekMoE: 细粒度专家 + 共享专家 - FP8 训练: 首次大规模
性能: - 训练成本: 5.6M GPU hours (vs Llama 3 30.8M) - 比 Llama 3 405B 强, 训练成本 1/10
4.2 DeepSeek-R1 (2025-01)¶
创新: GRPO + 纯 RL 训练推理 - GRPO (Group Relative Policy Optimization): 用组内相对优势, 无 Critic - R1-Zero: 纯 RL, 无 SFT - R1: 多阶段 (SFT + RL + 拒绝采样)
蒸馏: R1-Distill-Qwen 1.5B / 7B / 14B / 32B / Llama 70B
4.3 工业影响¶
- 低成本 SOTA: 让所有团队看到 "LLM 训练不必 100M USD"
- GRPO 被 o 系列 / Claude / Gemini 借鉴
- R1 蒸馏 把推理能力普及到小模型
五 · MoE 优化¶
5.1 MoE 基础¶
Mixture of Experts: 选 top-k 个专家
5.2 挑战¶
- 负载不均衡: 热门专家过载
- 通信开销: All-to-All
- 显存: 所有专家都需加载
5.3 优化技术¶
- DeepSeekMoE: 细粒度 (256 专家) + 共享专家
- Switch Transformer: 1 个专家, 简化
- GLaM: 64 专家, top-2
- Mixtral 8x7B: 8 专家, top-2
- Expert Parallel: 专家分布到不同 GPU
5.4 MoE 推理优化¶
- 预取 + 批处理
- 专家合并 (相似专家合并)
- 动态专家 (根据输入调整)
六 · 高效 Attention 变体¶
6.1 Multi-Query / Grouped-Query Attention (MQA / GQA)¶
核心: K/V 头数 < Q 头数 - MHA: n_kv = n_q (标准) - MQA: n_kv = 1 (FastGen) - GQA: n_kv = n_q / 4 (Llama 2 用)
收益: KV cache 减少 4-8×, 推理加速
6.2 Linear Attention¶
核心: 用 φ(Q) φ(K)ᵀ 代替 Softmax(QKᵀ) - O(n²) → O(n) - 缺点: 精度略差 - 代表: Performer / Linformer / RetNet
6.3 Sliding Window Attention¶
- Mistral 7B 用
- 仅看最近 4096 token
- 长 context 用 ROPE 扩展
6.4 Sparse Attention¶
- Longformer / BigBird
- 局部 + 全局 + 随机
- 长文档友好
七 · 长 Context 技术¶
7.1 RoPE 扩展¶
- 位置插值 (Position Interpolation): Meta 2023
- NTK-aware scaling: 动态调整
- YaRN: 长 context 训练方法 (Llama 2 → 128K)
7.2 Ring Attention¶
- 长序列 (1M+) 分到多 GPU
- KV 通过 ring 通信传递
- 内存: O(n / N) per GPU
7.3 InfLLM / StreamingLLM¶
- 注意力下沉 (Attention Sink)
- 永久保留前几个 token
- 1M+ context 训练友好
八 · 一句话总结¶
高效架构 = IO 友好 (FA) + 线性 (Mamba) + MoE (DS-V3) + 长 context (YaRN)。5 大方向: 显存、计算、通信、长度、稀疏。让 LLM 在 5 年内从 7B/2K → 1T/1M。