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_format used by mlflow.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 and keras models when mlflow.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 by mlflow.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 with mlflow.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 from Get 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 and on_data_{name | hash} suffixes from mlflow.evaluate() metric keys (#7042, @harupy)
[Models / Scoring / Projects] Change default environment manager to virtualenv instead of conda 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 of mlflow.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 of custom_artifacts (#7142, @harupy)
[Models] Extend PyFuncModel spec to support conda and virtualenv subfields (#6684, @harupy)
[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() and mlflow.sagemaker.delete() in favor of MLflow deployments APIs, such as mlflow deployments -t sagemaker (#6650, @dbczumar)
[Scoring] Rename input argument df to inputs in mlflow.deployments.predict() method (#6681, @BenWilson2)
[Projects] Replace the use_conda argument with the env_manager argument within the run 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 of False (#7011, @harupy)
[Integrations/Azure] Remove deprecated mlflow.azureml modules from MLflow in favor of the azure-mlflow deployment plugin (#6691, @BenWilson2)
[R] Remove conda integration with the R client (#6638, @harupy)
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_format used by mlflow.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 and keras models when mlflow.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 by mlflow.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 with mlflow.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 from Get 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 and on_data_{name | hash} suffixes from mlflow.evaluate() metric keys (#7042, @harupy)
[Models / Scoring / Projects] Change default environment manager to virtualenv instead of conda 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 of mlflow.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 of custom_artifacts (#7142, @harupy)
[Models] Extend PyFuncModel spec to support conda and virtualenv subfields (#6684, @harupy)
[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() and mlflow.sagemaker.delete() in favor of MLflow deployments APIs, such as mlflow deployments -t sagemaker (#6650, @dbczumar)
[Scoring] Rename input argument df to inputs in mlflow.deployments.predict() method (#6681, @BenWilson2)
[Projects] Replace the use_conda argument with the env_manager argument within the run 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 of False (#7011, @harupy)
... (truncated)
Commits
f2dd5e4 Run python3 dev/update_pypi_package_index.py (#7339)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps mlflow from 1.30.0 to 2.0.1.
Release notes
Sourced from mlflow's releases.
... (truncated)
Changelog
Sourced from mlflow's changelog.
... (truncated)
Commits
f2dd5e4
Run python3 dev/update_pypi_package_index.py (#7339)00c3b0a
2.0.1 versions for sagemaker .jar33c4942
bump to 2.0.18d3316f
Fix README (#7337)be9020d
Fix NFS enablement check when Spark session is unavailable on Databricks work...859ae19
Adding test_train_step_classifier_automl test (#7332)79e3872
Remove useless list in sorted (#7327)afe0f23
Use comprehension (#7328)9f13b0d
FLAML classifier metrics (#7322)63adcce
Fix camel-cased variables (#7325)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)