跳转至

Ch24 数值分析与凸优化补遗 · 信息图


信息图:数值精度对比

flowchart TB
  F32[FP32\n1+8+23\n指数 8 尾数 23] --> F16[FP16\n1+5+10\n动态范围窄]
  F32 --> BF[BF16\n1+8+7\nGoogle Brain]
  F16 --> F8[FP8\nE4M3 / E5M2\nH100]
  F8 --> F4[FP4\nMX 格式\n2024]
  F4 --> F2[1.58-bit\nBitNet 2024]

  F32 -.精度.-> P1[1.19e-7]
  F16 -.精度.-> P2[9.77e-4]
  BF -.精度.-> P3[7.81e-3]

  classDef core fill:#f9f,stroke:#333,stroke-width:2px
  class F32 core

信息图:凸优化方法谱系

flowchart TB
  O[凸优化] --> Z[零阶]
  O --> F[一阶]
  O --> S[二阶]

  Z --> Z1[随机搜索]
  Z --> Z2[贝叶斯优化]

  F --> F1[GD 梯度下降]
  F --> F2[SGD 随机]
  F --> F3[动量 SGD]
  F --> F4[Adam/AdamW]
  F --> F5[AdaGrad]

  S --> S1["Newton\nO(n³)"]
  S --> S2[BFGS 秩 2]
  S --> S3[L-BFGS 限内存]
  S --> S4[Trust Region]
  S --> S5[K-FAC/Shampoo]

  F4 --> A[Transformer 训练]
  S3 --> B[LLM 微调]
  S5 --> C[大模型二阶加速 2-3×]

信息图:KKT 4 条件

flowchart LR
  K[KKT 最优解] --> K1[Stationarity\n∇f + Σλ∇g + Σν∇h = 0]
  K --> K2[Primal Feasibility\ng ≤ 0, h = 0]
  K --> K3[Dual Feasibility\nλ ≥ 0]
  K --> K4[Complementary Slackness\nλᵢ gᵢ = 0]

  K1 & K2 & K3 & K4 --> S[SVM 推导]
  S --> M[对偶问题]
  M --> W[弱对偶 f ≥ g]
  M --> W2[强对偶 f = g*]
  W2 --> SC[Slater 条件]

信息图:分布式训练拓扑

flowchart TB
  D[分布式 SGD] --> S[同步]
  D --> A[异步]
  D --> F[联邦]

  S --> S1[AllReduce\nRing 拓扑]
  S --> S2[PS\n参数服务器]
  S --> S3[ZeRO\nDeepSpeed]

  A --> A1[Hogwild!\n无锁]
  A --> A2[EA-SGD\n弹性平均]
  A --> A3[Async PS\n陈旧梯度]

  F --> F1[FedAvg\nMcMahan 2017]
  F --> F2[FedProx\n近端项]
  F --> F3[FedNova\n归一化]

信息图:数值稳定性 4 大场景

flowchart LR
  C1[Catastrophic\nCancellation] --> Fix1[减去大头]
  C1 -.例.-> E1["√1+x - 1"]

  C2[Overflow] --> Fix2["Softmax 减 max"]
  C2 -.例.-> E2["exp 1000 = inf"]

  C3[Underflow] --> Fix3["Log-Sum-Exp"]
  C3 -.例.-> E3["log 0 = -inf"]

  C4[梯度消失/爆炸] --> Fix4[BN/LN/Clip]
  C4 -.例.-> E4[深层 RNN]

  Fix1 & Fix2 & Fix3 & Fix4 --> V[Loss Scaling + bf16]

信息图:稀疏矩阵存储格式

flowchart LR
  M[稀疏矩阵] --> CSR[CSR\n压缩行]
  M --> COO[COO\n坐标]
  M --> ELL[ELL\nELLPACK]
  M --> BSR[BSR\n块稀疏]
  M --> CSC[CSC\n压缩列]

  CSR --> UC1[行切片友好\nSpMV 高效]
  COO --> UC2[构造灵活\n转 CSR 简单]
  ELL --> UC3[GPU 友好\n定长]
  BSR --> UC4[小块结构稀疏\nGPU 高效]

数据卡片

  • FP32 Epsilon: 1.19e-7
  • FP16 Epsilon: 9.77e-4
  • BF16 Epsilon: 7.81e-3
  • CSR 内存: 仅存储 nnz×(int+float)
  • Shampoo 加速: Transformer 训练 2-3×
  • AllReduce Ring: O(N) 带宽, 最优通信
  • BFGS 收敛: 超线性, 优于 SGD
  • K-FAC: Google 2015, 实用化二阶方法