Roadmap
Raven is in pre-alpha. We're building towards our first milestone: an end-to-end demo of training MNIST with visualizations in a Quill notebook.
Alpha Release
Our immediate goal is demonstrating the complete ML workflow in OCaml:
- Train a neural network on MNIST using Kaun
- Visualize training metrics with Hugin
- Run everything in a Quill notebook
- Achieve reasonable performance on CPU
Once we hit this milestone, we'll stabilize the APIs and cut v1.0.
Post-Alpha: Training Large Models
After v1.0, we'll shift the goalpost to training large models. Our focus will become mostly performance, as the requirement for real-world ML workflows.
JIT Compilation (!!)
- Build JIT compiler for Rune
- Target LLVM, CUDA, and Metal for hardware acceleration
Accelerated Backends
- Metal backend for Nx (macOS GPU support)
- CUDA backend for Nx (NVIDIA GPU support)
- Seamless integration with the JIT
Deep Learning at Scale
- Complete Kaun with all features needed for modern LLMs
- Train and run inference for Llama 3 as our benchmark
- Enable distributed training across multiple GPUs
Beyond
Future development depends on community adoption and potential sponsorship. If we achieve sustainable development, priorities include:
Performance Parity with Python
- Match NumPy/PyTorch performance through JIT optimization
- Prove OCaml can compete on raw compute, not just developer experience
Expanded Ecosystem (based on community feedback)
- Dataframe manipulation library
- Domain-specific libraries for common workflows
Distributed Computing
- First-class distributed training support
- Tools for deploying models at scale
But first, we need to prove the concept works. That starts with MNIST in a notebook.