Owl project restructured

Dear OCaml Community, following our previous decision to conclude the Owl project, we have been touched by the supportive and encouraging feedback from all of you. After a thorough discussion, Liang @ryanrhymes and I think it might still be for the best interest of the OCaml community to continue maintaining a solid numerical computing library. Consequently, I, Jianxin, will assume the role of project leader to ensure Owl remains maintained. Our goal is to keep Owl stable and updated, given the very limited resource we have, as explained in our previous declaration. At least we aim to keep Owl compatible with the latest stable version of OCaml.

As mentioned previously, our availability to dedicate time to Owl is limited. Achieving our objectives will require collective effort. Thus, I am looking to assemble a team of contributors eager to support both development and maintenance tasks. For details on our plans and how you can contribute, please refer to the project’s README file.

If you’re interested in joining the Owl team, taking on a specific part of the codebase, or if you have any questions, do not hesitate to contact me here or via email.

The Owl tutorial book is also redesigned so as to make it more maintainable. Due to a change of template, some part of it may not look quite well formatted yet. You are welcome to take a look and help to improve it if you are interested.

34 Likes

Great to hear that. I am sure Owl will catch up to the Python scientific ecosystem soon.

A few things I would like to say,

I think Owl is the numpy of Ocaml mixed with automatic differentiation. Which is great for differentiable array programming. And I think most of the work should go into making it much faster and stable. Although numpy is great it lacks some features to use it for deep learning. Even if the goal is to use it on a commodity CPU and not on GPU there is still no support for model compression such as quantization and to my understanding under-laying computational kernels such as OpenBLAS and stuff doesn’t support dtypes like bfloat8, float8 or int4 (there is a jax related project called ml_dtypes which provides support for bfloat18, float8, etc but doesn’t support automatic higher precison accumulation by default). Thats why meta and google came up with their own computational kernels which support reduced precision operators such as FBGEMM and XNNPACK. So I think Owl should only focus focus on providing numpy + scipy like support for Ocaml and for deep learning we should start a new project separate from Owl (I feel like augmenting Owl’s ndarray would make it less clean and unstable) and from ground up as an Owl barn project. There is still a lot of functionality needed to be added into owl itself but keeping a deep learning library as a separate project would be better.

I would really like to contribute to both owl and owlbarn.

5 Likes

First and foremost, I want to express my sincere appreciation for Jianxin’s willingness to take the helm and drive this project forward. Having worked closely with him for years, I have full confidence that he will lead Owl to new heights, paving the way for a more sustainable future.

Secondly, I urge everyone interested to actively participate in the project. Whether it’s contributing features, refining code, fixing typos, sharing ideas, or enhancing documentation—every contribution, big or small, will be immensely valuable to the entire community. Let’s work together to ensure Owl thrives and benefits us all.

21 Likes

Thank you for picking up maintenance on this project @jrzhao42

It would be really helpful to get some feedback on Support Arm64 (and apple M1) by mseri · Pull Request #609 · owlbarn/owl · GitHub and see if it can be merged/released.

5 Likes

There is also some discussion on this issue Move project to ocaml-community · Issue #656 · owlbarn/owl · GitHub.

I am not clear on any commitment at present but I think one thing I can do is to port the latest pytorch/examples to owl if possible. I am slow paced doing this also for ocaml torch. Usually, I don’t like to announce something in plan in case I may not finish it, but maybe it’s appropriate to say it here.

4 Likes

Thank you all so much for the very constructive feedback. @mtk2xfugaku has some great idea about starting some deep learning project based on Owl; @arbipher offer to help build up more examples. I think these are great ideas. Please just feel free to start an issue on Github for discussion, submit PR, or start a new project in owlbarn .

@lambda_foo thanks for mentioning this issue. Currently I’m setting up test procedure for installing Owl, and I’ll look into this issue as soon as it’s done.

6 Likes