MLOps — When Training The Best Model Is Not Enough.

If you are reading this, chances are you have already realized that solving business problems with Machine Learning is not as straightforward as it may seem, and it is not exclusively about models. According to Gartner’s predictions, “Through 2020, 80% of AI projects will remain alchemy, run by wizards whose talents will not scale in the organization” and Transform 2019 of VentureBeat predicted that 87% of AI projects will never make it into production. You can turn this +80% ML project failure rate with an enhanced DevOps process and tools which help you with traceability, data management, and tailored infrastructure. In the last few months, you could start hearing more frequently about a new trend that helps businesses overcome those problems, which is MLOps. This is a concept to bring DevOps-like practices into the Machine Learning field. It focuses on making the process of development, release, and maintenance of Machine Learning systems efficient and reliable. To understand better the meaning and sudden popularity of MLOps, it’s worth briefly analyzing the bigger picture.
In the last years, we have seen tremendous technological growth. Big data is widely available, many advanced Machine Learning algorithms are implemented in the popular Python (and not only) libraries, the hardware is much cheaper and specialized (e.g. TPUs for neural network training) than a few years ago, and access to on-demand computing was never easier than now, with cloud providers. Yet, as mentioned at the beginning, in the majority of the cases models built by data scientists never make it into production.
While ML code lies at the heart of all the AI solutions, it’s just a tiny piece of the entire system needed to deliver reliably high-quality Machine Learning solutions to production.
Let’s take a step back and think about how Software Development looked like a few years ago. I still remember big monolith applications, manual verification of what is going to be released, and a bit of uncertainty if everything will go well during mostly manual release during which system is not available. It changed drastically. Now, with the rise of microservice-based architectures and cloud solutions, what often matters is the speed of development and frequency of zero-downtime releases. In fact, many companies continuously release code to production throughout the day. It all became possible thanks to huge progress being made in the DevOps area and having many mature open-source tools available like Git, Docker, Jenkins, Kubernetes to name a few that can be easily adopted by any organization.
Compared to Software Development, Machine Learning is not only about code but also about data. This adds a lot of complexity and creates a need for a separate group of tools and processes to make development, release, and maintenance easier. Applying Machine Learning to business problems becomes a norm in software companies that is why MLOps is emerging to define how to do it efficiently and effectively.
The definition from Wikipedia describes it as a “Practice for collaboration and communication between data scientists and operation professionals to help manage production ML lifecycle”. At the same time, Ops stands for Operations so what do Machine Learning Operations have in common with collaboration and communication between two groups of people? It’s easy to get confused here, so let’s try to explain it better.
When you want to apply Machine Learning to solve a business problem you have to perform many Operations. Those Operations span across people of different profiles.


