AI
JAX

JAX

Google推出的用于变换数值函数的机器学习框架

https://jax.readthedocs.io/en/latest

Google推出的用于变换数值函数的机器学习框架

JAX 是什么?为什么突然火了?

如果你做机器学习研究,大概率听过 TensorFlow 和 PyTorch,但 Google 内部还藏着一个更底层的框架,叫 JAX。它不是那种直接给你搭好模型、调个 fit() 就能跑的工具,而是专门用来“变换数值函数”的。听起来有点抽象,其实说白了,就是让你像写 NumPy 一样写数组运算,但背后能自动求导、编译加速,还能一键铺到多个设备上并行。这几年不少让人眼前一亮的工作——从 AlphaFold 2 到各种大语言模型的训练内核——都选择了 JAX 作为底层引擎,它已经悄悄成了很多前沿研究的标配。

它到底强在哪儿?

JAX 的哲学很简单:一切皆为纯函数,所有变换都可组合。你写一个普通的 Python 函数,操作的是类似 NumPy 的数组,然后你就可以用几个字母的“魔法”把它变成另一个函数,而且这些魔法可以随意叠着用。这种设计让代码既数学化又极其灵活,我第一次用的时候,被它那种“写数学公式就像写代码”的流畅感震住了。具体来说,它提供了几个核心变换:

  • NumPy 风格的 API:jax.numpy 几乎就是 NumPy 的翻版,老用户零成本上手,但所有操作都记录在计算图里,为后续变换做准备。
  • 自动微分:jax.grad 能对一个标量输出函数求梯度,而且支持高阶导数、雅可比矩阵、海森矩阵,甚至自定义梯度规则。写物理模拟或者元学习的时候,这种能力简直是救命稻草。
  • JIT 编译:jax.jit 把函数编译成 XLA 中间表示,在 GPU/TPU 上跑出接近手写内核的速度。你不需要懂编译器,加个装饰器就行,而且它会自动处理控制流和数组形状。
  • 自动向量化与并行:jax.vmap 能自动把单样本函数变成批处理版本,jax.pmap 则把计算切分到多个设备上。以前写数据并行要折腾半天,现在一行代码就搞定,而且和 grad、jit 可以任意组合,比如 jit(vmap(grad(f))) 就能得到一个并行、编译好的梯度函数。

这些变换都是可微的,也就是说你可以在一个被 jit 编译过的函数里再求导,这种“变换的变换”让 JAX 的表达力远超传统框架。

真实的研究场景里,JAX 能帮上什么忙?

我见过不少团队把 PyTorch 代码迁到 JAX,最典型的场景就是需要快速实验新想法,同时又要榨干硬件性能。比如做强化学习,环境模拟往往要跑成千上万次,用 vmap 把整个 rollout 向量化,代码量从几百行缩到几十行,速度还快了好几倍。再比如设计一个新的神经网络层,你只需要定义前向传播,反向传播自动就生成了,不用手动推导梯度,也不用担心数值稳定性——JAX 的自动微分在底层做了精心优化。

科学计算领域更是 JAX 的主场。物理信息神经网络(PINN)需要计算高阶偏微分方程,传统框架里写个三阶导数能让人崩溃,而 JAX 里就是 grad(grad(grad(f)))` 的事。还有概率编程、贝叶斯推断,那些需要大量采样和梯度估计的模型,用 JAX 写出来既清晰又高效。很多论文的代码仓库现在直接提供 JAX 实现,因为复现者不用担心手动求导出错,也不用为不同设备写分支代码。

当然,JAX 也不是万能的。如果你只是想跑个现成模型做个 demo,PyTorch 的生态和调试体验可能更友好。但当你开始折腾自定义算子、研究新型优化器,或者需要把计算铺到一整柜 TPU 上时,JAX 那种“写数学,跑硬件”的纯粹感就会变得非常诱人。

谁该试试 JAX?

我觉得 JAX 特别适合两类人:一类是喜欢函数式编程、对数学表达有洁癖的研究员,另一类是对性能有极致追求、愿意花时间理解底层机制的工程师。它的学习曲线确实比 PyTorch 陡一些,因为你要习惯不可变数据、纯函数,还有那些看似神奇的变换组合。但一旦跨过门槛,你会发现它像一把瑞士军刀,能优雅地解决很多以前需要胶水代码才能搞定的问题。

另外,如果你已经在用 NumPy 做科学计算,想给代码加上自动微分和 GPU 支持,JAX 几乎是零成本迁移。它的 API 设计非常克制,没有庞大的类继承体系,核心概念就那么几个,文档也写得清楚。Google 自己把很多内部项目都押注在 JAX 上,社区活跃度也在稳步上升,不用担心它变成废弃品。

最后说两句

JAX 不是来取代 PyTorch 或 TensorFlow 的,它提供了一种更底层、更数学化的抽象,让你专注于“变换数值函数”本身,而不是框架的条条框框。如果你对这种理念感兴趣,不妨去 jax.readthedocs.io 翻翻教程,跑几个例子。它本身是开源免费的,想在 TPU 上大规模训练可能需要云资源,但框架本身没有任何费用。说不定,它会成为你下一个研究项目的秘密武器。

工具信息

分类
AI开发平台
价格
部分免费
浏览量
120
官网访问
77
收录时间
2026/9/8
信息有误?提交反馈

同类推荐