zenml-io/zenml · 上手攻略

  • 仓库:zenml-io/zenml
  • 链接:https://github.com/zenml-io/zenml
  • 分类:ai
  • 作者:Jay
  • 更新:2026-07-15

这是什么

ZenML 是一个面向 ML/AI 工程师的统一 AI 平台,核心价值主张是:一次编写,随处运行——用 Python 装饰器定义管道(pipelines)和步骤(steps),ZenML 自动处理容器化、追踪、部署和基础设施抽象,让你无需改动代码即可在本地、Kubernetes、云端之间切换。

ZenML 的定位介于实验追踪工具(MLflow、W&B)和完整 AI 平台(Kubeflow、AWS SageMaker)之间——它是开源的、对框架中立的企业级 MLOps 框架,专为既需要实验灵活性又需要生产级可靠性的团队设计。

解决什么问题

  • 实验管理与生产脱节:数据科学家在笔记本上跑实验,生产靠工程师重写一遍代码部署。ZenML 让两者使用同一套 pipeline 定义。
  • 框架绑定:用 PyTorch 写的训练流程,想切换到 JAX 或换一套基础设施,改动成本极高。ZenML 通过 Stack(栈)抽象解耦了代码和基础设施。
  • Agent 工作流缺少标准化:AI Agent 的开发、评估、部署缺乏统一框架。ZenML 从 2024 年起明确支持 Agent 场景,包括 RAG pipelines、Agent outer loop 评估等。
  • 工具碎片化:MLflow 追踪实验、Weave 做 LLM 可观测性、Kubeflow 做编排——三套系统三套维护成本。ZenML 试图提供统一入口。

核心概念

概念 说明
Step Python 函数加 @step 装饰器,代表管道中的一个计算单元
Pipeline Python 函数加 @pipeline 装饰器,串联多个 Step
Artifact Step 之间的数据传递对象,ZenML 自动版本化和存储
Stack 基础设施组合:orchestrator(编排器)+ artifact store( artifact 存储)+ deployer(部署器)+ ...
Snapshot 管道的不可变快照,包含代码、配置和容器镜像,可参数化复用
Deployment 将管道发布为 HTTP 实时服务

快速安装

Python 版本:支持 Python 3.10 ~ 3.14。

# 仅安装客户端(连接远程服务器用)
pip install zenml

# 本地开发:客户端 + 本地服务器 + Web Dashboard
pip install 'zenml[server]'

# Jupyter 环境
pip install 'zenml[jupyter]'

# 验证安装
zenml version

本地启动 Dashboard:

zenml login --local
# 然后访问 http://localhost:8080

Docker 方式:

# 仅 CLI 环境
docker run -it zenmldocker/zenml /bin/bash

# 带服务器
docker run -it -d -p 8080:8080 zenmldocker/zenml-server

核心用法

编写第一个管道

创建 run.py

from zenml import step, pipeline

@step
def basic_step() -> str:
    """返回问候语的简单步骤"""
    return "Hello World!"

@pipeline
def basic_pipeline() -> str:
    """串联步骤的管道"""
    greeting = basic_step()
    return greeting

if __name__ == "__main__":
    basic_pipeline()

运行:

python run.py

ZenML 会自动追踪执行、存储 artifact,结果可在 CLI 或 Dashboard 查看。

创建快照(可选但推荐)

快照是管道的不可变版本,包含代码、配置和容器镜像,可被参数化触发:

zenml pipeline snapshot create run.basic_pipeline --name my_snapshot

部署为实时服务

# 直接部署(ZenML 自动创建隐式快照)
zenml pipeline deploy run.basic_pipeline --name my_deployment

# 或从快照部署
zenml pipeline snapshot deploy my_snapshot --deployment my_deployment

连接到远程基础设施

部署远程 ZenML 服务器(自托管或 ZenML Pro 托管):

zenml login
zenml project set <PROJECT_NAME>

配置远程 Stack

# 使用部署向导创建云端 Stack
zenml stack register <STACK_NAME> \
  --deployer <DEPLOYER_NAME> \
  --orchestrator <ORCHESTRATOR_NAME> \
  --artifact-store <ARTIFACT_STORE_NAME>

# 切换 Stack
zenml stack set <REMOTE_STACK_NAME>

# 现在运行管道自动在云基础设施上执行
python run.py

ZenML 处理容器构建、编排执行和 artifact 追踪的全部细节。

LLM / Agent 场景(ZenML 的重要扩展方向)

ZenML 提供了针对 AI Agent 的专门支持:

# Agent outer loop 评估示例
# 来自 github.com/zenml-io/zenml/tree/main/examples/agent_outer_loop

# LLM RAG Pipeline 示例
# 来自 github.com/zenml-io/zenml-projects/tree/main/llm-complete-guide

# Agent 部署示例
# 来自 github.com/zenml-io/zenml/tree/main/examples/deploying_agent

ZenML 还提供了 MCP Server(Model Context Protocol),允许通过自然语言查询管道、触发部署:

# 从 zenml-io/mcp-zenml 下载 .dxt 文件
# 导入到 Claude Desktop / Cursor 等 MCP 兼容客户端
# 配置 ZenML 服务器 URL 和 API Key
# 即可用自然语言操作 ML 基础设施

ZenML VS Code 插件

在编辑器内管理管道:

# 从 VS Code Marketplace 安装 "ZenML.zenml-vscode"
# 支持管道运行、Dashboard 内嵌查看

典型适用场景

场景 说明
团队需要管理多个 ML 模型 特征工程、训练、评估、部署全流程统一管理,artifact 版本化
快速从实验到生产 notebook 里的实验代码加两个装饰器就能部署,无需重写
LLMOps / Agent 编排 RAG 管道、Agent outer loop 评估、多阶段 Agent 工作流
多云/混合基础设施 一套代码切换 AWS/GCP/Azure,无需改业务逻辑
企业级合规需求 开源自托管,无厂商锁定,完整流水线可见可控

坑与注意

说明
学习曲线存在 Stack、Connector、Snapshot 等抽象概念需要一定时间理解,不是"下载即上手"
远程部署有一定运维成本 需要维护 ZenML Server(Kubernetes 或 Docker),比纯本地使用复杂
轻量用户可能觉得太重 如果只是跑一个一次性训练脚本,ZenML 带来的价值有限
版本迭代快 2024-2025 年间 API 有变化,某些旧教程可能过时
中文资料少 主要文档和社区讨论为英文,中文资料有限
不能完全替代数据管道工具 ZenML 管理 ML/AI 工作流,不是通用数据 ETL 工具,需要与 dbt、Airflow 等配合
Python 专属 不支持 R、Julia 等其他语言

与同类对比

竞品 定位 与 ZenML 的核心区别
MLflow 实验追踪 + 模型管理 ZenML 是端到端编排平台,MLflow 主要做追踪和注册;ZenML 覆盖更深层的 pipeline 编排和部署
Kubeflow Pipelines Kubernetes 原生 ML 管道 Kubeflow 更偏向 K8s 专家;ZenML 屏蔽了 K8s 细节,Python 优先
Airflow / Prefect 通用工作流编排 Airflow/Prefect 是通用 ETL,不是 ML 原生;ZenML 在 pipeline 层面做了 ML 语义抽象
LangChain / LangGraph LLM 应用开发 ZenML 是 MLOps 平台,LangChain 是应用开发框架;可以配合使用
AWS SageMaker Pipelines 云厂商 ML 平台 厂商锁定;ZenML 开源、框架中立,可切换云厂商
Weights & Biases (Weave) LLM 可观测性 Weave 专注 LLM tracing;ZenML 是端到端生命周期管理

核心差异:ZenML 的核心差异是"写一次跑所有地方"的 pipeline 抽象 + Stack 解耦 + 端到端可观测性,尤其在 Agent/LLM 场景的扩展是其与老牌 MLOps 工具的明显分水岭。

一句话推荐结论

如果你的团队同时跑传统 ML 模型和 AI Agent,需要一套能把实验代码直接变成生产服务的统一平台,ZenML 是目前开源生态里最完整的方案之一——从 pip install 到本地 Dashboard 再到 Kubernetes 部署,三步搞定。


信息来源:GitHub 仓库 README / ZenML 官方文档(installation.md / hello-world.md);pip 命令和代码示例基于官方文档原文,未运行代码验证;Python 版本支持范围基于官方文档。