Machine Learning is pushing technology to its limits in almost every way. Few fields require such a short cycle from innovations in theory to large-scale, production-ready implementations in practice. The full stack, from mathematical foundations to 1000-core GPU-optimised training processes, may involve scores of disparate tools and platforms, and all of these have become required reading for the modern ML practitioner.
Julia is the perfect ally against these challenges. With cut-and-paste convenience for the basics alongside the raw power to scale up and get the most of commodity and custom hardware, Julia makes the easy things simple and the hard things possible.
Out of the box, Julia supports the frameworks you know and love via packages like TensorFlow.jl and MXNet.jl, allowing a large class of models to be built using elegant mathematical syntax. Where the frameworks make building the model easy, Julia makes everything else easy – from data pipelines and custom processing to distribution and deployment.
What if TensorFlow isn’t the right fit for your problem? With Julia you don’t need a team of Google engineers to roll your own solution, and the authors of Knet.jl and Mocha.jl have been able to get state-of-the-art deep learning performance in a matter of months. Meanwhile, there’s a burgeoning ecosystem of specialised tools for the hardest problems in ML, like probabilistic programming, MCMC and Bayesian Inference. Check out how straightforward it is to implement classic algorithms like k nearest neighbours on GPUs and practical systems like a parallel recommendation engine on many cores alike.
When figuring out how to turn terabytes of astronomical survey images into a detailed map of the sky, the authors of Celeste turned to Julia to implement a custom, highly parallel variational inference engine. Julia was the only tool which satisfied their need for speed while serving as a common language between domain and computational experts, allowing a much faster iteration cycle than would have been possible otherwise.
Julia’s unprecedented combination of performance and ease-of-use is a unifying force in Machine Learning. Use it to take back control in the maze of different tools in your workflow. Use it to explore the seed of an idea, and use it to grow that idea into production code running on your distributed cluster. Use it to get new developers up to speed with your codebase in days, not months. Above all, use it to get real results faster than ever before.