跳转至

第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:

h'(t) = A h(t) + B x(t)
y(t) = C h(t)

离散化:

h_t = Ā h_{t-1} + B̄ x_t
y_t = C h_t

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 个专家

y = Σ_{i ∈ top-k} w_i · Expert_i(x)

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。