---
name: mkurman/zenml
source: https://app.decimal.ai/s/mkurman-zenml@1/SKILL.md
source_sha256: 989926093836
---

## Overview

ZenML is an MLOps framework for portable, reproducible ML pipelines. It provides a standardized pipeline abstraction with built-in tracking, caching, artifact management, and integration with major ML and cloud tools.

## Installation

```bash
uv pip install zenml
```

## Basic Pipeline

```python
from zenml import pipeline, step

@step
def load_data() -> dict:
    return {"data": [1, 2, 3], "labels": [0, 1, 0]}

@step
def train_model(data: dict) -> str:
    return f"Trained on {len(data['data'])} samples"

@pipeline
def training_pipeline():
    data = load_data()
    model = train_model(data)

training_pipeline()
```

## Caching

```python
# Steps are automatically cached — rerunning only changes
@step(enable_cache=True)
def preprocess(raw: dict) -> dict:
    return {"features": [x * 2 for x in raw["data"]]}

# Changing parameters invalidates cache
@step
def train_with_params(data: dict, lr: float = 0.01) -> str:
    return f"Trained with lr={lr}"
```

## Stack and Deploy

```bash
zenml stack register my_stack -o default -a default
zenml stack set my_stack
zenml deploy
```

## References
- [ZenML docs](https://docs.zenml.io/)
- [ZenML GitHub](https://github.com/zenml-io/zenml)