π 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:
mlflow.pyfunc.get_model_dependencies() to download all referenced requirements files for specified models (#6733, @harupy)save_format used by mlflow.tensorflow.autolog() (#7123, @balvisio)mlflow.evaluate() status to stable as it is now a production-ready APImlflow.evaluate() (#7142, @harupy)mlflow.evaluate() (#7149, @dbczumar)tensorflow and keras models when mlflow.tensorflow.autolog() is enabled (#6678, @BenWilson2)mlflow.tensorflow (#6530, @WeichenXu123)model_format used by mlflow.xgboost.save/log_model() (#7068, @AvikantSrivastava)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.
mlflow.pipelines APIs have been replaced with mlflow.recipes/preview routes for Tracking and Model Registry REST APIs (#6667, @harupy)list APIs for experiments, models, and runs from Python, Java, R, and REST APIs (#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar)runs response field from Get Experiment REST API response (#6541, #6524 @dbczumar)MlflowClient.download_artifacts API (#6537, @WeichenXu123)MLFLOW_EXPERIMENT_NAME such that the value is always used when creating an experiment (#6674, @BenWilson2)mlflow server to run in --serve-artifacts mode by default (#6502, @harupy)dataset_name and on_data_{name | hash} suffixes from mlflow.evaluate() metric keys (#7042, @harupy)virtualenv instead of conda for model inference and project execution (#6459, #6489 @harupy)mlflow.tensorflow flavor and drop support for TensorFlow Estimators (#6530, @WeichenXu123)mlflow.sklearn.eval_and_log_metrics() API in favor of mlflow.evaluate() API (#6520, @dbczumar)mlflow.evaluate() model inputs to be specified as URIs (#6670, @harupy)mlflow.evaluate(), in favor of custom_artifacts (#7142, @harupy)PyFuncModel spec to support conda and virtualenv subfields (#6684, @harupy)Content-Type header (#6575, @tomasatdatabricks; #7254, @adriangonz)--no-conda CLI option argument for native serving with --env-manager='local' (#6501, @harupy)mlflow.sagemaker.deploy() and mlflow.sagemaker.delete() in favor of MLflow deployments APIs, such as mlflow deployments -t sagemaker (#6650, @dbczumar)df to inputs in mlflow.deployments.predict() method (#6681, @BenWilson2)use_conda argument with the env_manager argument within the run CLI command for MLflow Projects (#6654, @harupy)--skip-image-build to --build-image with a default of False (#7011, @harupy)mlflow.azureml modules from MLflow in favor of the azure-mlflow deployment plugin (#6691, @BenWilson2)π Bug fixes:
tags argument to mlflow.start_run() (#7228, @Cokral)mlflow.runName tag is set (#7138, @harupy)predict() API (#7193, @dbczumar)DataCaptureConfig information was not preserved when updating a Sagemaker deployment (#7281, @harupy)π Small bug fixes and documentation updates:
MLflow 1.30.0 includes several major features and improvements
π Features:
Delta tables as a datasource in the ingest step (#7010, @sunishsheth2009)run_name attribute for create_run, get_run and update_run APIs (#6782, #6798 @apurva-koti)creation_time and last_update_time for the search_experiments API (#6979, @harupy)run_id IN and run ID NOT IN for the search_runs API (#6945, @harupy)user_id and end_time for the search_runs API (#6881, #6880 @subramaniam02)run_name and run_id for the search_runs API (#6899, @harupy; #6952, @alexacole)name attribute and mlflow.runName tag (#6971, @BenWilson2)update_run() API for modifying the status and name attributes of existing runs (#7013, @gabrielfu)mlflow gc cli API (#6977, @shaikmoeed)evaluate() API (#6728, @jerrylian-db)evaluate() API (#7077, @dbczumar)BooleanType to mlflow.pyfunc.spark_udf() (#6913, @BenWilson2)Pool class options for SqlAlchemyStore (#6883, @mingyu89)π Bug fixes:
SparkSession if one does not exist (#6846, @prithvikannan)bool column types in Step Card data profiles (#6907, @sunishsheth2009)mlflow.pyspark.ml.autolog() (#6831, @harupy)mlflow-skinny package to serve as base requirement in MLmodel requirements (#6974, @BenWilson2)pos_label to sklearn.metrics.precision_recall_curve in mlflow.evaluate() (#6854, @dbczumar)SqlAlchemyStore where set_tag() updates the incorrect tags (#7027, @gabrielfu)π Documentation updates:
Keras serialization format (#7022, @balvisio)π Small bug fixes and documentation updates: