Has Julia met your need for AI and ML?

Hello,
Has Julia met your AI and ML needs? I mean, have you ever regretted choosing Julia when doing AI and ML projects?

Thank you.

1 Like

no

3 Likes

it didn’t, but then I submitted a PR and now it does

14 Likes

Hi,
Thank you so much gor your reply
Why Python is still mainstream for most AI? Why did you choose Julia?

The reason Python is used, is because it’s a good interface to high-speed code written in other fast languages. Julia can also be a good interface, and that faster language. Training massive AI/ML models relies on libraries like Microsoft’s DeepSpeed (“Python 69.0% C++ 20.3% Cuda 9.8%”, Julia could theoretically have replaced all the languages, the numbers are for source code, for runtime about 0% is Python), for distributed training, this is only of interest to big companies that can afford to do massive training of AI models costing millions of dollars.

AI is divided into many subfields, Machine learning (ML), natural language processing (NLP), neural networks/deep learning, and large-language models (LLMs) (what I had in mind for mainstream, fuelling so called chatbots like ChatGPT), text-to-image or video models (like LLMs based on transformer models), computer-vision, reinforcement learning, chess and poker playing AI etc.

Mainstream AI is transformer models, a type of machine learning application. The mainstream is already going to Mamba and other variants, and transformer models are being upgraded to KAN-based:

From yesterday:

While you already see KAN in “100.0% Python”, that’s sort of white lie, if you look at the dependencies “the requirements.txt” file, i.e. the heavy lifting is always done by non-Python, faster languages like C, or increasingly Julia.

If you’re a user of any of the AI models, or code, then Python is a good option, if you want to develop future best AI, then Julia is the best option.

For beginners I recommend this book (written by then 15-year old genius):

I bought it, and this one also seems good:

5 Likes

“AI and ML” is such a broad topic that it’s impossible to answer this.

What kinds of tasks do you want to do?

5 Likes

I’ll ask back, what are your AI (or ML) “needs”? Do you want to use AI, or develop AI? Either way you can use Julia, especially for developing AI. You are never paining yourself in a corner by learning Julia, even if you abandon Julia it will help you understand e.g. Python. That said the reverse is also true for learning Python or other languages.

1 Like

Hi,
Thank you so much for your reply.
So it has covered all your needs. What project have you done with Julia?

Hi,
Thank you so much.
So you don’t need to use other languages. What was your project?

Hi,
Thank you so much for your reply.
I want to learn AI programming and then define a project. I am a newbie.

Hello,
Thank you so much for your reply.
At first, I just want to use AI, but maybe in the future I will think about its development.

I have never regretted using julia but I also knew why I chose it when I did. As a rule of thumb: if you’re doing semi standard deep learning, even research thereof I would pick Jax or pytorch in Python. If you have more esoteric needs then julia is awesome as it can be quite performant without the need to commit to a given ecosystem like Jax or pytorch. It’s grossly over simplified of course but it’s a good rule of thumb. :blush:

13 Likes

Hi,
Thank you so much for your reply.
Why doesn’t Julia have something like Jax or pytorch? Can you call Jax or pytorch in Julia?

My super short answer was a bit ironic, because as many have said in this thread your question is so general, the topic is so broad, that most answers would be useless.

I would say that it is “hard” to regret using Julia, as you know from the beginning you are using something that is not (yet) mainstream.
Personally, I started ML with a MITx course that was using Python, but was (luckly) mostly theoretical, so I converted most of the approaches to Julia, created a package, and I am adding stuff to it as my needs arise.

4 Likes
  1. Julia is an open ecosystem which means most of our ML frameworks are just AbstractArrays while in Jax and pytorch you have a special tensor class you need to use. This means that what they have to be able to differentiate is substantially reduced. Thus, more optimizations are possible and a bit easier to maintain.
  2. You can call it from julia for sure but I don’t know if I would recommend programming that way.
2 Likes

yeah true if it isn’t buggy which requires a lot of investment. I kinda gave up on Flux.jl as it had too many rough edges and bugs. PyTorch works fine for me.

1 Like

Agreed, Flux is of course not as battle tested as pytorch.

I don’t recall the difference between Flux and Lux, but is Lux better, i.e. less buggy (or not at all…), and is it closer to PyTorch? And to you just use PyTorch, from Python, or do you mean from Julia? Which of Julia packages are most like PyTorch? Or like PyTorch Lightning? Or are they more comparable to Tensoflow of JAX?

I only noticed GitHub - SciML/juliatorch: Convert Julia functions to PyTorch autograd functions today, but knew of GitHub - FluxML/Torch.jl: Sensible extensions for exposing torch in Julia. and would either work well for you?

1 Like

Hello,
So, did you use Python?

1 Like

I do use python and PyTorch.