Overview
Overview of categories of MLOps components and third-party integrations.
If you are new to the world of MLOps, it is often daunting to be immediately faced with a sea of tools that seemingly all promise and do the same things. It is useful in this case to try to categorize tools in various groups in order to understand their value in your toolchain in a more precise manner.
ZenML tackles this problem by introducing the concept of Stacks and Stack Components. These stack components represent categories, each of which has a particular function in your MLOps pipeline. ZenML realizes these stack components as base abstractions that standardize the entire workflow for your team. In order to then realize the benefit, one can write a concrete implementation of the abstraction, or use one of the many built-in integrations that implement these abstractions for you.
Essential Components
Each pipeline run that you execute with ZenML will require a stack and each stack will be required to include at least an orchestrator and an artifact store. Apart from these two, the other components are optional and to be added as your pipeline evolves in MLOps maturity.
Stack Components Guide
Here is a full list of all stack components currently supported in ZenML, with a description of the role of that component in the MLOps process:

Orchestrator
Orchestrating the runs of your pipeline

Artifact Store
Storage for the artifacts created by your pipelines

Container Registry
Store for your containers

Data Validator
Data and model validation

Experiment Tracker
Tracking your ML experiments

Model Deployer
Services/platforms responsible for online model serving

Step Operator
Execution of individual steps in specialized runtime environments

Alerter
Sending alerts through specified channels

Image Builder
Builds container images.

Annotator
Labeling and annotating data

Model Registry
Manage and interact with ML Models

Feature Store
Management of your data/features
Writing custom component flavors
You can take control of how ZenML behaves by creating your own components. This is done by writing custom component flavors
.
Last updated
Was this helpful?