Package: zenml
Build portable, production-ready MLOps pipelines.Join ourSlack Communityand be part of the ZenML family.Features·Roadmap·Report Bug·Vote New Features·Read Blog·Contribute to Open Source·Meet the Team🎉 Version 0.55.3 is out. Check out the release noteshere.🏁 Table of ContentsIntroductionQuickstartCreate your own MLOps PlatformDeploy ZenMLDeploy Stack ComponentsCreate a PipelineStart the DashboardRoadmapContributing and CommunityGetting HelpLicense🤖 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.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.🤸 QuickstartInstall ZenMLviaPyPI. Python 3.8 - 3.11 is required:pipinstall"zenml[server]"Take a tour with the guided quickstart by running:zenmlgo🖼️ Create your own MLOps PlatformZenML 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 ZenMLFor full functionality ZenML should be deployed on the cloud to
enable collaborative features as the central MLOps interface for teams.Currently, there are two main options to deploy ZenML:ZenML Cloud: WithZenML 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 todeploy
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 ComponentsZenML boasts a ton ofintegrationsinto
popular MLOps tools. TheZenML Stackconcept 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. ForAWS, this might
look a bit like this# Deploy and register an orchestrator and an artifact storezenmlorchestratordeploykubernetes_orchestrator--flavorkubernetes--cloudaws
zenmlartifact-storedeploys3_artifact_store--flavors3# Register this combination of components as a stackzenmlstackregisterproduction_stack--orchestratorkubernetes_orchestrator--artifact-stores3_artifact_store--set# Register your production environmentWhen you run a pipeline with this stack set, it will be running on your deployed
Kubernetes cluster.You can alsodeploy your own tooling manually.🏇 3. Create a PipelineHere's an example of a hello world ZenML pipeline in code:# run.pyfromzenmlimportpipeline,step@stepdefstep_1()->str:"""Returns the `world` substring."""return"world"@stepdefstep_2(input_one:str,input_two:str)->None:"""Combines the two strings at its input and prints them."""combined_str=input_one+' '+input_twoprint(combined_str)@pipelinedefmy_pipeline():output_step_one=step_1()step_2(input_one="hello",input_two=output_step_one)if__name__=="__main__":my_pipeline()pythonrun.py👭 4. Start the DashboardOpen up the ZenML dashboard using this command.zenmlshow🗺 RoadmapZenML is being built in public. Theroadmapis 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 acore teamof
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:Vote on your most wanted feature on ourDiscussion
board.Start a thread in ourSlack channel.Create an issueon our
GitHub repo.🙌 Contributing and CommunityWe would love to develop ZenML together with our community! The best way to get
started is to select any issue from thegood-first-issuelabeland open up a Pull Request! If you
would like to contribute, please review ourContributing
Guidefor all relevant details.🆘 Getting HelpThe first point of call should
beour Slack group.
Ask your questions about bugs or specific use cases, and someone from
thecore teamwill respond.
Or, if you
prefer,open an issueon
our GitHub repo.Vulnerability affectingzenml<0.67(CVE-2024-25723)We have identified a critical security vulnerability in ZenML versions prior to
0.46.7. This vulnerability potentially allows unauthorized users to take
ownership of ZenML accounts through the user activation feature. Pleaseread our
blog postfor more information on how we've addressed this.📜 LicenseZenML is distributed under the terms of the Apache License Version 2.0.
A complete version of the license is available in theLICENSEfile in
this repository. Any contribution made to this project will be licensed under
the Apache License Version 2.0.