MLflow 2.9.0 includes several major features and improvements.
MLflow AI Gateway deprecation (#10420, @harupy)
The feature previously known as MLflow AI Gateway has been moved to utilize the MLflow deployments API.
For guidance on migrating from the AI Gateway to the new deployments API, please see the [MLflow AI Gateway Migration Guide](https://mlflow.org/docs/latest/llms/gateway/migration.html.
MLflow Tracking docs overhaul (#10471, @B-Step62)
The MLflow tracking docs have been overhauled. We'd like your feedback on the new tracking docs!
Security fixes
Three security patches have been filed with this release and CVE's have been issued with the details involved in the security patch and potential attack vectors. Please review and update your tracking server deployments if your tracking server is not securely deployed and has open access to the internet.
- Sanitize
path
in HttpArtifactRepository.list_artifacts
(#10585, @harupy)
- Sanitize
filename
in Content-Disposition
header for HTTPDatasetSource
(#10584, @harupy).
- Validate
Content-Type
header to prevent POST XSS (#10526, @B-Step62)
Features
- [Tracking] Use
backoff_jitter
when making HTTP requests (#10486, @ajinkyavbhandare)
- [Tracking] Add default
aggregate_results
if the score type is numeric in make_metric
API (#10490, @sunishsheth2009)
- [Tracking] Add string type of score types for metric value for genai (#10307, @sunishsheth2009)
- [Artifacts] Support multipart upload for for proxy artifact access (#9521, @harupy)
- [Models] Support saving
torch_dtype
for transformers models (#10586, @serena-ruan)
- [Models] Add built-in metric
ndcg_at_k
to retriever evaluation (#10284, @liangz1)
- [Model Registry] Implement universal
copy_model_version
(#10308, @jerrylian-db)
- [Models] Support saving/loading
RunnableSequence
, RunnableParallel
, and RunnableBranch
(#10521, #10611, @serena-ruan)
Bug fixes
- [Tracking] Resume system metrics logging when resuming an existing run (#10312, @chenmoneygithub)
- [UI] Fix incorrect sorting order in line chart (#10553, @B-Step62)
- [UI] Remove extra whitespace in git URLs (#10506, @mrplants)
- [Models] Make spark_udf use NFS to broadcast model to spark executor on databricks runtime and spark connect mode (#10463, @WeichenXu123)
- [Models] Fix promptlab pyfunc models not working for chat routes (#10346, @daniellok-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.8.1 is a patch release, containing some critical bug fixes and an update to our continued work on reworking our docs.
Notable details:
- The API
mlflow.llm.log_predictions
is being marked as deprecated, as its functionality has been incorporated into mlflow.log_table
. This API will be removed in the 2.9.0 release. (#10414, @dbczumar)
Bug fixes:
- [Artifacts] Fix a regression in 2.8.0 where downloading a single file from a registered model would fail (#10362, @BenWilson2)
- [Evaluate] Fix the
Azure OpenAI
integration for mlflow.evaluate
when using LLM judge
metrics (#10291, @prithvikannan)
- [Evaluate] Change
Examples
to optional for the make_genai_metric
API (#10353, @prithvikannan)
- [Evaluate] Remove the
fastapi
dependency when using mlflow.evaluate
for LLM results (#10354, @prithvikannan)
- [Evaluate] Fix syntax issues and improve the formatting for generated prompt templates (#10402, @annzhang-db)
- [Gateway] Fix the Gateway configuration validator pre-check for OpenAI to perform instance type validation (#10379, @BenWilson2)
- [Tracking] Fix an intermittent issue with hanging threads when using asynchronous logging (#10374, @chenmoneygithub)
- [Tracking] Add a timeout for the
mlflow.login()
API to catch invalid hostname configuration input errors (#10239, @chenmoneygithub)
- [Tracking] Add a
flush
operation at the conclusion of logging system metrics (#10320, @chenmoneygithub)
- [Models] Correct the prompt template generation logic within the Prompt Engineering UI so that the prompts can be used in the Python API (#10341, @daniellok-db)
- [Models] Fix an issue in the
SHAP
model explainability functionality within mlflow.shap.log_explanation
so that duplicate or conflicting dependencies are not registered when logging (#10305, @BenWilson2)
Documentation updates:
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.8.0 includes several notable new features and improvements
- The MLflow Evaluate API has had extensive feature development in this release to support LLM workflows and multiple new evaluation modalities. See the new documentation, guides, and tutorials for MLflow LLM Evaluate to learn more.
- The MLflow Docs modernization effort has started. You will see a very different look and feel to the docs when visiting them, along with a batch of new tutorials and guides. More changes will be coming soon to the docs!
- 4 new LLM providers have been added! Google PaLM 2, AWS Bedrock, AI21 Labs, and HuggingFace TGI can now be configured and used within the AI Gateway. Learn more in the new AI Gateway docs!
Features:
- [Gateway] Add support for AWS Bedrock as a provider in the AI Gateway (#9598, @andrew-christianson)
- [Gateway] Add support for Huggingface Text Generation Inference as a provider in the AI Gateway (#10072, @SDonkelaarGDD)
- [Gateway] Add support for Google PaLM 2 as a provider in the AI Gateway (#9797, @arpitjasa-db)
- [Gateway] Add support for AI21labs as a provider in the AI Gateway (#9828, #10168, @zhe-db)
- [Gateway] Introduce a simplified method for setting the configuration file location for the AI Gateway via environment variable (#9822, @danilopeixoto)
- [Evaluate] Introduce default provided LLM evaluation metrics for MLflow evaluate (#9913, @prithvikannan)
- [Evaluate] Add support for evaluating inference datasets in MLflow evaluate (#9830, @liangz1)
- [Evaluate] Add support for evaluating single argument functions in MLflow evaluate (#9718, @liangz1)
- [Evaluate] Add support for Retriever LLM model type evaluation within MLflow evaluate (#10079, @liangz1)
- [Models] Add configurable parameter for external model saving in the ONNX flavor to address a regression (#10152, @daniellok-db)
- [Models] Add support for saving inference parameters in a logged model's input example (#9655, @serena-ruan)
- [Models] Add support for
completions
in the OpenAI flavor (#9838, @santiagxf)
- [Models] Add support for inference parameters for the OpenAI flavor (#9909, @santiagxf)
- [Models] Introduce support for configuration arguments to be specified when loading a model (#9251, @santiagxf)
- [Models] Add support for integrated Azure AD authentication for the OpenAI flavor (#9704, @santiagxf)
- [Models / Scoring] Introduce support for model training lineage in model serving (#9402, @M4nouel)
- [Model Registry] Introduce the
copy_model_version
client API for copying model versions across registered models (#9946, #10078, #10140, @jerrylian-db)
- [Tracking] Expand the limits of parameter value length from 500 to 6000 (#9709, @serena-ruan)
- [Tracking] Introduce support for Spark 3.5's SparkConnect mode within MLflow to allow logging models created using this operation mode of Spark (#9534, @WeichenXu123)
- [Tracking] Add support for logging system metrics to the MLflow fluent API (#9557, #9712, #9714, @chenmoneygithub)
- [Tracking] Add callbacks within MLflow for Keras and Tensorflow (#9454, #9637, #9579, @chenmoneygithub)
- [Tracking] Introduce a fluent login API for Databricks within Mlflow (#9665, #10180, @chenmoneygithub)
- [Tracking] Add support for customizing auth for http requests from the MLflow client via a plugin extension (#10049, @lu-ohai)
- [Tracking] Introduce experimental asynchronous logging support for metrics, params, and tags (#9705, @sagarsumant)
- [Auth] Modify the behavior of user creation in MLflow Authentication so that only admins can create new users (#9700, @gabrielfu)
- [Artifacts] Add support for using
xethub
as an artifact store via a plugin extension (#9957, @Kelton8Z)
Bug fixes:
- [Evaluate] Fix a bug with Azure OpenAI configuration usage within MLflow evaluate (#9982, @sunishsheth2009)
- [Models] Fix a data consistency issue when saving models that have been loaded in heterogeneous memory configuration within the transformers flavor (#10087, @BenWilson2)
- [Models] Fix an issue in the transformers flavor for complex input types by adding dynamic dataframe typing (#9044, @wamartin-aml)
- [Models] Fix an issue in the langchain flavor to provide support for chains with multiple outputs (#9497, @bbqiu)
- [Docker] Fix an issue with Docker image generation by changing the default env-manager to virtualenv (#9938, @Beramos)
- [Auth] Fix an issue with complex passwords in MLflow Auth to support a richer character set range (#9760, @dotdothu)
- [R] Fix a bug with configuration access when running MLflow R in Databricks (#10117, @zacdav-db)
Documentation updates:
- [Docs] Introduce the first phase of a larger documentation overhaul (#10197, @BenWilson2)
- [Docs] Add guide for LLM eval (#10058, #10199, @chenmoneygithub)
- [Docs] Add instructions on how to force single file serialization within the onnx flavor's save and log functions (#10178, @BenWilson2)
- [Docs] Add documentation for the relevance metric for MLflow evaluate (#10170, @sunishsheth2009)
- [Docs] Add a style guide for the contributing guide for how to structure pydoc strings (#9907, @mberk06)
- [Docs] Fix issues with the pytorch lightning autolog code example (#9964, @chenmoneygithub)
- [Docs] Update the example for
mlflow.data.from_numpy()
(#9885, @chenmoneygithub)
- [Docs] Add clear instructions for installing MLflow within R (#9835, @darshan8850)
- [Docs] Update model registry documentation to add content regarding support for model aliases (#9721, @jerrylian-db)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.7.1 is a patch release containing the following features, bug fixes and changes:
Features:
- [Gateway / Databricks] Add the
set_limits
and get_limits
APIs for AI Gateway routes within Databricks (#9516, @zhe-db)
- [Artifacts / Databricks] Add support for parallelized download and upload of artifacts within Unity Catalog (#9498, @jerrylian-db)
Bug fixes:
- [Models / R] Fix a critical bug with the
R
client that prevents models from being loaded (#9624, @BenWilson2)
- [Artifacts / Databricks] Disable multi-part download functionality for UC Volumes local file destination when downloading models (#9631, @BenWilson2)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
MLflow 2.7.0 includes several major features and improvements
- [UI / Gateway] We are excited to announce the Prompt Engineering UI. This new addition offers a suite of tools tailored for efficient prompt development, testing, and evaluation for LLM use cases. Integrated directly into the MLflow AI Gateway, it provides a seamless experience for designing, tracking, and deploying prompt templates. To read about this new feature, see the documentation at https://mlflow.org/docs/latest/llms/prompt-engineering.html (#9503, @prithvikannan)
Features:
- [Gateway] Introduce
MosaicML
as a supported provider for the MLflow AI Gateway
(#9459, @arpitjasa-db)
- [Models] Add support for using a snapshot download location when loading a
transformers
model as pyfunc
(#9362, @serena-ruan)
- [Server-infra] Introduce plugin support for MLflow
Tracking Server
authentication (#9191, @barrywhart)
- [Artifacts / Model Registry] Add support for storing artifacts using the
R2
backend (#9490, @shichengzhou-db)
- [Artifacts] Improve upload and download performance for Azure-based artifact stores (#9444, @jerrylian-db)
- [Sagemaker] Add support for deploying models to Sagemaker Serverless inference endpoints (#9085, @dogeplusplus)
Bug fixes:
- [Gateway] Fix a credential expiration bug by re-resolving
AI Gateway
credentials before each request (#9518, @dbczumar)
- [Gateway] Fix a bug where
search_routes
would raise an exception when no routes have been defined on the AI Gateway
server (#9387, @QuentinAmbard)
- [Gateway] Fix compatibility issues with
pydantic
2.x for AI gateway
(#9339, @harupy)
- [Gateway] Fix an initialization issue in the
AI Gateway
that could render MLflow nonfunctional at import if dependencies were conflicting. (#9337, @BenWilson2)
- [Artifacts] Fix a correctness issue when downloading large artifacts to
fuse mount
paths on Databricks
(#9545, @BenWilson2)
Documentation updates:
- [Docs] Add documentation for the
Giskard
community plugin for mlflow.evaluate
(#9183, @rabah-khalek)
For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.
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)