What Is The Difference Between DevOps And MLOps?
Henrik Skogström / December 21, 2020
If you are involved with production machine learning in any way, understanding MLOps is essential. For people with software development experience, the easiest way to understand MLOps is to draw a parallel between it and DevOps. This guide will help you understand both terms, as well as how they are similar and different.
What is DevOps?
DevOps refers to bringing together the development, testing, and operational aspects of software development. DevOps' goal is to turn these siloed processes into a continuous set of cohesive steps within an organization.
DevOps's primary principles include the automation of processes, continuous delivery, and feedback loops. These principles rely on communication between departments and a set of tools that solidify and facilitate these processes in a visible way (for example, CI/CD systems).
Continuous Delivery and Automation
Let's dive in a bit more into the continuous delivery and automation requirements of DevOps.
Continuous delivery refers to combining the development, testing, and deployment processes into one streamlined operation. It is heavily reliant on automation, and the primary goal is to speed up the deployment of machine learning products.
If your development teams are practicing DevOps, they can quickly ship smaller improvements, which reduces the risk of breaking changes and allows for a more iterative approach to software development. Speed and quality are not only crucial for the development team but also the business as a whole.
Since the development teams can spend less time on manual processes and tedious tasks, it allows them to be receptive to change requests from the business to update existing features and create new ones to be launched in a more frequent cycle. Users won't have to wait for a quarterly or yearly release cycle, but rather, their needs can be met much more quickly.
As prefaced above, another essential piece of DevOps is agile planning. Whereas traditional project management approaches focus on long timelines and schedules, DevOps encourages developers to arrange work in short iterations and increase the number of releases.
It outlines the high-level objectives, but the details are flexible so that developers can test ideas early on. This strategy also prevents the risk of going down a specific path only to find out that the project is not suitable for the business to begin with.
Improved Company Culture
DevOps also allows organizations to improve communication and company culture because it encourages collaboration between different teams. For example, a common practice is to set up a staging environment for new features that can be reviewed while being developed. As multiple departments work together around a test environment, communication can be much more effective and concrete than just talking in feature specs and other documentation.
Now that we have an understanding of DevOps and what it entails let's define MLOps.
MLOps, or machine learning operations, are the methods used to streamline the machine learning life cycle from beginning to end. It aims to bridge the gap between design, model development, and operations. Often in ML development, the model development and operations are entirely separate and connected by a manual handover, which leads to long turnaround times.
MLOps unifies data collection, preprocessing, model training, evaluation, deployment, and retraining to a single process that teams work to maintain. This collaboration and communication between system administrators, the data science teams, and other departments throughout the organization bring a common understanding of how production models are developed and maintained, similar to what DevOps does for software.
Allow More Time for Models to be Developed
Without MLOps practices and tools, there are two strategies to productizing machine learning models. The first alternative is that the data scientist has to be a jack of all trades who manages to do everything from data cleaning and model selection to setting up a Kubernetes cluster and managing infrastructure. The second alternative is a manual handover between the data scientist doing model development and an ML engineer doing model productization.
Neither approach is ideal, as they both cut into the time that data scientists use to focus on their primary role of wrangling data and developing models. Reliable MLOps tooling (read end-to-end ML pipelines) allows model development to continue to productization without any gaps and without requiring data scientists to be experts at cloud infrastructure.
Improved Time to Market
MLOps relies on the automation of the training and retraining process. It improves the time to market for the machine learning algorithms and the continuous integration and delivery practices facilitate getting these systems into production much faster.
As a result, the production models should be producing accurate predictions at all times. Automation will help you meet changing requirements and respond to changes in the underlying data. Most minor issues (such as data drift) can simply be met by automatically running the ML pipeline, while larger issues might require some changes to the pipeline itself, but never will the work start from scratch.
Higher Confidence in Predictions
As mentioned above, MLOps helps produce more accurate predictions because you can meet the challenge of changes in the data quicker. An essential piece of MLOps tooling is not just to automate the actions that happen when an issue is detected but also to detect these issues.
An MLOps system should have the capabilities to measure model drift to ensure that you serve high-quality predictions. This will minimize the risk of false insights -- meaning you can more confidently put machine learning to use in business critical use cases.
How are they Similar?
So, you may have noticed that there are some similarities between DevOps and machine learning operations. This is because MLOps took many principles from DevOps, which was developed first.
Both DevOps and MLOps encourage and facilitate collaboration between people who develop (software engineers and data scientists), people who manage infrastructure, and other stakeholders. Both emphasize process automation in continuous development so that speed and efficiency are maximized.
Major Differences Between DevOps and MLOps
Although they have some similarities, it is impossible to take DevOps tools and use them to operationalize machine learning. Some requirements are specific to machine learning.
Versioning for Machine Learning
With DevOps, code version control is utilized to ensure clear documentation regarding any changes or adjustments made to the software being developed. With machine learning, however, the code isn't the only changing input. Data is the other critical input that'll need to be managed, as will parameters, metadata, logs, and finally, the model.
Training machine learning models, especially true for deep learning, tend to be very compute-intensive. For most software projects, the build time is entirely irrelevant, and thus the hardware on which it's done is also irrelevant. Larger models, however, can take anywhere from hours to weeks to train, even on most GPU machines cloud vendors offer, meaning that an MLOps setup needs to be much more sophisticated in what kind of machines it can manage.
Monitoring is a part of good DevOps practices as well. In the past few years, site reliability engineering (SRE) has been all the rage highlighting the importance of monitoring in software development. The difference between monitoring in DevOps and MLOps is that software doesn't degrade, while machine learning models do.
Once a model is deployed into production, it begins to generate predictions from new data that it receives from the real world. This data will continue to change and adapt as the business environment does, resulting in model degradation. MLOps provides for procedures that facilitate continuous monitoring and retraining so that the algorithms may continue to be used in production.
A Leap Forward
In 2020, there is simply no successful software company that can operate without adopting any DevOps principles and tooling. Similarly, going forward, there will be simply no way to manage the development and productization of machine learning models without some shared MLOps principles and tooling. Like DevOps today, there'll be different flavors of MLOps, but a systematic approach is simply a must.