MLflow v2.0.1 Release Notes
Release Date: 2022-11-14 // over 3 years ago-
๐ 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. ๐ 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_formatused 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
tensorflowandkerasmodels 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_formatused 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
getModelVersionAPI 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.pipelinesAPIs have been replaced withmlflow.recipes - ๐ [Tracking / Registry] Remove
/previewroutes for Tracking and Model Registry REST APIs (#6667, @harupy) - ๐ [Tracking] Remove deprecated
listAPIs for experiments, models, and runs from Python, Java, R, and REST APIs (#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar) - ๐ [Tracking] Remove deprecated
runsresponse field fromGet ExperimentREST API response (#6541, #6524 @dbczumar) - ๐ [Tracking] Remove deprecated
MlflowClient.download_artifactsAPI (#6537, @WeichenXu123) - [Tracking] Change the behavior of environment variable handling for
MLFLOW_EXPERIMENT_NAMEsuch that the value is always used when creating an experiment (#6674, @BenWilson2) - โก๏ธ [Tracking] Update
mlflow serverto run in--serve-artifactsmode by default (#6502, @harupy) - โก๏ธ [Tracking] Update Experiment ID generation for the Filestore backend to enable threadsafe concurrency (#7070, @BenWilson2)
- [Tracking] Remove
dataset_nameandon_data_{name | hash}suffixes frommlflow.evaluate()metric keys (#7042, @harupy) - 0๏ธโฃ [Models / Scoring / Projects] Change default environment manager to
virtualenvinstead ofcondafor model inference and project execution (#6459, #6489 @harupy) - ๐ [Models] Move Keras model logging APIs to the
mlflow.tensorflowflavor 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
PyFuncModelspec to supportcondaandvirtualenvsubfields (#6684, @harupy) - ๐ [Scoring] Remove support for defining input formats using the
Content-Typeheader (#6575, @tomasatdatabricks; #7254, @adriangonz) - [Scoring] Replace the
--no-condaCLI 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
dftoinputsinmlflow.deployments.predict()method (#6681, @BenWilson2) - [Projects] Replace the
use_condaargument with theenv_managerargument within therunCLI command for MLflow Projects (#6654, @harupy) - ๐ [Projects] Modify the MLflow Projects docker image build options by renaming
--skip-image-buildto--build-imagewith a default ofFalse(#7011, @harupy) - ๐ [Integrations/Azure] Remove deprecated
mlflow.azuremlmodules from MLflow in favor of theazure-mlflowdeployment 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
tagsargument tomlflow.start_run()(#7228, @Cokral) - [Tracking] Fix an issue with conflicting MLflow Run name assignment if the
mlflow.runNametag is set (#7138, @harupy) - ๐ [Scoring] Fix incorrect payload constructor error in SageMaker deployment client
predict()API (#7193, @dbczumar) - ๐ [Scoring] Fix an issue where
DataCaptureConfiginformation was not preserved when updating a Sagemaker deployment (#7281, @harupy)
๐ Small bug fixes and documentation updates:
7309, #7314, #7288, #7276, #7244, #7207, #7175, #7107, @sunishsheth2009; #7261, #7313, #7311, #7249, #7278, #7260, #7284, #7283, #7263, #7266, #7264, #7267, #7265, #7250, #7259, #7247, #7242, #7143, #7214, #7226, #7230, #7227, #7229, #7225, #7224, #7223, #7210, #7192, #7197, #7196, #7204, #7198, #7191, #7189, #7184, #7182, #7170, #7183, #7131, #7165, #7151, #7164, #7168, #7150, #7128, #7028, #7118, #7117, #7102, #7072, #7103, #7101, #7100, #7099, #7098, #7041, #7040, #6978, #6768, #6719, #6669, #6658, #6656, #6655, #6538, #6507, #6504 @harupy; #7310, #7308, #7300, #7290, #7239, #7220, #7127, #7091, #6713 @BenWilson2; #7332, #7299, #7271, #7209, #7180, #7179, #7158, #7147, #7114, @prithvikannan; #7275, #7245, #7134, #7059, @jinzhang21; #7306, #7298, #7287, #7272, #7258, #7236, @ayushthe1; #7279, @tk1012; #7219, @rddefauw; #7333, #7218, #7208, #7188, #7190, #7176, #7137, #7136, #7130, #7124, #7079, #7052, #6541 @dbczumar; #6640, @WeichenXu123; #7200, @hubertzub-db; #7121, @Gonmeso; #6988, @alonisser; #7141, @pdifranc; #7086, @jerrylian-db; #7286, @shogohida