3 ms·
Hello, creator of Elixir here (and co-creator of Nx). I like your breakdown of the requirements in three abilities. I think Elixir provides all three of them (
by josevalim 3y ago
Hello, creator of Elixir here (and co-creator of Nx).
I like your breakdown of the requirements in three abilities. I think Elixir provides all three of them (with a caveat) and I will refer to two videos for those who want to learn more:
* This video shows how you can use Livebook (open-source computational notebook environment) to explore pre-trained neural networks (from Hugging Face), learn how they work, and then deploy them as part of a Phoenix web application: https://news.livebook.dev/announcing-bumblebee-gpt2-stable-diffusion-and-more-in-elixir-3Op73O https://news.livebook.dev/announcing-bumblebee-gpt2-stable-d...
* This video shows how to scale a neural network serving, first to run it concurrently, and then have it run distributed over multiple CPUs and GPUs: https://news.livebook.dev/distributed2-machine-learning-notebooks-with-elixir-and-livebook---launch-week-1---day-2-1aIlaw https://news.livebook.dev/distributed2-machine-learning-note...
The caveat is about your second ability. The production scale models are, at the end of the day running native/cuda code, using the same backends as Python (Google XLA and LibTorch). What we do is that we compile your Elixir code into a graph which is then compiled to the CPU/GPU just-in time (in an approach similar to JAX). You can find more information here: https://github.com/elixir-nx/#why-elixir https://github.com/elixir-nx/#why-elixir
- nologic01 3y agoPersonally I would love to see your vision succeed. Monocultures are intrinsically risky and limiting. Pretty soon we are all fish in a bowl, unable to see the water. What will it take? I am just an armchair philosopher in this respect. Like they say languages are only in part about communicating with the computer, they are about communicating with other people. So these three major tasks are really about winning over three different types of people and their peculiar brain wirings, motivations and aspirations. 1) and 2) are more introvert: mathematical types that want to express their inner abstract worlds in computer instructions in the least painful way. The famous data point is that pytorch became the tool of choice of academic ML publishing over the first mover tensorflow. Then you have the true computer nerds that love making the most of hardware and see in ML a major new stage of computing: HPC becoming mass market. 3) is more extrovert (keeping in mind the norms of the tech industry :-) developing and scaling delightful products and apps to be used by non-technical people. Erlang/elixir clearly offers something special in terms of 3) and that is important because in the end its all down to serving useful software to people.