LogoLogo
ProductResourcesGitHubStart free
  • Documentation
  • Learn
  • ZenML Pro
  • Stacks
  • API Reference
  • SDK Reference
  • Overview
  • Integrations
  • Stack Components
    • Orchestrators
      • Local Orchestrator
      • Local Docker Orchestrator
      • Kubeflow Orchestrator
      • Kubernetes Orchestrator
      • Google Cloud VertexAI Orchestrator
      • AWS Sagemaker Orchestrator
      • AzureML Orchestrator
      • Databricks Orchestrator
      • Tekton Orchestrator
      • Airflow Orchestrator
      • Skypilot VM Orchestrator
      • HyperAI Orchestrator
      • Lightning AI Orchestrator
      • Develop a custom orchestrator
    • Artifact Stores
      • Local Artifact Store
      • Amazon Simple Cloud Storage (S3)
      • Google Cloud Storage (GCS)
      • Azure Blob Storage
      • Develop a custom artifact store
    • Container Registries
      • Default Container Registry
      • DockerHub
      • Amazon Elastic Container Registry (ECR)
      • Google Cloud Container Registry
      • Azure Container Registry
      • GitHub Container Registry
      • Develop a custom container registry
    • Step Operators
      • Amazon SageMaker
      • AzureML
      • Google Cloud VertexAI
      • Kubernetes
      • Modal
      • Spark
      • Develop a Custom Step Operator
    • Experiment Trackers
      • Comet
      • MLflow
      • Neptune
      • Weights & Biases
      • Google Cloud VertexAI Experiment Tracker
      • Develop a custom experiment tracker
    • Image Builders
      • Local Image Builder
      • Kaniko Image Builder
      • AWS Image Builder
      • Google Cloud Image Builder
      • Develop a Custom Image Builder
    • Alerters
      • Discord Alerter
      • Slack Alerter
      • Develop a Custom Alerter
    • Annotators
      • Argilla
      • Label Studio
      • Pigeon
      • Prodigy
      • Develop a Custom Annotator
    • Data Validators
      • Great Expectations
      • Deepchecks
      • Evidently
      • Whylogs
      • Develop a custom data validator
    • Feature Stores
      • Feast
      • Develop a Custom Feature Store
    • Model Deployers
      • MLflow
      • Seldon
      • BentoML
      • Hugging Face
      • Databricks
      • vLLM
      • Develop a Custom Model Deployer
    • Model Registries
      • MLflow Model Registry
      • Develop a Custom Model Registry
  • Service Connectors
    • Introduction
    • Complete guide
    • Best practices
    • Connector Types
      • Docker Service Connector
      • Kubernetes Service Connector
      • AWS Service Connector
      • GCP Service Connector
      • Azure Service Connector
      • HyperAI Service Connector
  • Popular Stacks
    • AWS
    • Azure
    • GCP
    • Kubernetes
  • Deployment
    • 1-click Deployment
    • Terraform Modules
    • Register a cloud stack
    • Infrastructure as code
  • Contribute
    • Custom Stack Component
    • Custom Integration
Powered by GitBook
On this page
  • When to use it
  • Step Operator Flavors
  • How to use it

Was this helpful?

  1. Stack Components

Step Operators

Executing individual steps in specialized environments.

PreviousDevelop a custom container registryNextAmazon SageMaker

Last updated 21 days ago

Was this helpful?

The step operator enables the execution of individual pipeline steps in specialized runtime environments that are optimized for certain workloads. These specialized environments can give your steps access to resources like GPUs or distributed processing frameworks like .

Comparison to orchestrators: The is a mandatory stack component that is responsible for executing all steps of a pipeline in the correct order and providing additional features such as scheduling pipeline runs. The step operator on the other hand is used to only execute individual steps of the pipeline in a separate environment in case the environment provided by the orchestrator is not feasible.

When to use it

A step operator should be used if one or more steps of a pipeline require resources that are not available in the runtime environments provided by the . An example would be a step that trains a computer vision model and requires a GPU to run in a reasonable time, combined with a running on a Kubernetes cluster that does not contain any GPU nodes. In that case, it makes sense to include a step operator like , , or to execute the training step with a GPU.

Step Operator Flavors

Step operators to execute steps on one of the big cloud providers are provided by the following ZenML integrations:

Step Operator
Flavor
Integration
Notes

azureml

azure

Uses AzureML to execute steps

kubernetes

kubernetes

Uses Kubernetes Pods to execute steps

modal

modal

Uses Modal to execute steps

sagemaker

aws

Uses SageMaker to execute steps

spark

spark

Uses Spark on Kubernetes to execute steps in a distributed manner

vertex

gcp

Uses Vertex AI to execute steps

custom

Extend the step operator abstraction and provide your own implementation

If you would like to see the available flavors of step operators, you can use the command:

zenml step-operator flavor list

How to use it

You don't need to directly interact with any ZenML step operator in your code. As long as the step operator that you want to use is part of your active , you can simply specify it in the @step decorator of your step.

from zenml import step


@step(step_operator= <STEP_OPERATOR_NAME>)
def my_step(...) -> ...:
    ...

Specifying per-step resources

Enabling CUDA for GPU-backed hardware

If your steps require additional hardware resources, you can specify them on your steps as described .

Note that if you wish to use step operators to run steps on a GPU, you will need to follow to ensure that it works. It requires adding some extra settings customization and is essential to enable CUDA for the GPU to give its full acceleration.

Spark
orchestrator
orchestrator
Kubeflow orchestrator
SageMaker
Vertex
AzureML
ZenML stack
here
the instructions on this page
AzureML
Kubernetes
Modal
SageMaker
Spark
Vertex
Custom Implementation
ZenML Scarf