📘 JAX 分布式计算 · 从入门到部署
30章 完整路径
v1.0
01
JAX初探:什么是JAX?为什么需要JAX?
JAX vs NumPy/TensorFlow/PyTorch
02
环境搭建:安装JAX (CPU/GPU/TPU)
验证安装 · VS Code / Jupyter 配置
03
JAX核心:jnp.array & 设备内存管理
即时编译 (jit) 入门
04
自动微分:grad · 高阶导数
jacfwd / jacrev · vjp / jvp
05
向量化映射:vmap 使用场景
性能对比 · 嵌套 vmap
06
并行计算:pmap 基础
多设备数据并行 · 同步/异步
07
随机数生成:jax.random 模块
PRNGKey 链式管理 · 分叉与合并
08
数据结构:pytree 概念
tree_map / tree_reduce · 自定义节点
09
状态管理:纯函数与副作用
Stateful 模式 · lax.scan 循环
10
JIT 深入:静态参数 · 动态形状
缓存机制 · debug 模式
11
性能分析:jax.profiler
NVIDIA Nsight · 内存/计算瓶颈
12
分布式基础:单机多卡 · 多机多卡
设备拓扑与通信
13
pmap 进阶:梯度累积 · 模型并行
流水线并行
14
sharded_map:分片映射
与 pmap 区别 · 大规模参数
15
分布式数组:jax.Array
GlobalDeviceArray · 分片策略
16
数据加载:tf.data + JAX
分布式加载 · 预取与缓存
17
模型构建:Flax 基础
nn.Module · 参数初始化与管理
18
训练循环:自定义训练 · 损失函数
优化器 (optax)
19
分布式训练:数据并行 · 梯度同步
AllReduce 通信
20
模型并行:张量并行 · 序列并行
混合并行策略
21
流水线并行:GPipe 策略
微批次调度 · 负载均衡
22
混合精度训练:fp16/bf16
损失缩放 · jnp.float16/bfloat16
23
检查点:保存与恢复模型
分布式检查点 · 异步保存
24
推理部署:JAX Serving
TF Serving 集成 · ONNX 导出
25
TPU 训练:Google Cloud TPU
TPU Pod · PJRT 运行时
26
调试技巧:NaN 检测 · 断点调试
日志与可视化
27
最佳实践:代码组织 · 测试策略
CI/CD 集成
28
案例实战:ResNet 分布式训练
从单卡到多机多卡
29
案例实战:GPT 风格语言模型
模型并行 + 数据并行
30
案例实战:强化学习 PPO 分布式
PPO 算法分布式实现