Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Build portable, production-ready MLOps pipelines.

Join our Slack Slack Community and be part of the ZenML family.

Features · Roadmap · Report Bug · Vote New Features · Read Blog · Contribute to Open Source · Meet the Team

🎉 Version 0.54.1 is out. Check out the release notes here.


🏁 Table of Contents
  1. Introduction
  2. Quickstart
  3. Create your own MLOps Platform
  4. Roadmap
  5. Contributing and Community
  6. Getting Help
  7. License

🤖 Introduction

🤹 ZenML is an extensible, open-source MLOps framework for creating portable, production-ready machine learning pipelines. By decoupling infrastructure from code, ZenML enables developers across your organization to collaborate more effectively as they develop to production.

  • 💼 ZenML gives data scientists the freedom to fully focus on modeling and experimentation while writing code that is production-ready from the get-go.

  • 👨‍💻 ZenML empowers ML engineers to take ownership of the entire ML lifecycle end-to-end. Adopting ZenML means fewer handover points and more visibility on what is happening in your organization.

  • 🛫 ZenML enables MLOps infrastructure experts to define, deploy, and manage sophisticated production environments that are easy to use for colleagues.

The long journey from experimentation to production.

ZenML provides a user-friendly syntax designed for ML workflows, compatible with any cloud or tool. It enables centralized pipeline management, enabling developers to write code once and effortlessly deploy it to various infrastructures.

🤸 Quickstart

Install ZenML via PyPI. Python 3.8 - 3.11 is required:

pip install "zenml[server]"

Take a tour with the guided quickstart by running:

zenml go

🖼️ Create your own MLOps Platform

ZenML allows you to create and manage your own MLOps platform using best-in-class open-source and cloud-based technologies. Here is an example of how you could set this up for your team:

🔋 1. Deploy ZenML

For full functionality ZenML should be deployed on the cloud to enable collaborative features as the central MLOps interface for teams.

ZenML Architecture Diagram.

Currently, there are two main options to deploy ZenML:

  • ZenML Cloud: With ZenML Cloud, you can utilize a control plane to create ZenML servers, also known as tenants. These tenants are managed and maintained by ZenML's dedicated team, alleviating the burden of server management from your end.

  • Self-hosted deployment: Alternatively, you have the flexibility to deploy ZenML on your own self-hosted environment. This can be achieved through various methods, including using our CLI, Docker, Helm, or HuggingFace Spaces.

👨‍🍳 2. Deploy Stack Components

ZenML boasts a ton of integrations into popular MLOps tools. The ZenML Stack concept ensures that these tools work nicely together, therefore bringing structure and standardization into the MLOps workflow.

Deploying and configuring this is super easy with ZenML. For AWS, this might look a bit like this

# Deploy and register an orchestrator and an artifact store
zenml orchestrator deploy kubernetes_orchestrator --flavor kubernetes --cloud aws
zenml artifact-store deploy s3_artifact_store --flavor s3

# Register this combination of components as a stack
zenml stack register production_stack --orchestrator kubernetes_orchestrator --artifact-store s3_artifact_store --set # Register your production environment

When you run a pipeline with this stack set, it will be running on your deployed Kubernetes cluster.

You can also deploy your own tooling manually.

🏇 3. Create a Pipeline

Here's an example of a hello world ZenML pipeline in code:

# run.py
from zenml import pipeline, step


@step
def step_1() -> str:
    """Returns the `world` substring."""
    return "world"


@step
def step_2(input_one: str, input_two: str) -> None:
    """Combines the two strings at its input and prints them."""
    combined_str = input_one + ' ' + input_two
    print(combined_str)


@pipeline
def my_pipeline():
    output_step_one = step_1()
    step_2(input_one="hello", input_two=output_step_one)


if __name__ == "__main__":
    my_pipeline()
python run.py

👭 4. Start the Dashboard

Open up the ZenML dashboard using this command.

zenml show

🗺 Roadmap

ZenML is being built in public. The roadmap is a regularly updated source of truth for the ZenML community to understand where the product is going in the short, medium, and long term.

ZenML is managed by a core team of developers that are responsible for making key decisions and incorporating feedback from the community. The team oversees feedback via various channels, and you can directly influence the roadmap as follows:

🙌 Contributing and Community

We would love to develop ZenML together with our community! The best way to get started is to select any issue from the good-first-issue label and open up a Pull Request! If you would like to contribute, please review our Contributing Guide for all relevant details.

🆘 Getting Help

The first point of call should be our Slack group. Ask your questions about bugs or specific use cases, and someone from the core team will respond. Or, if you prefer, open an issue on our GitHub repo.

📜 License

ZenML is distributed under the terms of the Apache License Version 2.0. A complete version of the license is available in the LICENSE file in this repository. Any contribution made to this project will be licensed under the Apache License Version 2.0.

Metadata

Release files for zenml-nightly 0.54.1.dev20240119

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zenml-nightly 0.54.1.dev20240119
File Size Uploaded
zenml_nightly-0.54.1.dev20240119.tar.gz 5.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for zenml-nightly 0.54.1.dev20240119
File Interpreter ABI Platform
zenml_nightly-0.54.1.dev20240119-py3-none-any.whl Python 3 none any Details

Total release size: 11.6 MB

Release files / zenml_nightly-0.54.1.dev20240119.tar.gz

Download URL zenml_nightly-0.54.1.dev20240119.tar.gz
Size 5.4 MB
Tags Source
SHA-256 checksum
How to use checksums
0b9f85e6df17a478d72fcdcd7c4b558e41e3a8e4aef869b7292f9e1bafafab06
BLAKE2b-256 checksum
How to use checksums
d692581d13f7b47a36dc277e13ee8ec4c04b251178e37280be8af8c3ad7291cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.8.18 Linux/6.2.0-1018-azure

Release files / zenml_nightly-0.54.1.dev20240119-py3-none-any.whl

Download URL zenml_nightly-0.54.1.dev20240119-py3-none-any.whl
Size 6.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
33602bafcbb8c89ad1cfab1d8eef05da5c7635db4ff034b5f85a98371e00665b
BLAKE2b-256 checksum
How to use checksums
a2e3b51cc47de6933a35de6055f29c26e0be0a2576c94e99bd3139b241d6ae4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.8.18 Linux/6.2.0-1018-azure

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page