MLflow 2.6.0 includes several major features and improvements
Features:
- [Models / Scoring] Add support for passing extra params during inference for PyFunc models (#9068, @serena-ruan)
- [Gateway] Add support for MLflow serving to MLflow AI Gateway (#9199, @BenWilson2)
- [Tracking] Support
save_kwargs for mlflow.log_figure to specify extra options when saving a figure (#9179, @stroblme)
- [Artifacts] Display progress bars when uploading/download artifacts (#9195, @serena-ruan)
- [Models] Add support for logging LangChain's retriever models (#8808, @liangz1)
- [Tracking] Add support to log customized tags to runs created by autologging (#9114, @thinkall)
Bug fixes:
- [Models] Fix
text_pair functionality for transformers TextClassification pipelines (#9215, @BenWilson2)
- [Models] Fix LangChain compatibility with SQLDatabase (#9192, @dbczumar)
- [Tracking] Remove patching
sklearn.metrics.get_scorer_names in mlflow.sklearn.autolog to avoid duplicate logging (#9095, @WeichenXu123)
Documentation updates:
- [Docs / Examples] Add examples and documentation for MLflow AI Gateway support for MLflow model serving (#9281, @BenWilson2)
- [Docs / Examples] Add
sentence-transformers doc & example (#9047, @es94129)
Deprecation:
- [Models] The
mlflow.mleap module has been marked as deprecated and will be removed in a future release (#9311, @BenWilson2)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.5.0 includes several major features and improvements:
- [MLflow AI Gateway] We are excited to announce the release of MLflow AI Gateway, a powerful tool designed to streamline the usage and management of various large language model (LLM) providers, such as OpenAI and Anthropic, within an organization. It offers a standardized interface that simplifies the interaction with these services and delivers centralized, secure management of credentials. To get started with MLflow AI Gateway, check out the docs at https://mlflow.org/docs/latest/gateway/index.html. (#8694, @harupy, @BenWilson2, @dbczumar)
- [Auth] We are excited to announce the release of authentication and authorization support for MLflow Tracking and the MLflow Model Registry, providing integrated access control capabilities to both services. To get started, check out the docs at https://mlflow.org/docs/latest/auth/index.html. (#9000, #8975, #8626, #8837, #8841, @gabrielfu, @harupy)
Features:
Bug fixes:
- [Security] Improve robustness to LFI attacks on Windows by enhancing path validation (#8999, @serena-ruan)
- If you are using
mlflow server or mlflow ui on Windows, we recommend upgrading to MLflow 2.5.0 as soon as possible.
- [Scoring] Support nullable array type values as spark_udf return values (#9014, @WeichenXu123)
- [Models] Revert cache deletion of system modules when adding custom model code to the system path (#8722, @trungn1)
- [Models] add micro version to mlflow version pinning (#8687, @C-K-Loan)
- [Artifacts] Prevent manually deleted artifacts from causing artifact garbage collection to fail (#8498, @PenHsuanWang)
Documentation updates:
- [Docs] Update .push_model_to_sagemaker docs (#8851, @pdifranc)
- [Docs] Fix invalid link for Azure ML documentation (#8800, @dunnkers)
- [Artifacts / Docs / Models / Projects] Adds information on the OCI MLflow plugins for seamless integration with Oralce Cloud Infrastructure services. (#8707, @mrDzurb)
Deprecation:
- [Models] Deprecate the
gluon model flavor. The mlflow.gluon module will be removed in a future release. (#8968, @harupy)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.4.0 includes several major features and improvements
Features:
- [Tracking] Introduce dataset tracking APIs:
mlflow.data and mlflow.log_input() (#8186, @prithvikannan)
- [Tracking] Add
mlflow.log_table() and mlflow.load_table() APIs for logging evaluation tables (#8523, #8467, @sunishsheth2009)
- [Tracking] Introduce
mlflow.get_parent_run() fluent API (#8493, @annzhang-db)
- [Tracking / Model Registry] Re-introduce faster artifact downloads on Databricks (#8352, @dbczumar; #8561, @harupy)
- [UI] Add dataset tracking information to MLflow Tracking UI (#8602, @prithvikannan, @hubertzub-db)
- [UI] Introduce Artifact View for comparing inputs, outputs, and metadata across models (#8602, @hubertzub-db)
- [Models] Extend
mlflow.evaluate() to support LLM tasks (#8484, @harupy)
- [Models] Support logging subclasses of
Chain and LLMChain in mlflow.langchain flavor (#8453, @liangz1)
- [Models] Add support for LangChain Agents to the
mlflow.langchain flavor (#8297, @sunishsheth2009)
- [Models] Add a
mlflow.sentence_transformers flavor for SentenceTransformers (#8479, @BenWilson2; #8547, @Loquats)
- [Models] Add support for multi-GPU inference and efficient weight loading for
mlflow.transformers flavor (#8448, @ankit-db)
- [Models] Support the
max_shard_size parameter in the mlflow.transformers flavor (#8567, @wenfeiy-db)
- [Models] Add support for audio transcription pipelines in the
mlflow.transformers flavor (#8464, @BenWilson2)
- [Models] Add support for audio classification to
mlflow.transformers flavor (#8492, @BenWilson2)
- [Models] Add support for URI inputs in audio models logged with the
mlflow.transformers flavor (#8495, @BenWilson2)
- [Models] Add support for returning classifier scores in
mlflow.transformers pyfunc outputs (#8512, @BenWilson2)
- [Models] Support optional inputs in model signatures (#8438, @apurva-koti)
- [Models] Introduce an
mlflow.models.set_signature() API to set the signature of a logged model (#8476, @jerrylian-db)
- [Models] Persist ONNX Runtime InferenceSession options when logging a model with
mlflow.onnx.log_model() (#8433, @leqiao-1)
Bug fixes:
- [Tracking] Terminate Spark callback server when Spark Autologging is disabled or Spark Session is shut down (#8508, @WeichenXu123)
- [Tracking] Fix compatibility of
mlflow server with Flask<2.0 (#8463, @kevingreer)
- [Models] Convert
mlflow.transformers pyfunc scalar string output to list of strings during batch inference (#8546, @BenWilson2)
- [Models] Fix a bug causing outdated pyenv versions to be installed by
mlflow models build-docker (#8488, @Hellzed)
- [Model Registry] Remove aliases from storage when a Model Version is deleted (#8459, @arpitjasa-db)
Documentation updates:
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.3.2 is a patch release containing the following features, bug fixes and changes:
Features:
- [Models] Add GPU support for transformers models pyfunc inference and serving (#8375, @ankit-db)
- [Models] Disable autologging functionality for non-relevant models when training a transformers model (#8405, @BenWilson2)
- [Models] Add support for preserving and overriding torch_dtype values in transformers pipelines (#8421, @BenWilson2)
- [Models] Add support for Feature Extraction pipelines in the transformers flavor (#8423, @BenWilson2)
- [Tracking] Add basic HTTP auth support for users, registered models, and experiments permissions (#8286, @gabrielfu)
Bug Fixes:
- [Models] Fix inferred schema issue with Text2TextGeneration pipelines in the transformers flavor (#8391, @BenWilson2)
- [Models] Change MLflow dependency pinning in logged models from a range value to an exact major and minor version (#8422, @harupy)
Documentation updates:
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.3.1 is a patch release containing bug fixes and a security patch for GHSA-83fm-w79m-64r5. If you are using mlflow server or mlflow ui, we recommend upgrading to MLflow 2.3.1 as soon as possible.
Security patches:
- [Security] Fix critical LFI attack vulnerability by disabling the ability to provide relative paths in registered model sources (#8281, @BenWilson2)
Bug fixes:
- [Tracking] Fix an issue causing file and model uploads to hang on Databricks (#8348, @harupy)
- [Tracking / Model Registry] Fix an issue causing file and model downloads to hang on Databricks (#8350, @dbczumar)
- [Scoring] Fix regression in schema enforcement for model serving when using the inputs format for inference (#8326, @BenWilson2)
- [Model Registry] Fix regression in model naming parsing where special characters were not accepted in model names (#8322, @arpitjasa-db)
- [Recipes] Fix card rendering with the pandas profiler to handle columns containing all null values (#8263, @sunishsheth2009)
We are happy to announce the availability of MLflow 2.3.0!
MLflow 2.3.0 includes several major features and improvements
Features:
- [Models] Introduce a new transformers named flavor (#8236, #8181, #8086, @BenWilson2)
- [Models] Introduce a new openai named flavor (#8191, #8155, @harupy)
- [Models] Introduce a new langchain named flavor (#8251, #8197, @liangz1, @sunishsheth2009)
- [Models] Add support for Pytorch and Lightning 2.0 (#8072, @shrinath-suresh)
- [Tracking] Add support for logging LLM input, output, and prompt artifacts (#8234, #8204, @sunishsheth2009)
- [Tracking] Add support for HTTP Basic Auth in the MLflow tracking server (#8130, @gabrielfu)
- [Tracking] Add search_model_versions to the fluent API (#8223, @mariusschlegel)
- [Artifacts] Add support for parallelized artifact downloads (#8116, @apurva-koti)
- [Artifacts] Add support for parallelized artifact uploads for AWS (#8003, @harupy)
- [Artifacts] Add content type headers to artifact upload requests for the HttpArtifactRepository (#8048, @WillEngler)
- [Model Registry] Add alias support for logged models within Model Registry (#8164, #8094, #8055 @arpitjasa-db)
- [UI] Add support for custom domain git providers (#7933, @gusghrlrl101)
- [Scoring] Add plugin support for customization of MLflow serving endpoints (#7757, @jmahlik)
- [Scoring] Add support to MLflow serving that allows configuration of multiple inference workers (#8035, @M4nouel)
- [Sagemaker] Add support for asynchronous inference configuration on Sagemaker (#8009, @thomasbell1985)
- [Build] Remove shap as a core dependency of MLflow (#8199, @jmahlik)
Bug fixes:
- [Models] Fix a bug with tensorflow autologging for models with multiple inputs (#8097, @jaume-ferrarons)
- [Recipes] Fix a bug with Pandas 2.0 updates for profiler rendering of datetime types (#7925, @sunishsheth2009)
- [Tracking] Prevent exceptions from being raised if a parameter is logged with an existing key whose value is identical to the logged parameter (#8038, @AdamStelmaszczyk)
- [Tracking] Fix an issue with deleting experiments in the FileStore backend (#8178, @mariusschlegel)
- [Tracking] Fix a UI bug where the "Source Run" field in the Model Version page points to an incorrect set of artifacts (#8156, @WeichenXu123)
- [Tracking] Fix a bug wherein renaming a run reverts its current lifecycle status to UNFINISHED (#8154, @WeichenXu123)
- [Tracking] Fix a bug where a file URI could be used as a model version source (#8126, @harupy)
- [Projects] Fix an issue with MLflow projects that have submodules contained within a project (#8050, @kota-iizuka)
- [Examples] Fix lightning hyperparameter tuning examples (#8039, @BenWilson2)
- [Server-infra] Fix bug with Cache-Control headers for static server files (#8016, @jmahlik)
Documentation updates:
- [Examples] Add a new and thorough example for the creation of custom model flavors (#7867, @benjaminbluhm)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
We are happy to announce the availability of MLflow 2.2.2!
MLflow 2.2.2 is a patch release containing the following bug fixes:
- [Model Registry] Allow
source to be a local path within a run's artifact directory if a run_id is specified (#7993, @harupy)
- [Model Registry] Fix a bug where a windows UNC path is considered a local path (#7988, @WeichenXu123)
- [Model Registry] Disallow
name to be a file path in FileStore.get_registered_model (#7965, @harupy)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
We are happy to announce the availability of MLflow 2.2.1!
MLflow 2.2.1 is a patch release containing the following bug fixes:
- [Model Registry] Fix a bug that caused too many results to be requested by default when calling
MlflowClient.search_model_versions() (#7935, @dbczumar)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
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:
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
We are happy to announce the availability of MLflow 2.1.1!
MLflow 2.1.1 is a patch release containing the following bug fixes:
- [Scoring] Fix
mlflow.pyfunc.spark_udf() type casting error on model with ColSpec input schema
and make PyFuncModel.predict support dataframe with elements of numpy.ndarray type (#7592 @WeichenXu123)
- [Scoring] Make
mlflow.pyfunc.scoring_server.client.ScoringServerClient support input dataframe with elements
of numpy.ndarray type (#7594 @WeichenXu123)
- [Tracking] Ensure mlflow imports ML packages lazily (#7597, @harupy)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.