Skip to content

0.65.0

Compare
Choose a tag to compare
@avishniakov avishniakov released this 28 Aug 20:01
· 233 commits to main since this release
0b3294e

Important note for OSS users

In the latest release, in the onboarding flow, the first pipeline has been labeled python run.py --training-pipeline but rather should be simply python run.py only. If you see an error while trying to completely the onboarding , simply use the latter command instead!

New Features and Improvements

New Quickstart Experience

This example demonstrates how ZenML streamlines the transition of machine learning workflows from local environments to cloud-scale operations.

Run Single Step as a ZenML Pipeline

If you want to run just an individual step on your stack, you can simply call the step as you would with a normal Python function. ZenML will internally create a pipeline with just your step and run it on the active stack.

Other improvements and fixes

  • Updated AzureML Step Operator to work with SDKv2 and use Service Connectors
  • Added timestamps to log messages
  • Fixed issue with loading artifacts from the artifact store outside of the current active artifact store
  • Support of templated names for Model Version ({date} and {time} are currently supported placeholders)
  • run_with_accelerate step wrapper can be used as a Python Decorator on top of ZenML steps

Breaking changes

  • Workspace scoped POST endpoint full-stack was removed and merged with stacks POST endpoint
  • If you use 0.65.0 with any prior server version of ZenML it might lead to a situation where a Model Version is created for every step of the pipeline, while the Model class was only once configured on the pipeline level. This is considered an expected behavior and you should not use the mismatching versions of ZenML Client and Server, in general.
    Minimal example:
from zenml import step, pipeline, Model

@step
def step_1()->None:
    print("1")

@step
def step_2()->None:
    print("2")

@pipeline(model=Model(name="my_model"))
def my_pipeline()->None:
    step_1()
    step_2()

if __name__=="__main__":
    my_pipeline()

In this case on server versions prior to 0.65.0 you will get 2 Model Versions of my_model created: one in step_1 and one in step_2. Please upgrade your server to 0.65.0+ and you will get only one Model Version for the same code snippet.

What's Changed

New Contributors

Full Changelog: 0.64.0...0.65.0