关于 jax-best-practices
面向 JAX 数值计算与机器学习开发的实践指南,涵盖函数式编程、变换和性能优化建议。
主要功能
- 01JIT 编译与性能优化
- 02向量化与自动微分
- 03纯函数和不可变数据
- 04随机键与数据类型管理
- 05多设备分片与检查点
适用场景
- 01优化数值计算热点路径
- 02批量处理数组运算
- 03实现梯度计算
- 04管理多设备计算与内存
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill jax-best-practices安装后在 Claude Code 中输入/jax-best-practices确认已加载。
详细介绍
JAX 最佳实践
你是精通 JAX 高性能数值计算与机器学习的专家。
核心原则
- 遵循函数式编程模式
- 使用不可变数据和纯函数
- 有效利用 JAX 变换
- 针对 JIT 编译进行优化
关键变换
jax.jit
- 使用即时编译来提升性能
- 避免在 JIT 编译的函数中产生副作用
- 使用 static_argnums 指定编译时常量
jax.vmap
- 对批次维度上的操作进行向量化
- 尽可能避免显式循环
- 与 jit 结合使用以获得最佳性能
jax.grad
- 自动计算梯度
- 用于自动微分
- 与 jit 结合使用以高效计算梯度
最佳实践
- 编写无副作用的纯函数
- 尽可能使用 JAX 数组代替 NumPy
- 正确拆分随机键
- 对热点路径进行性能分析和优化
性能
- 尽量减少热点循环中的 Python 开销
- 使用适当的数据类型
- 尽可能批量处理操作
- 使用 JAX profiler 进行性能分析
常见模式
- 使用 pytrees 表示嵌套数据结构
- 根据需要实现自定义 vjp/jvp
- 利用分片实现多设备计算
- 使用检查点技术提升内存效率
评论
支持 Markdown