Will Reactant.jl become a machine learning framework?

So, anyway, back to the main question, will Reactant.jl become a machine learning framework?

Reactant is to Julia what Jax is to Python (see arXiv: "The State of Julia for Scientific Machine Learning" by Berman & Ginesin - #41 by mofeing for a comparison on this).

Reactant already converts NNlib functions to the corresponding StableHLO calls. If you are using Lux, most of the Lux tutorials (Tutorials | Lux.jl Docs) currently use Reactant. You can think of Lux being a nicer frontend for Reactant for ML tasks with high-level layer implementations (similar to how Equinox/Flax makes it nicer to deal with Jax).

One of the final bits that remains to be done in Reactant, is to extend its support for the SciML packages (we need some features like custom adjoints and automatic tracing of loops without @trace macro). Till then my general recommendation is to use Lux + Reactant for ML tasks, Lux + Zygote (or Enzyme) for SciML tasks.

(there is also some work to integrate reactant into flux Support for Reactant.jl by mcabbott · Pull Request #28 · FluxML/Fluxperimental.jl · GitHub)

11 Likes