ZenML version 0.71.0 delivers a new Modal step operator integration as its core feature, enabling efficient cloud execution for ML pipelines with granular hardware configuration options. The release strengthens enterprise capabilities through improved token management and dashboard features while expanding artifact handling with dynamic naming and enhanced visualization support. Additionally, it includes various infrastructure improvements and bug fixes that enhance the platform's stability and usability, particularly around Docker connectivity, Kubernetes management, and service connector operations.
New Feature: Modal Step Operator Integration
ZenML now [integrates with Modal](https://modal.com/), bringing lightning-fast cloud execution capabilities to your ML pipelines. [This new step operator](https://docs.zenml.io/stack-components/step-operators/modal) allows you to execute individual pipeline steps on Modal's specialized compute instances, offering notable speed, particularly for Docker image building and hardware provisioning. With simple configuration options, you can precisely specify hardware requirements like GPU type, CPU count, and memory for each step, making it ideal for resource-intensive ML workloads.
New Feature: AWS Image Builder
Don't want to worry about Docker locally? Now build images remotely in AWS. Docs: https://docs.zenml.io/stack-components/image-builders/aws
Other Highlights
- **Workload API Token Management:** Refactored token management for improved security with a generic API token dispenser.
- **Dashboard Enhancements:**
- Introduced service account management capabilities.
- Added API key creation and integration features.
- **Dynamic Artifact Naming:** Introduced capability to dynamically name artifacts.
- **Visualization Enhancements:** Made dictionaries and lists visualizable, added JSON visualization type.
Additional Features and Improvements
- Improved error messages for Docker daemon connectivity
- Enhanced SageMaker URL handling
- Simplified model version artifact linkage
- Added testing for pipeline templates
- Improved Kubernetes pod and label length management
- Allowed skipping type annotations for step inputs
- Enabled using feature service instances instead of just names
Bug Fixes
- Fixed issues with getting out of an inaccessible active stack
- Fixed race conditions in the service connector type registry
- Resolved migration test complications
- Corrected documentation links
- Fixed artifact store and artifact URI handling
- Addressed various scalability and compatibility issues
Documentation Updates
- Added documentation redirects
- Updated PyTorch documentation links
- Improved service connector documentation
What's Changed
* Refactored workload API token management for better security and implemented generic API token dispenser by stefannica in https://github.com/zenml-io/zenml/pull/3154
* Add 0.70.0 to the migration tests by avishniakov in https://github.com/zenml-io/zenml/pull/3190
* Adjustments to the PR template by bcdurak in https://github.com/zenml-io/zenml/pull/3194
* [docs] Fix links in the how-to section of docs by wjayesh in https://github.com/zenml-io/zenml/pull/3196
* Fixing sagemaker urls to take the settings into consideration by bcdurak in https://github.com/zenml-io/zenml/pull/3195
* Add cached run into testing of migrations by avishniakov in https://github.com/zenml-io/zenml/pull/3199
* Fix service connector type registry race conditions by stefannica in https://github.com/zenml-io/zenml/pull/3202
* Refactor container resource configuration in Vertex Orchestrator test by avishniakov in https://github.com/zenml-io/zenml/pull/3203
* [docs] Add missing redirects by wjayesh in https://github.com/zenml-io/zenml/pull/3200
* Add links to `uv` new PyTorch documentation by strickvl in https://github.com/zenml-io/zenml/pull/3204
* Fix broken docs link by strickvl in https://github.com/zenml-io/zenml/pull/3208
* Bugfix for getting out of an inaccessible active stack with no permissions by bcdurak in https://github.com/zenml-io/zenml/pull/3198
* Simplify model version artifact linkage by schustmi in https://github.com/zenml-io/zenml/pull/3175
* Reenable macos testing by avishniakov in https://github.com/zenml-io/zenml/pull/3205
* Various fixes and improvements by stefannica in https://github.com/zenml-io/zenml/pull/3211
* Pass config path during zenml pipeline build by schustmi in https://github.com/zenml-io/zenml/pull/3212
* Add test for running templates by schustmi in https://github.com/zenml-io/zenml/pull/3192
* Fix service connector docstring by schustmi in https://github.com/zenml-io/zenml/pull/3216
* Improve error message when docker daemon is not reachable by schustmi in https://github.com/zenml-io/zenml/pull/3214
* Don't run migration for empty updates by schustmi in https://github.com/zenml-io/zenml/pull/3210
* Remove `--check` from format script and fix naming by safoinme in https://github.com/zenml-io/zenml/pull/3218
* More scalability improvements by schustmi in https://github.com/zenml-io/zenml/pull/3206
* Use correct keyword for artifact store open by schustmi in https://github.com/zenml-io/zenml/pull/3220
* Fix passing of some sagemaker settings by schustmi in https://github.com/zenml-io/zenml/pull/3221
* Add hint when trying to connect with api key by schustmi in https://github.com/zenml-io/zenml/pull/3222
* Allow passing None values as parameter for optional complex types by schustmi in https://github.com/zenml-io/zenml/pull/3215
* Limit kubernetes pod and label length by schustmi in https://github.com/zenml-io/zenml/pull/3217
* Updating the quickstart example to use the new `log_metadata` by bcdurak in https://github.com/zenml-io/zenml/pull/3188
* Allow skipping type annotations for step inputs by schustmi in https://github.com/zenml-io/zenml/pull/3223
* Modal Step Operator by strickvl in https://github.com/zenml-io/zenml/pull/2948
* Add dynamic artifacts naming, documentation and tests by avishniakov in https://github.com/zenml-io/zenml/pull/3201
* Run template CLI command and bugfix by schustmi in https://github.com/zenml-io/zenml/pull/3225
* Make dicts/lists visualizable and add JSON as viz type by wjayesh in https://github.com/zenml-io/zenml/pull/2882
* Instances of the `FeatureService`s are now used instead of only the names of the FeatureServices. by aiakide in https://github.com/zenml-io/zenml/pull/3209
* Quickstart fixes by schustmi in https://github.com/zenml-io/zenml/pull/3227
* Add missing docs by schustmi in https://github.com/zenml-io/zenml/pull/3226
* Misc cleanup by schustmi in https://github.com/zenml-io/zenml/pull/3229
* Fix input resolution for steps with dynamic artifact names by schustmi in https://github.com/zenml-io/zenml/pull/3228
* Follow-up on the `run_metadata` changes by bcdurak in https://github.com/zenml-io/zenml/pull/3193
* Fixed broken links by htahir1 in https://github.com/zenml-io/zenml/pull/3232
* Fixed wandb login problem in Quickstart by htahir1 in https://github.com/zenml-io/zenml/pull/3233
* Misc bugfixes by schustmi in https://github.com/zenml-io/zenml/pull/3234
* Add additional way to fetch docker repo digest by schustmi in https://github.com/zenml-io/zenml/pull/3231
* AWS Image Builder implementation by stefannica in https://github.com/zenml-io/zenml/pull/2904
* Disable client-side caching for some orchestrators by schustmi in https://github.com/zenml-io/zenml/pull/3235
* Fix artifact uris for artifacts with name placeholders by schustmi in https://github.com/zenml-io/zenml/pull/3237
* Materializer test fix on Windows by bcdurak in https://github.com/zenml-io/zenml/pull/3238
* Fix GET step run endpoint to return unhydrated response if requested by schustmi in https://github.com/zenml-io/zenml/pull/3240
* Pipeline run API token fixes and improvements by stefannica in https://github.com/zenml-io/zenml/pull/3242
**Full Changelog**: https://github.com/zenml-io/zenml/compare/0.70.0...0.71.0