Choosing Your MLOps Stack
Feb 26, 2023 · 4 min read
No single tech stack works for every organization, thus it’s important that DS/ML/AI teams consider their needs carefully in-line with their current needs and priorities.
Data Science, Machine Learning, and Artificial Intelligence (collectively referred to as "ML" in this article) teams and practitioners are becoming evermore aware that their work needs more than just a "model" to succeed. In most cases, real-world ML systems are made up of only a small fraction of "ML code" and require a host of other important pieces to effectively develop, deploy, and support them.
Having a modern MLOps tech stack (see What is MLOps?) that compliments your ML work is crucial to ensuring its long-term success.
What is the "MLOps Stack"?
"To specify an architecture and infrastructure stack for Machine Learning Operations, we suggest a general... framework designed to be application- and industry-neutral. We align to the CRISP-ML(Q) model and describe the eleven components of the MLOps stack and line them up along with the ML Lifecycle." - ml-ops.org
Simply put, an "MLOps stack" is merely a self-selected tech stack of key components that support the ML lifecycle through established practices, tools, and solutions. I first read about the MLOps Stack when I came across an article at ml-ops.org.
Illustrated by ml-ops.org
The above diagram is the best visual demonstration of the ML lifecycle that I've seen. Not only does it depict the lifecycle, but it also shows where MLOps is uniquely poised to add value to the development, deployment, and management of ML systems. These 11 areas shown are to augment your productivity and effectiveness wherever possible along the lifecycle.
This diagram is a well thought-out reference that I hold onto and recommend to others. Check out the following research papers to see some of the thought-work that went into defining MLOps stacks and the CRISP-ML(Q) process model:
Does having an MLOps stack sounds like a lot of work? Well, yeah it is, but don't let that scare you. It's understandable if you don't have tools/processes in place for some of these areas, but check out the next section to get some helpful tips!
How to Choose Your MLOps Stack
"MLOps first started off with the problem of taking models from notebooks into production at scale, but it has now become a collection of tools that help with things that data scientists generally don’t like to do or worry about. A wide variety of companies, tools and open-source projects have emerged in areas such as data labeling, model and data versioning, experiment tracking, scaled-out training and model execution." - Source
Tip #1 - Choose new tools carefully
My team has noticed that we have had a very large tech stack over the past few years. Having to know so many technologies is not only difficult, but it makes it harder to maintain systems and hire new talent. Because of this, choosing to incorporate a new technology into our toolchain is a serious decision and one we do through careful consideration.
Here is some of the criteria that we use when assessing a new tool for our MLOps stack:
Open Source — Not only are open-source tools free, but they typically come with an active developer community or are backed by large organizations for ongoing maintenance and feature development.
Good Documentation — Are there detailed notes, FAQs, and/or tutorials for integrations and operations?
Language Support — Does the tool support our preferred languages, like Python?
Framework Support — Are popular ML frameworks integrated and supported by the tool? For example, we have a strong preference for tools that integrate well with TensorFlow.
Tip #2 - Prioritize what is needed now and iterate over time
Where do you need the most improvements in the ML lifecycle? Prioritize these areas in your MLOps stack by incorporating tools that will help you now. You can fill in your MLOps stack over time as important projects/initiatives arise, further fleshing out the stack as needed.
You might not be able to utilize each area of the MLOps Stack right away due to time and resource constraints, but here are some suggestions as you do so:
Set manageable milestones to steadily deliver new improvements and functionality
Use regular retrospective meetings (a.k.a., "Retros") to identify areas of improvement
Encourage your team to create proof-of-concepts for new technologies to identify how they can help you
Tip #3 - Learn from others
Stay in touch with the latest trends in MLOps by following popular forums like mlops.community or r/mlops. If possible, try to attend meetups to see what is working for others in your community.
If you found any of my content helpful, please consider donating
using one of the following options — Anything is appreciated!