We are happy to announce the availability of MLflow 2.0.1!
The 2.0.1 version of MLflow is a major milestone release that focuses on simplifying the management of end-to-end MLOps workflows, providing new feature-rich functionality, and expanding upon the production-ready MLOps capabilities offered by MLflow. Check out the MLflow 2.0 blog post for an in-depth walk through!
This release contains several important breaking changes from the 1.x API, additional major features and improvements.
Features:
- [Recipes] MLflow Pipelines is now MLflow Recipes - a framework that enables data scientists to quickly develop high-quality models and deploy them to production
- [Recipes] Add support for classification models to MLflow Recipes (#7082, @bbarnes52)
- [UI] Introduce support for pinning runs within the experiments UI (#7177, @harupy)
- [UI] Simplify the layout and provide customized displays of metrics, parameters, and tags within the experiments UI (#7177, @harupy)
- [UI] Simplify run filtering and ordering of runs within the experiments UI (#7177, @harupy)
- [Tracking] Update
mlflow.pyfunc.get_model_dependencies()
to download all referenced requirements files for specified models (#6733, @harupy) - [Tracking] Add support for selecting the Keras model
save_format
used bymlflow.tensorflow.autolog()
(#7123, @balvisio) - [Models] Set
mlflow.evaluate()
status to stable as it is now a production-ready API - [Models] Simplify APIs for specifying custom metrics and custom artifacts during model evaluation with
mlflow.evaluate()
(#7142, @harupy) - [Models] Correctly infer the positive label for binary classification within
mlflow.evaluate()
(#7149, @dbczumar) - [Models] Enable automated signature logging for
tensorflow
andkeras
models whenmlflow.tensorflow.autolog()
is enabled (#6678, @BenWilson2) - [Models] Add support for native Keras and Tensorflow Core models within
mlflow.tensorflow
(#6530, @WeichenXu123) - [Models] Add support for defining the
model_format
used bymlflow.xgboost.save/log_model()
(#7068, @AvikantSrivastava) - [Scoring] Overhaul the model scoring REST API to introduce format indicators for inputs and support multiple output fields (#6575, @tomasatdatabricks; #7254, @adriangonz)
- [Scoring] Add support for ragged arrays in model signatures (#7135, @trangevi)
- [Java] Add
getModelVersion
API to the java client (#6955, @wgottschalk)
Breaking Changes:
The following list of breaking changes are arranged by their order of significance within each category.
- [Core] Support for Python 3.7 has been dropped. MLflow now requires Python >=3.8
- [Recipes]
mlflow.pipelines
APIs have been replaced withmlflow.recipes
- [Tracking / Registry] Remove
/preview
routes for Tracking and Model Registry REST APIs (#6667, @harupy) - [Tracking] Remove deprecated
list
APIs for experiments, models, and runs from Python, Java, R, and REST APIs (#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar) - [Tracking] Remove deprecated
runs
response field fromGet Experiment
REST API response (#6541, #6524 @dbczumar) - [Tracking] Remove deprecated
MlflowClient.download_artifacts
API (#6537, @WeichenXu123) - [Tracking] Change the behavior of environment variable handling for
MLFLOW_EXPERIMENT_NAME
such that the value is always used when creating an experiment (#6674, @BenWilson2) - [Tracking] Update
mlflow server
to run in--serve-artifacts
mode by default (#6502, @harupy) - [Tracking] Update Experiment ID generation for the Filestore backend to enable threadsafe concurrency (#7070, @BenWilson2)
- [Tracking] Remove
dataset_name
andon_data_{name | hash}
suffixes frommlflow.evaluate()
metric keys (#7042, @harupy) - [Models / Scoring / Projects] Change default environment manager to
virtualenv
instead ofconda
for model inference and project execution (#6459, #6489 @harupy) - [Models] Move Keras model logging APIs to the
mlflow.tensorflow
flavor and drop support for TensorFlow Estimators (#6530, @WeichenXu123) - [Models] Remove deprecated
mlflow.sklearn.eval_and_log_metrics()
API in favor ofmlflow.evaluate()
API (#6520, @dbczumar) - [Models] Require
mlflow.evaluate()
model inputs to be specified as URIs (#6670, @harupy) - [Models] Drop support for returning custom metrics and artifacts from the same function when using
mlflow.evaluate()
, in favor ofcustom_artifacts
(#7142, @harupy) - [Models] Extend
PyFuncModel
spec to supportconda
andvirtualenv
subfields (#6684, @harupy) - [Scoring] Remove support for defining input formats using the
Content-Type
header (#6575, @tomasatdatabricks; #7254, @adriangonz) - [Scoring] Replace the
--no-conda
CLI option argument for native serving with--env-manager='local'
(#6501, @harupy) - [Scoring] Remove public APIs for
mlflow.sagemaker.deploy()
andmlflow.sagemaker.delete()
in favor of MLflow deployments APIs, such asmlflow deployments -t sagemaker
(#6650, @dbczumar) - [Scoring] Rename input argument
df
toinputs
inmlflow.deployments.predict()
method (#6681, @BenWilson2) - [Projects] Replace the
use_conda
argument with theenv_manager
argument within therun
CLI command for MLflow Projects (#6654, @harupy) - [Projects] Modify the MLflow Projects docker image build options by renaming
--skip-image-build
to--build-image
with a default ofFalse
(#7011, @harupy) - [Integrations/Azure] Remove deprecated
mlflow.azureml
modules from MLflow in favor of theazure-mlflow
deployment plugin (#6691, @BenWilson2) - [R] Remove conda integration with the R client (#6638, @harupy)
Bug fixes:
- [Recipes] Fix rendering issue with profile cards polyfill (#7154, @hubertzub-db)
- [Tracking] Set the MLflow Run name correctly when specified as part of the
tags
argument tomlflow.start_run()
(#7228, @Cokral) - [Tracking] Fix an issue with conflicting MLflow Run name assignment if the
mlflow.runName
tag is set (#7138, @harupy) - [Scoring] Fix incorrect payload constructor error in SageMaker deployment client
predict()
API (#7193, @dbczumar) - [Scoring] Fix an issue where
DataCaptureConfig
information was not preserved when updating a Sagemaker deployment (#7281, @harupy)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.