On top of what Lukasz said, I’d add that Lukasz and I have been sharing notes for some time and we’re both interested in building Raven and OCANNL on shared foundations that would benefit the community. Some of those foundations include the bindings (Metal, CUDA, etc.). Nothing concrete just yet, but this is definitely going in a good direction in terms of benefiting the broader ecosystem!
I started migrating one of my projects to Raven and I really must say that it’s very impressive. It has already been said, but thanks a lot for the time invested in this. I’m 100% sure that this project have the potential to add a whole new dynamic to the OCaml ecosystem !
How did I miss this release? This is so awesome!
Question: what is your dataframe replacement for pandas/polars/vaex/etc.?
Impressive work! I’m new to Ocaml (and here), but I’d like to contribute as I can
Sorry I had missed your post! As it turns out, I just added a dataframe library called Talon, on the recommendation of @mostafatouny: raven/talon at main · raven-ml/raven · GitHub
It’s not released yet, but if you’re adventurous you can pin it to try it, don’t hesitate to leave feedback on the issue tracker ![]()
Thanks for the kind words and the interest! There’s a good first issue in the issue tracker that’s probably the best place to get started: GitHub · Where software is built (and I’ll add more)
Don’t hesitate to reach out at thibaut.mattio@gmail.com also, I’m happy to give more pointer and help you get started!
It looks good. There are some things that I need to figure out because I don’t know the ecosystem. I’ll reply in the issue when I have something
Help Shape Raven’s First Alpha - Call for Contributions!
I’m excited to announce that Raven’s first alpha is scheduled in 3 weeks, just in time for FunOCaml! (Following our zeroth alpha in July)
What’s New
We’ve added a plethora of new features:
- New
Talonpackage that provides an equivalent for Pandas/Polars to work with dataframes - New
Sagapackage providing tokenizers and NLP functionnalities (e.g. Ngram models) - Support for symbolic shapes and lazy views in Nx
- Support for new and machine-learning-specific data types, including boolean, bfloat16, complex16, float8, etc.
- Support for forward mode differenciation through
Rune.jvp - Support for automatic vectorization through
Rune.vmap - Addition of a complete linear algebra suite in Nx
And, of course, since it is the theme of the FunOCaml workshop: addition of transformers blocks in Kaun to train large language models.
All of these features are currently in-progress in Raven’s repository, ranging from ready-to-release (e.g. Talon) to prototyping (e.g. Kaun’s transformers), but we’re aiming for a release with all of the above mid-september.
Call for Contributions
If you were looking to contribute to Raven, now’s probably a really good time! There’s going to be a lot of activity in the coming weeks, and the repository is in good shape for first-time-contributors, with a lot of good first issues: we’ve just landed a complete linear algebra suite that’s ~80% working, which makes for the perfect set of starter issues: failing tests that need fixing.
- 15 failing tests on the native backend
- 35 on the C backend
These range from implementing frontend operations using our new backend ops, to investigating bugs in the newly added linear algebra functions. Pick a test, fix it, open a PR!
Getting Started
git clone https://github.com/raven-ml/raven
dune pkg lock
dune build @nx/runtest
If you’re interested in contributing, don’t hesitate to reach out as well,
I’m happy to give pointers and show you around the codebase.
Hoping you’re as excited about the upcoming release as I am - Happy Hacking!
Just FYI I very much missed this announcement as discuss didn’t notify me about your follow up message. I’ll mess around with raven this week though!