Almost Human reports
edit : Chen Ping
2022 year , Which programming language would you choose ?
There was a saying spread a few years ago :Julia Will replace Python, Become one of the new and most popular programming languages . Let's take a wait-and-see attitude towards this statement for the time being , But as a powerful tool in scientific computing ,Julia The advantages have emerged , This means that programmers have another choice .
In Data Science 、 Artificial intelligence and other fields , Careful contrast Julia and Python, We will find that : Same task , as long as Python Achievable ,Julia You can do it. , And much more efficient , The grammar is also concise and elegant , Just in terms of communication , Fame is not as good as Python.
In recent days, ,reddit A hot discussion from the majority of netizens , This post mentioned , lately , some Julia The developers of the language pack discussed Julia in ML Current state , And compare its state with Python ML Ecosystems are compared .
Original address :
https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of/
From the University of Utrecht JordiBolibar Think ,「 Julia Indeed, it has great potential in machine learning , But its current state is a bit mixed . More specifically , I am here SciML Insist on using Julia The main reason is ,DifferentialEquations.jl The library works very well , But in Python Nothing similar was found in the . However , For my research , The real pain is AD part . Ever since I started using Julia , I am here Zygote Two errors were encountered in , This slowed down my work for several months . But I still think Julia yes SciML The best choice , But these libraries ( And its documentation ) It should be optimized to be more user-friendly .」
Net friend @jgreener64 Express :「Julia Medium ML It is very powerful in some fields ,Julia Anything is possible .Julia The problem is :Julia Medium ML Need a lot of existing knowledge or a lot of time to search / Repeated test . On a personal level , I'm currently using Julia Develop novel differentiable algorithms .」
In addition to the heated discussion of netizens ,Julia Package developers Christopher Rackauckas Around the following 7 A question , Answered the content that netizens are more concerned about .Rackauckas yes MIT And mathematicians and pharmacologists at the University of Maryland , It mainly uses Julia Programming .Rackauckas by Julia、 Mathematics and random biology have opened special blogs , To introduce the relevant content , also Rackauckas stay Julia Some libraries have been developed in , Include ( But not limited to, )DifferentialEquations.jl and Pumas.
Christopher Rackauckas
The questions include :
In the following, we have selected several issues that we are more concerned about to report :
problem 3:Julia stay 「 standard ML」 How is the performance of the ?
Julia The kernel speed is very good : stay CPU On , We did very well , stay GPU On , Everyone just calls the same cudnn etc. ;Julia Of AD The speed is also very good . however Zygote There may be some overhead , But with Jax/PyTorch/TensorFlow comparison ,Zygote In most cases, the speed is very fast . say concretely ,PyTorch The cost is much higher , In standard ML You can't even measure... In the workflow . A large enough matrix multiplication will solve the assignment problem or other problems O(n) problem ;Julia No fusion kernel , So in most benchmarks , If the user views it , You'll find that it doesn't merge conv or RNN cudnn call .
problem 4: What important experiments and benchmarks should we track ?
XLA The distributed scheduler is very good . When we think about expansion , We should ignore PyTorch, Think about it DaggerFlux And TensorFlow/Jax.XLA More flexibility to change operations , So I think XLA It's the winner , We need to use e-graphs Skills to match it . Another thing to pay attention to is 「 Missing middle part in automatic differentiation 」, This situation still needs to be solved .
problem 7: What are the recommended packages ?
I tend to use... When needed Flux, But we still try to use DiffEqFlux. In terms of existing kernels ,Flux Is the most complete , But its style bored me . I hope to have one Flux Do not use implicit parameters , Instead, use explicit parameters . I hope these parameters are determined by ComponentArrays Express .
Please refer to :https://discourse.julialang.org/t/state-of-machine-learning-in-julia/74385
THE END
Please contact the official account for authorization.