We are happy to announce the availability of MLflow 2.2.0!

MLflow 2.2.0 includes several major features and improvements

Features:

  • [Recipes] Add support for score calibration to the classification recipe (#7744, @sunishsheth2009)
  • [Recipes] Add automatic label encoding to the classification recipe (#7711, @sunishsheth2009)
  • [Recipes] Support custom data splitting logic in the classification and regression recipes (#7815, #7588, @sunishsheth2009)
  • [Recipes] Introduce customizable MLflow Run name prefixes to the classification and regression recipes (#7746, @kamalesh0406; #7763, @sunishsheth2009)
  • [UI] Add a new Chart View to the MLflow Experiment Page for model performance insights (#7864, @hubertzub-db, @apurva-koti, @prithvikannan, @ridhimag11, @sunishseth2009, @dbczumar)
  • [UI] Modernize and improve parallel coordinates chart for model tuning (#7864, @hubertzub-db, @apurva-koti, @prithvikannan, @ridhimag11, @sunishseth2009, @dbczumar)
  • [UI] Add typeahead suggestions to the MLflow Experiment Page search bar (#7864, @hubertzub-db, @apurva-koti, @prithvikannan, @ridhimag11, @sunishseth2009, @dbczumar)
  • [UI] Improve performance of Experiments Sidebar for large numbers of experiments (#7804, @jmahlik)
  • [Tracking] Introduce autologging support for native PyTorch models (#7627, @temporaer)
  • [Tracking] Allow specifying model_format when autologging XGBoost models (#7781, @guyrosin)
  • [Tracking] Add MLFLOW_ARTIFACT_UPLOAD_DOWNLOAD_TIMEOUT environment variable to configure artifact operation timeouts (#7783, @wamartin-aml)
  • [Artifacts] Include Content-Type response headers for artifacts downloaded from mlflow server (#7827, @bali0019)
  • [Model Registry] Introduce the searchModelVersions() API to the Java client (#7880, @gabrielfu)
  • [Model Registry] Introduce max_results, order_by and page_token arguments to MlflowClient.search_model_versions() (#7623, @serena-ruan)
  • [Models] Support logging large ONNX models by using external data (#7808, @dogeplusplus)
  • [Models] Add support for logging Diviner models fit in Spark (#7800, @BenWilson2)
  • [Models] Introduce MLFLOW_DEFAULT_PREDICTION_DEVICE environment variable to set the device for pyfunc model inference (#7922, @ankit-db)
  • [Scoring] Publish official Docker images for the MLflow Model scoring server at github.com/mlflow/mlflow/pkgs (#7759, @dbczumar)

Bug fixes:

  • [Recipes] Fix dataset format validation in the ingest step for custom dataset sources (#7638, @sunishsheth2009)
  • [Recipes] Fix bug in identification of worst performing examples during training (#7658, @sunishsheth2009)
  • [Recipes] Ensure consistent rendering of the recipe graph when inspect() is called (#7852, @sunishsheth2009)
  • [Recipes] Correctly respect positive_class configuration in the transform step (#7626, @sunishsheth2009)
  • [Recipes] Make logged metric names consistent with mlflow.evaluate() (#7613, @sunishsheth2009)
  • [Recipes] Add run_id and artifact_path keys to logged MLmodel files (#7651, @sunishsheth2009)
  • [UI] Fix bugs in UI validation of experiment names, model names, and tag keys (#7818, @subramaniam02)
  • [Tracking] Resolve artifact locations to absolute paths when creating experiments (#7670, @bali0019)
  • [Tracking] Exclude Delta checkpoints from Spark datasource autologging (#7902, @harupy)
  • [Tracking] Consistently return an empty list from GetMetricHistory when a metric does not exist (#7589, @bali0019; #7659, @harupy)
  • [Artifacts] Fix support for artifact operations on Windows paths in UNC format (#7750, @bali0019)
  • [Artifacts] Fix bug in HDFS artifact listing (#7581, @pwnywiz)
  • [Model Registry] Disallow creation of model versions with local filesystem sources in mlflow server (#7908, @harupy)
  • [Model Registry] Fix handling of deleted model versions in FileStore (#7716, @harupy)
  • [Model Registry] Correctly initialize Model Registry SQL tables independently of MLflow Tracking (#7704, @harupy)
  • [Models] Correctly move PyTorch model outputs from GPUs to CPUs during inference with pyfunc (#7885, @ankit-db)
  • [Build] Fix compatiblility issues with Python installations compiled using PYTHONOPTIMIZE=2 (#7791, @dbczumar)
  • [Build] Fix compatibility issues with the upcoming pandas 2.0 release (#7899, @harupy; #7910, @dbczumar)

Documentation updates:

  • [Docs] Add an example of saving and loading Spark MLlib models with MLflow (#7706, @dipanjank)
  • [Docs] Add usage examples for mlflow.lightgbm APIs (#7565, @canerturkseven)
  • [Docs] Add an example of custom model flavor creation with sktime (#7624, @benjaminbluhm)
  • [Docs] Clarify precision_recall_auc metric calculation in mlflow.evaluate() (#7701, @BenWilson2)
  • [Docs] Remove outdated example links (#7587, @asloan7)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.