Users of the MLflow Open Source Project who are hosting the MLflow Model Registry using the mlflow server or mlflow ui commands using an MLflow version older than MLflow 2.2.1 may be vulnerable to a remote file existence check exploit if they are not limiting who can query their server (for example, by using a cloud VPC, an IP allowlist for inbound requests, or authentication / authorization middleware).
This issue only affects users and integrations that run the mlflow server and mlflow ui commands. Integrations that do not make use of mlflow server or mlflow ui are unaffected; for example, the Databricks Managed MLflow product and MLflow on Azure Machine Learning do not make use of these commands and are not impacted by these vulnerabilities in any way.
The vulnerability detailed in https://nvd.nist.gov/vuln/detail/CVE-2023-1176 enables an actor to check the existence of arbitrary files unrelated to MLflow from the host server, including any files stored in remote locations to which the host server has access.
Patches
This vulnerability has been patched in MLflow 2.2.1, which was released to PyPI on March 2nd, 2023. If you are using mlflow server or mlflow ui with the MLflow Model Registry, we recommend upgrading to MLflow 2.2.1 as soon as possible.
Workarounds
If you are using the MLflow open source mlflow server or mlflow ui commands, we strongly recommend limiting who can access your MLflow Model Registry and MLflow Tracking servers using a cloud VPC, an IP allowlist for inbound requests, authentication / authorization middleware, or another access restriction mechanism of your choosing.
If you are using the MLflow open source mlflow server or mlflow ui commands, we also strongly recommend limiting the remote files to which your MLflow Model Registry and MLflow Tracking servers have access. For example, if your MLflow Model Registry or MLflow Tracking server uses cloud-hosted blob storage for MLflow artifacts, make sure to restrict the scope of your server's cloud credentials such that it can only access files and directories related to MLflow.
Users of the MLflow Open Source Project who are hosting the MLflow Model Registry using the mlflow server or mlflow ui commands using an MLflow version older than MLflow 2.2.1 may be vulnerable to a remote file access exploit if they are not limiting who can query their server (for example, by using a cloud VPC, an IP allowlist for inbound requests, or authentication / authorization middleware).
This issue only affects users and integrations that run the mlflow server and mlflow ui commands. Integrations that do not make use of mlflow server or mlflow ui are unaffected; for example, the Databricks Managed MLflow product and MLflow on Azure Machine Learning do not make use of these commands and are not impacted by these vulnerabilities in any way.
The vulnerability detailed in https://nvd.nist.gov/vuln/detail/CVE-2023-1177 enables an actor to download arbitrary files unrelated to MLflow from the host server, including any files stored in remote locations to which the host server has access.
Patches
This vulnerability has been patched in MLflow 2.2.1, which was released to PyPI on March 2nd, 2023. If you are using mlflow server or mlflow ui with the MLflow Model Registry, we recommend upgrading to MLflow 2.2.1 as soon as possible.
Workarounds
If you are using the MLflow open source mlflow server or mlflow ui commands, we strongly recommend limiting who can access your MLflow Model Registry and MLflow Tracking servers using a cloud VPC, an IP allowlist for inbound requests, authentication / authorization middleware, or another access restriction mechanism of your choosing.
If you are using the MLflow open source mlflow server or mlflow ui commands, we also strongly recommend limiting the remote files to which your MLflow Model Registry and MLflow Tracking servers have access. For example, if your MLflow Model Registry or MLflow Tracking server uses cloud-hosted blob storage for MLflow artifacts, make sure to restrict the scope of your server's cloud credentials such that it can only access files and directories related to MLflow.
Users of the MLflow Open Source Project who are hosting the MLflow Model Registry using the mlflow server or mlflow ui commands using an MLflow version older than MLflow 2.3.1 may be vulnerable to a remote file access exploit if they are not limiting who can query their server (for example, by using a cloud VPC, an IP allowlist for inbound requests, or authentication / authorization middleware).
This issue only affects users and integrations that run the mlflow server and mlflow ui commands. Integrations that do not make use of mlflow server or mlflow ui are unaffected; for example, the Databricks Managed MLflow product and MLflow on Azure Machine Learning do not make use of these commands and are not impacted by these vulnerabilities in any way.
This vulnerability has been patched in MLflow 2.3.1, which was released to PyPI on April 27th, 2023. If you are using mlflow server or mlflow ui with the MLflow Model Registry, we recommend upgrading to MLflow 2.3.1 as soon as possible.
Workarounds
If you are using the MLflow open source mlflow server or mlflow ui commands, we strongly recommend limiting who can access your MLflow Model Registry and MLflow Tracking servers using a cloud VPC, an IP allowlist for inbound requests, authentication / authorization middleware, or another access restriction mechanism of your choosing.
If you are using the MLflow open source mlflow server or mlflow ui commands, we also strongly recommend limiting the remote files to which your MLflow Model Registry and MLflow Tracking servers have access. For example, if your MLflow Model Registry or MLflow Tracking server uses cloud-hosted blob storage for MLflow artifacts, make sure to restrict the scope of your server's cloud credentials such that it can only access files and directories related to MLflow.
The mlflow web server includes tools for tracking experiments, packaging code into reproducible runs, and sharing and deploying models. As this vulnerability allows to write / overwrite any file on the file system, it gives a lot of ways to archive code execution (like overwriting /home/<user>/.bashrc). A malicious user could use this issue to get command execution on the vulnerable machine and get access to data & models information.
A reflected Cross-Site Scripting (XSS) vulnerability exists in the mlflow/mlflow repository, specifically within the handling of the Content-Type header in POST requests. An attacker can inject malicious JavaScript code into the Content-Type header, which is then improperly reflected back to the user without adequate sanitization or escaping, leading to arbitrary JavaScript execution in the context of the victim's browser. The vulnerability is present in the mlflow/server/auth/init.py file, where the user-supplied Content-Type header is directly injected into a Python formatted string and returned to the user, facilitating the XSS attack.
A directory traversal vulnerability in the /get-artifact API method of the mlflow platform prior to v2.0.0 allows attackers to read arbitrary files on the server via the path parameter.
A malicious user could use this issue to access internal HTTP(s) servers and in the worst case (ie: aws instance) it could be abused to get a remote code execution on the victim machine.
Release Notes
mlflow/mlflow (mlflow)
### [`v2.9.2`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#292-2023-12-14)
[Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.9.1...v2.9.2)
MLflow 2.9.2 is a patch release, containing several critical security fixes and configuration updates to support extremely large model artifacts.
Features:
- \[Deployments] Add the `mlflow.deployments.openai` API to simplify direct access to OpenAI services through the deployments API ([#10473](https://redirect.github.com/mlflow/mlflow/issues/10473), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Server-infra] Add a new environment variable that permits disabling http redirects within the Tracking Server for enhanced security in publicly accessible tracking server deployments ([#10673](https://redirect.github.com/mlflow/mlflow/issues/10673), [@daniellok-db](https://redirect.github.com/daniellok-db))
- \[Artifacts] Add environment variable configurations for both Multi-part upload and Multi-part download that permits modifying the per-chunk size to support extremely large model artifacts ([#10648](https://redirect.github.com/mlflow/mlflow/issues/10648), [@harupy](https://redirect.github.com/harupy))
Security fixes:
- \[Server-infra] Disable the ability to inject malicious code via manipulated YAML files by forcing YAML rendering to be performed in a secure Sandboxed mode ([#10676](https://redirect.github.com/mlflow/mlflow/issues/10676), [@BenWilson2](https://redirect.github.com/BenWilson2), [#10640](https://redirect.github.com/mlflow/mlflow/issues/10640), [@harupy](https://redirect.github.com/harupy))
- \[Artifacts] Prevent path traversal attacks when querying artifact URI locations by disallowing `..` path traversal queries ([#10653](https://redirect.github.com/mlflow/mlflow/issues/10653), [@B-Step62](https://redirect.github.com/B-Step62))
- \[Data] Prevent a mechanism for conducting a malicious file traversal attack on Windows when using tracking APIs that interface with `HTTPDatasetSource` ([#10647](https://redirect.github.com/mlflow/mlflow/issues/10647), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Artifacts] Prevent a potential path traversal attack vector via encoded url traversal paths by decoding paths prior to evaluation ([#10650](https://redirect.github.com/mlflow/mlflow/issues/10650), [@B-Step62](https://redirect.github.com/B-Step62))
- \[Artifacts] Prevent the ability to conduct path traversal attacks by enforcing the use of sanitized paths with the tracking server ([#10666](https://redirect.github.com/mlflow/mlflow/issues/10666), [@harupy](https://redirect.github.com/harupy))
- \[Artifacts] Prevent path traversal attacks when using an FTP server as a backend store by enforcing base path declarations prior to accessing user-supplied paths ([#10657](https://redirect.github.com/mlflow/mlflow/issues/10657), [@harupy](https://redirect.github.com/harupy))
Documentation updates:
- \[Docs] Add an end-to-end tutorial for RAG creation and evaluation ([#10661](https://redirect.github.com/mlflow/mlflow/issues/10661), [@AbeOmor](https://redirect.github.com/AbeOmor))
- \[Docs] Add Tensorflow landing page ([#10646](https://redirect.github.com/mlflow/mlflow/issues/10646), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Deployments / Tracking] Add endpoints to LLM evaluation docs ([#10660](https://redirect.github.com/mlflow/mlflow/issues/10660), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Examples] Add retriever evaluation tutorial for LangChain and improve the Question Generation tutorial notebook ([#10419](https://redirect.github.com/mlflow/mlflow/issues/10419), [@liangz1](https://redirect.github.com/liangz1))
Small bug fixes and documentation updates:
[#10677](https://redirect.github.com/mlflow/mlflow/issues/10677), [#10636](https://redirect.github.com/mlflow/mlflow/issues/10636), [@serena-ruan](https://redirect.github.com/serena-ruan); [#10652](https://redirect.github.com/mlflow/mlflow/issues/10652), [#10649](https://redirect.github.com/mlflow/mlflow/issues/10649), [#10641](https://redirect.github.com/mlflow/mlflow/issues/10641), [@harupy](https://redirect.github.com/harupy); [#10643](https://redirect.github.com/mlflow/mlflow/issues/10643), [#10632](https://redirect.github.com/mlflow/mlflow/issues/10632), [@BenWilson2](https://redirect.github.com/BenWilson2)
### [`v2.9.1`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#291-2023-12-07)
[Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.9.0...v2.9.1)
MLflow 2.9.1 is a patch release, containing a critical bug fix related to loading `pyfunc` models that were saved in previous versions of MLflow.
Bug fixes:
- \[Models] Revert Changes to PythonModel that introduced loading issues for models saved in earlier versions of MLflow ([#10626](https://redirect.github.com/mlflow/mlflow/issues/10626), [@BenWilson2](https://redirect.github.com/BenWilson2))
Small bug fixes and documentation updates:
[#10625](https://redirect.github.com/mlflow/mlflow/issues/10625), [@BenWilson2](https://redirect.github.com/BenWilson2)
### [`v2.9.0`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#290-2023-12-05)
[Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.8.1...v2.9.0)
MLflow 2.9.0 includes several major features and improvements.
MLflow AI Gateway deprecation ([#10420](https://redirect.github.com/mlflow/mlflow/issues/10420), [@harupy](https://redirect.github.com/harupy)):
The feature previously known as MLflow AI Gateway has been moved to utilize [the MLflow deployments API](https://mlflow.org/docs/latest/llms/deployments/index.html).
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](https://redirect.github.com/mlflow/mlflow/issues/10471), [@B-Step62](https://redirect.github.com/B-Step62)):
[The MLflow tracking docs](https://mlflow.org/docs/latest/tracking.html) 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](https://redirect.github.com/mlflow/mlflow/issues/10585), [@harupy](https://redirect.github.com/harupy))
- Sanitize `filename` in `Content-Disposition` header for `HTTPDatasetSource` ([#10584](https://redirect.github.com/mlflow/mlflow/issues/10584), [@harupy](https://redirect.github.com/harupy)).
- Validate `Content-Type` header to prevent POST XSS ([#10526](https://redirect.github.com/mlflow/mlflow/issues/10526), [@B-Step62](https://redirect.github.com/B-Step62))
Features:
- \[Tracking] Use `backoff_jitter` when making HTTP requests ([#10486](https://redirect.github.com/mlflow/mlflow/issues/10486), [@ajinkyavbhandare](https://redirect.github.com/ajinkyavbhandare))
- \[Tracking] Add default `aggregate_results` if the score type is numeric in `make_metric` API ([#10490](https://redirect.github.com/mlflow/mlflow/issues/10490), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009))
- \[Tracking] Add string type of score types for metric value for genai ([#10307](https://redirect.github.com/mlflow/mlflow/issues/10307), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009))
- \[Artifacts] Support multipart upload for for proxy artifact access ([#9521](https://redirect.github.com/mlflow/mlflow/issues/9521), [@harupy](https://redirect.github.com/harupy))
- \[Models] Support saving `torch_dtype` for transformers models ([#10586](https://redirect.github.com/mlflow/mlflow/issues/10586), [@serena-ruan](https://redirect.github.com/serena-ruan))
- \[Models] Add built-in metric `ndcg_at_k` to retriever evaluation ([#10284](https://redirect.github.com/mlflow/mlflow/issues/10284), [@liangz1](https://redirect.github.com/liangz1))
- \[Model Registry] Implement universal `copy_model_version` ([#10308](https://redirect.github.com/mlflow/mlflow/issues/10308), [@jerrylian-db](https://redirect.github.com/jerrylian-db))
- \[Models] Support saving/loading `RunnableSequence`, `RunnableParallel`, and `RunnableBranch` ([#10521](https://redirect.github.com/mlflow/mlflow/issues/10521), [#10611](https://redirect.github.com/mlflow/mlflow/issues/10611), [@serena-ruan](https://redirect.github.com/serena-ruan))
Bug fixes:
- \[Tracking] Resume system metrics logging when resuming an existing run ([#10312](https://redirect.github.com/mlflow/mlflow/issues/10312), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[UI] Fix incorrect sorting order in line chart ([#10553](https://redirect.github.com/mlflow/mlflow/issues/10553), [@B-Step62](https://redirect.github.com/B-Step62))
- \[UI] Remove extra whitespace in git URLs ([#10506](https://redirect.github.com/mlflow/mlflow/issues/10506), [@mrplants](https://redirect.github.com/mrplants))
- \[Models] Make spark_udf use NFS to broadcast model to spark executor on databricks runtime and spark connect mode ([#10463](https://redirect.github.com/mlflow/mlflow/issues/10463), [@WeichenXu123](https://redirect.github.com/WeichenXu123))
- \[Models] Fix promptlab pyfunc models not working for chat routes ([#10346](https://redirect.github.com/mlflow/mlflow/issues/10346), [@daniellok-db](https://redirect.github.com/daniellok-db))
Documentation updates:
- \[Docs] Add a quickstart guide for Tensorflow ([#10398](https://redirect.github.com/mlflow/mlflow/issues/10398), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Improve the parameter tuning guide ([#10344](https://redirect.github.com/mlflow/mlflow/issues/10344), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Add a guide for system metrics logging ([#10429](https://redirect.github.com/mlflow/mlflow/issues/10429), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Add instructions on how to configure credentials for Azure OpenAI ([#10560](https://redirect.github.com/mlflow/mlflow/issues/10560), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Docs] Add docs and tutorials for Sentence Transformers flavor ([#10476](https://redirect.github.com/mlflow/mlflow/issues/10476), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Docs] Add tutorials, examples, and guides for Transformers Flavor ([#10360](https://redirect.github.com/mlflow/mlflow/issues/10360), [@BenWilson2](https://redirect.github.com/BenWilson2))
Small bug fixes and documentation updates:
[#10567](https://redirect.github.com/mlflow/mlflow/issues/10567), [#10559](https://redirect.github.com/mlflow/mlflow/issues/10559), [#10348](https://redirect.github.com/mlflow/mlflow/issues/10348), [#10342](https://redirect.github.com/mlflow/mlflow/issues/10342), [#10264](https://redirect.github.com/mlflow/mlflow/issues/10264), [#10265](https://redirect.github.com/mlflow/mlflow/issues/10265), [@B-Step62](https://redirect.github.com/B-Step62); [#10595](https://redirect.github.com/mlflow/mlflow/issues/10595), [#10401](https://redirect.github.com/mlflow/mlflow/issues/10401), [#10418](https://redirect.github.com/mlflow/mlflow/issues/10418), [#10394](https://redirect.github.com/mlflow/mlflow/issues/10394), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub); [#10557](https://redirect.github.com/mlflow/mlflow/issues/10557), [@dan-licht](https://redirect.github.com/dan-licht); [#10584](https://redirect.github.com/mlflow/mlflow/issues/10584), [#10462](https://redirect.github.com/mlflow/mlflow/issues/10462), [#10445](https://redirect.github.com/mlflow/mlflow/issues/10445), [#10434](https://redirect.github.com/mlflow/mlflow/issues/10434), [#10432](https://redirect.github.com/mlflow/mlflow/issues/10432), [#10412](https://redirect.github.com/mlflow/mlflow/issues/10412), [#10411](https://redirect.github.com/mlflow/mlflow/issues/10411), [#10408](https://redirect.github.com/mlflow/mlflow/issues/10408), [#10407](https://redirect.github.com/mlflow/mlflow/issues/10407), [#10403](https://redirect.github.com/mlflow/mlflow/issues/10403), [#10361](https://redirect.github.com/mlflow/mlflow/issues/10361), [#10340](https://redirect.github.com/mlflow/mlflow/issues/10340), [#10339](https://redirect.github.com/mlflow/mlflow/issues/10339), [#10310](https://redirect.github.com/mlflow/mlflow/issues/10310), [#10276](https://redirect.github.com/mlflow/mlflow/issues/10276), [#10268](https://redirect.github.com/mlflow/mlflow/issues/10268), [#10260](https://redirect.github.com/mlflow/mlflow/issues/10260), [#10224](https://redirect.github.com/mlflow/mlflow/issues/10224), [#10214](https://redirect.github.com/mlflow/mlflow/issues/10214), [@harupy](https://redirect.github.com/harupy); [#10415](https://redirect.github.com/mlflow/mlflow/issues/10415), [@jessechancy](https://redirect.github.com/jessechancy); [#10579](https://redirect.github.com/mlflow/mlflow/issues/10579), [#10555](https://redirect.github.com/mlflow/mlflow/issues/10555), [@annzhang-db](https://redirect.github.com/annzhang-db); [#10540](https://redirect.github.com/mlflow/mlflow/issues/10540), [@wllgrnt](https://redirect.github.com/wllgrnt); [#10556](https://redirect.github.com/mlflow/mlflow/issues/10556), [@smurching](https://redirect.github.com/smurching); [#10546](https://redirect.github.com/mlflow/mlflow/issues/10546), [@mbenoit29](https://redirect.github.com/mbenoit29); [#10534](https://redirect.github.com/mlflow/mlflow/issues/10534), [@gabrielfu](https://redirect.github.com/gabrielfu); [#10532](https://redirect.github.com/mlflow/mlflow/issues/10532), [#10485](https://redirect.github.com/mlflow/mlflow/issues/10485), [#10444](https://redirect.github.com/mlflow/mlflow/issues/10444), [#10433](https://redirect.github.com/mlflow/mlflow/issues/10433), [#10375](https://redirect.github.com/mlflow/mlflow/issues/10375), [#10343](https://redirect.github.com/mlflow/mlflow/issues/10343), [#10192](https://redirect.github.com/mlflow/mlflow/issues/10192), [@serena-ruan](https://redirect.github.com/serena-ruan); [#10480](https://redirect.github.com/mlflow/mlflow/issues/10480), [#10416](https://redirect.github.com/mlflow/mlflow/issues/10416), [#10173](https://redirect.github.com/mlflow/mlflow/issues/10173), [@jerrylian-db](https://redirect.github.com/jerrylian-db); [#10527](https://redirect.github.com/mlflow/mlflow/issues/10527), [#10448](https://redirect.github.com/mlflow/mlflow/issues/10448), [#10443](https://redirect.github.com/mlflow/mlflow/issues/10443), [#10442](https://redirect.github.com/mlflow/mlflow/issues/10442), [#10441](https://redirect.github.com/mlflow/mlflow/issues/10441), [#10440](https://redirect.github.com/mlflow/mlflow/issues/10440), [#10439](https://redirect.github.com/mlflow/mlflow/issues/10439), [#10381](https://redirect.github.com/mlflow/mlflow/issues/10381), [@prithvikannan](https://redirect.github.com/prithvikannan); [#10509](https://redirect.github.com/mlflow/mlflow/issues/10509), [@keenranger](https://redirect.github.com/keenranger); [#10508](https://redirect.github.com/mlflow/mlflow/issues/10508), [#10494](https://redirect.github.com/mlflow/mlflow/issues/10494), [@WeichenXu123](https://redirect.github.com/WeichenXu123); [#10489](https://redirect.github.com/mlflow/mlflow/issues/10489), [#10266](https://redirect.github.com/mlflow/mlflow/issues/10266), [#10210](https://redirect.github.com/mlflow/mlflow/issues/10210), [#10103](https://redirect.github.com/mlflow/mlflow/issues/10103), [@TomeHirata](https://redirect.github.com/TomeHirata); [#10495](https://redirect.github.com/mlflow/mlflow/issues/10495), [#10435](https://redirect.github.com/mlflow/mlflow/issues/10435), [#10185](https://redirect.github.com/mlflow/mlflow/issues/10185), [@daniellok-db](https://redirect.github.com/daniellok-db); [#10319](https://redirect.github.com/mlflow/mlflow/issues/10319), [@michael-berk](https://redirect.github.com/michael-berk); [#10417](https://redirect.github.com/mlflow/mlflow/issues/10417), [@bbqiu](https://redirect.github.com/bbqiu); [#10379](https://redirect.github.com/mlflow/mlflow/issues/10379), [#10372](https://redirect.github.com/mlflow/mlflow/issues/10372), [#10282](https://redirect.github.com/mlflow/mlflow/issues/10282), [@BenWilson2](https://redirect.github.com/BenWilson2); [#10297](https://redirect.github.com/mlflow/mlflow/issues/10297), [@KonakanchiSwathi](https://redirect.github.com/KonakanchiSwathi); [#10226](https://redirect.github.com/mlflow/mlflow/issues/10226), [#10223](https://redirect.github.com/mlflow/mlflow/issues/10223), [#10221](https://redirect.github.com/mlflow/mlflow/issues/10221), [@milinddethe15](https://redirect.github.com/milinddethe15); [#10222](https://redirect.github.com/mlflow/mlflow/issues/10222), [@flooxo](https://redirect.github.com/flooxo); [#10590](https://redirect.github.com/mlflow/mlflow/issues/10590), [@letian-w](https://redirect.github.com/letian-w);
### [`v2.8.1`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#281-2023-11-14)
[Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.8.0...v2.8.1)
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](https://redirect.github.com/mlflow/mlflow/issues/10414), [@dbczumar](https://redirect.github.com/dbczumar))
Bug fixes:
- \[Artifacts] Fix a regression in 2.8.0 where downloading a single file from a registered model would fail ([#10362](https://redirect.github.com/mlflow/mlflow/issues/10362), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Evaluate] Fix the `Azure OpenAI` integration for `mlflow.evaluate` when using LLM `judge` metrics ([#10291](https://redirect.github.com/mlflow/mlflow/issues/10291), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Evaluate] Change `Examples` to optional for the `make_genai_metric` API ([#10353](https://redirect.github.com/mlflow/mlflow/issues/10353), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Evaluate] Remove the `fastapi` dependency when using `mlflow.evaluate` for LLM results ([#10354](https://redirect.github.com/mlflow/mlflow/issues/10354), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Evaluate] Fix syntax issues and improve the formatting for generated prompt templates ([#10402](https://redirect.github.com/mlflow/mlflow/issues/10402), [@annzhang-db](https://redirect.github.com/annzhang-db))
- \[Gateway] Fix the Gateway configuration validator pre-check for OpenAI to perform instance type validation ([#10379](https://redirect.github.com/mlflow/mlflow/issues/10379), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Tracking] Fix an intermittent issue with hanging threads when using asynchronous logging ([#10374](https://redirect.github.com/mlflow/mlflow/issues/10374), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Tracking] Add a timeout for the `mlflow.login()` API to catch invalid hostname configuration input errors ([#10239](https://redirect.github.com/mlflow/mlflow/issues/10239), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Tracking] Add a `flush` operation at the conclusion of logging system metrics ([#10320](https://redirect.github.com/mlflow/mlflow/issues/10320), [@chenmoneygithub](https://redirect.github.com/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](https://redirect.github.com/mlflow/mlflow/issues/10341), [@daniellok-db](https://redirect.github.com/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](https://redirect.github.com/mlflow/mlflow/issues/10305), [@BenWilson2](https://redirect.github.com/BenWilson2))
Documentation updates:
- \[Docs] Add MLflow Tracking Quickstart ([#10285](https://redirect.github.com/mlflow/mlflow/issues/10285), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Docs] Add tracking server configuration guide ([#10241](https://redirect.github.com/mlflow/mlflow/issues/10241), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Refactor and improve the model deployment quickstart guide ([#10322](https://redirect.github.com/mlflow/mlflow/issues/10322), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Docs] Add documentation for system metrics logging ([#10261](https://redirect.github.com/mlflow/mlflow/issues/10261), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
Small bug fixes and documentation updates:
[#10367](https://redirect.github.com/mlflow/mlflow/issues/10367), [#10359](https://redirect.github.com/mlflow/mlflow/issues/10359), [#10358](https://redirect.github.com/mlflow/mlflow/issues/10358), [#10340](https://redirect.github.com/mlflow/mlflow/issues/10340), [#10310](https://redirect.github.com/mlflow/mlflow/issues/10310), [#10276](https://redirect.github.com/mlflow/mlflow/issues/10276), [#10277](https://redirect.github.com/mlflow/mlflow/issues/10277), [#10247](https://redirect.github.com/mlflow/mlflow/issues/10247), [#10260](https://redirect.github.com/mlflow/mlflow/issues/10260), [#10220](https://redirect.github.com/mlflow/mlflow/issues/10220), [#10263](https://redirect.github.com/mlflow/mlflow/issues/10263), [#10259](https://redirect.github.com/mlflow/mlflow/issues/10259), [#10219](https://redirect.github.com/mlflow/mlflow/issues/10219), [@harupy](https://redirect.github.com/harupy); [#10313](https://redirect.github.com/mlflow/mlflow/issues/10313), [#10303](https://redirect.github.com/mlflow/mlflow/issues/10303), [#10213](https://redirect.github.com/mlflow/mlflow/issues/10213), [#10272](https://redirect.github.com/mlflow/mlflow/issues/10272), [#10282](https://redirect.github.com/mlflow/mlflow/issues/10282), [#10283](https://redirect.github.com/mlflow/mlflow/issues/10283), [#10231](https://redirect.github.com/mlflow/mlflow/issues/10231), [#10256](https://redirect.github.com/mlflow/mlflow/issues/10256), [#10242](https://redirect.github.com/mlflow/mlflow/issues/10242), [#10237](https://redirect.github.com/mlflow/mlflow/issues/10237), [#10238](https://redirect.github.com/mlflow/mlflow/issues/10238), [#10233](https://redirect.github.com/mlflow/mlflow/issues/10233), [#10229](https://redirect.github.com/mlflow/mlflow/issues/10229), [#10211](https://redirect.github.com/mlflow/mlflow/issues/10211), [#10231](https://redirect.github.com/mlflow/mlflow/issues/10231), [#10256](https://redirect.github.com/mlflow/mlflow/issues/10256), [#10242](https://redirect.github.com/mlflow/mlflow/issues/10242), [#10238](https://redirect.github.com/mlflow/mlflow/issues/10238), [#10237](https://redirect.github.com/mlflow/mlflow/issues/10237), [#10229](https://redirect.github.com/mlflow/mlflow/issues/10229), [#10233](https://redirect.github.com/mlflow/mlflow/issues/10233), [#10211](https://redirect.github.com/mlflow/mlflow/issues/10211), [@BenWilson2](https://redirect.github.com/BenWilson2); [#10375](https://redirect.github.com/mlflow/mlflow/issues/10375), [@serena-ruan](https://redirect.github.com/serena-ruan); [#10330](https://redirect.github.com/mlflow/mlflow/issues/10330), [@Haxatron](https://redirect.github.com/Haxatron); [#10342](https://redirect.github.com/mlflow/mlflow/issues/10342), [#10249](https://redirect.github.com/mlflow/mlflow/issues/10249), [#10249](https://redirect.github.com/mlflow/mlflow/issues/10249), [@B-Step62](https://redirect.github.com/B-Step62); [#10355](https://redirect.github.com/mlflow/mlflow/issues/10355), [#10301](https://redirect.github.com/mlflow/mlflow/issues/10301), [#10286](https://redirect.github.com/mlflow/mlflow/issues/10286), [#10257](https://redirect.github.com/mlflow/mlflow/issues/10257), [#10236](https://redirect.github.com/mlflow/mlflow/issues/10236), [#10270](https://redirect.github.com/mlflow/mlflow/issues/10270), [#10236](https://redirect.github.com/mlflow/mlflow/issues/10236), [@prithvikannan](https://redirect.github.com/prithvikannan); [#10321](https://redirect.github.com/mlflow/mlflow/issues/10321), [#10258](https://redirect.github.com/mlflow/mlflow/issues/10258), [@jerrylian-db](https://redirect.github.com/jerrylian-db); [#10245](https://redirect.github.com/mlflow/mlflow/issues/10245), [@jessechancy](https://redirect.github.com/jessechancy); [#10278](https://redirect.github.com/mlflow/mlflow/issues/10278), [@daniellok-db](https://redirect.github.com/daniellok-db); [#10244](https://redirect.github.com/mlflow/mlflow/issues/10244), [@gabrielfu](https://redirect.github.com/gabrielfu); [#10226](https://redirect.github.com/mlflow/mlflow/issues/10226), [@milinddethe15](https://redirect.github.com/milinddethe15); [#10390](https://redirect.github.com/mlflow/mlflow/issues/10390), [@bbqiu](https://redirect.github.com/bbqiu); [#10232](https://redirect.github.com/mlflow/mlflow/issues/10232), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009)
### [`v2.8.0`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#280-2023-10-28)
[Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.7.1...v2.8.0)
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](https://redirect.github.com/mlflow/mlflow/issues/9598), [@andrew-christianson](https://redirect.github.com/andrew-christianson))
- \[Gateway] Add support for Huggingface Text Generation Inference as a provider in the AI Gateway ([#10072](https://redirect.github.com/mlflow/mlflow/issues/10072), [@SDonkelaarGDD](https://redirect.github.com/SDonkelaarGDD))
- \[Gateway] Add support for Google PaLM 2 as a provider in the AI Gateway ([#9797](https://redirect.github.com/mlflow/mlflow/issues/9797), [@arpitjasa-db](https://redirect.github.com/arpitjasa-db))
- \[Gateway] Add support for AI21labs as a provider in the AI Gateway ([#9828](https://redirect.github.com/mlflow/mlflow/issues/9828), [#10168](https://redirect.github.com/mlflow/mlflow/issues/10168), [@zhe-db](https://redirect.github.com/zhe-db))
- \[Gateway] Introduce a simplified method for setting the configuration file location for the AI Gateway via environment variable ([#9822](https://redirect.github.com/mlflow/mlflow/issues/9822), [@danilopeixoto](https://redirect.github.com/danilopeixoto))
- \[Evaluate] Introduce default provided LLM evaluation metrics for MLflow evaluate ([#9913](https://redirect.github.com/mlflow/mlflow/issues/9913), [@prithvikannan](https://redirect.github.com/prithvikannan))
- \[Evaluate] Add support for evaluating inference datasets in MLflow evaluate ([#9830](https://redirect.github.com/mlflow/mlflow/issues/9830), [@liangz1](https://redirect.github.com/liangz1))
- \[Evaluate] Add support for evaluating single argument functions in MLflow evaluate ([#9718](https://redirect.github.com/mlflow/mlflow/issues/9718), [@liangz1](https://redirect.github.com/liangz1))
- \[Evaluate] Add support for Retriever LLM model type evaluation within MLflow evaluate ([#10079](https://redirect.github.com/mlflow/mlflow/issues/10079), [@liangz1](https://redirect.github.com/liangz1))
- \[Models] Add configurable parameter for external model saving in the ONNX flavor to address a regression ([#10152](https://redirect.github.com/mlflow/mlflow/issues/10152), [@daniellok-db](https://redirect.github.com/daniellok-db))
- \[Models] Add support for saving inference parameters in a logged model's input example ([#9655](https://redirect.github.com/mlflow/mlflow/issues/9655), [@serena-ruan](https://redirect.github.com/serena-ruan))
- \[Models] Add support for `completions` in the OpenAI flavor ([#9838](https://redirect.github.com/mlflow/mlflow/issues/9838), [@santiagxf](https://redirect.github.com/santiagxf))
- \[Models] Add support for inference parameters for the OpenAI flavor ([#9909](https://redirect.github.com/mlflow/mlflow/issues/9909), [@santiagxf](https://redirect.github.com/santiagxf))
- \[Models] Introduce support for configuration arguments to be specified when loading a model ([#9251](https://redirect.github.com/mlflow/mlflow/issues/9251), [@santiagxf](https://redirect.github.com/santiagxf))
- \[Models] Add support for integrated Azure AD authentication for the OpenAI flavor ([#9704](https://redirect.github.com/mlflow/mlflow/issues/9704), [@santiagxf](https://redirect.github.com/santiagxf))
- \[Models / Scoring] Introduce support for model training lineage in model serving ([#9402](https://redirect.github.com/mlflow/mlflow/issues/9402), [@M4nouel](https://redirect.github.com/M4nouel))
- \[Model Registry] Introduce the `copy_model_version` client API for copying model versions across registered models ([#9946](https://redirect.github.com/mlflow/mlflow/issues/9946), [#10078](https://redirect.github.com/mlflow/mlflow/issues/10078), [#10140](https://redirect.github.com/mlflow/mlflow/issues/10140), [@jerrylian-db](https://redirect.github.com/jerrylian-db))
- \[Tracking] Expand the limits of parameter value length from 500 to 6000 ([#9709](https://redirect.github.com/mlflow/mlflow/issues/9709), [@serena-ruan](https://redirect.github.com/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](https://redirect.github.com/mlflow/mlflow/issues/9534), [@WeichenXu123](https://redirect.github.com/WeichenXu123))
- \[Tracking] Add support for logging system metrics to the MLflow fluent API ([#9557](https://redirect.github.com/mlflow/mlflow/issues/9557), [#9712](https://redirect.github.com/mlflow/mlflow/issues/9712), [#9714](https://redirect.github.com/mlflow/mlflow/issues/9714), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Tracking] Add callbacks within MLflow for Keras and Tensorflow ([#9454](https://redirect.github.com/mlflow/mlflow/issues/9454), [#9637](https://redirect.github.com/mlflow/mlflow/issues/9637), [#9579](https://redirect.github.com/mlflow/mlflow/issues/9579), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Tracking] Introduce a fluent login API for Databricks within MLflow ([#9665](https://redirect.github.com/mlflow/mlflow/issues/9665), [#10180](https://redirect.github.com/mlflow/mlflow/issues/10180), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Tracking] Add support for customizing auth for http requests from the MLflow client via a plugin extension ([#10049](https://redirect.github.com/mlflow/mlflow/issues/10049), [@lu-ohai](https://redirect.github.com/lu-ohai))
- \[Tracking] Introduce experimental asynchronous logging support for metrics, params, and tags ([#9705](https://redirect.github.com/mlflow/mlflow/issues/9705), [@sagarsumant](https://redirect.github.com/sagarsumant))
- \[Auth] Modify the behavior of user creation in MLflow Authentication so that only admins can create new users ([#9700](https://redirect.github.com/mlflow/mlflow/issues/9700), [@gabrielfu](https://redirect.github.com/gabrielfu))
- \[Artifacts] Add support for using `xethub` as an artifact store via a plugin extension ([#9957](https://redirect.github.com/mlflow/mlflow/issues/9957), [@Kelton8Z](https://redirect.github.com/Kelton8Z))
- \[UI] Add new opt-in Model Registry UI that supports model aliases and tags ([#10163](https://redirect.github.com/mlflow/mlflow/issues/10163), [@hubertzub-db](https://redirect.github.com/hubertzub-db), [@jerrylian-db](https://redirect.github.com/jerrylian-db))
Bug fixes:
- \[Evaluate] Fix a bug with Azure OpenAI configuration usage within MLflow evaluate ([#9982](https://redirect.github.com/mlflow/mlflow/issues/9982), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009))
- \[Models] Fix a data consistency issue when saving models that have been loaded in heterogeneous memory configuration within the transformers flavor ([#10087](https://redirect.github.com/mlflow/mlflow/issues/10087), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Models] Fix an issue in the transformers flavor for complex input types by adding dynamic dataframe typing ([#9044](https://redirect.github.com/mlflow/mlflow/issues/9044), [@wamartin-aml](https://redirect.github.com/wamartin-aml))
- \[Models] Fix an issue in the langchain flavor to provide support for chains with multiple outputs ([#9497](https://redirect.github.com/mlflow/mlflow/issues/9497), [@bbqiu](https://redirect.github.com/bbqiu))
- \[Docker] Fix an issue with Docker image generation by changing the default env-manager to virtualenv ([#9938](https://redirect.github.com/mlflow/mlflow/issues/9938), [@Beramos](https://redirect.github.com/Beramos))
- \[Auth] Fix an issue with complex passwords in MLflow Auth to support a richer character set range ([#9760](https://redirect.github.com/mlflow/mlflow/issues/9760), [@dotdothu](https://redirect.github.com/dotdothu))
- \[R] Fix a bug with configuration access when running MLflow R in Databricks ([#10117](https://redirect.github.com/mlflow/mlflow/issues/10117), [@zacdav-db](https://redirect.github.com/zacdav-db))
Documentation updates:
- \[Docs] Introduce the first phase of a larger documentation overhaul ([#10197](https://redirect.github.com/mlflow/mlflow/issues/10197), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Docs] Add guide for LLM eval ([#10058](https://redirect.github.com/mlflow/mlflow/issues/10058), [#10199](https://redirect.github.com/mlflow/mlflow/issues/10199), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Add instructions on how to force single file serialization within the onnx flavor's save and log functions ([#10178](https://redirect.github.com/mlflow/mlflow/issues/10178), [@BenWilson2](https://redirect.github.com/BenWilson2))
- \[Docs] Add documentation for the relevance metric for MLflow evaluate ([#10170](https://redirect.github.com/mlflow/mlflow/issues/10170), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009))
- \[Docs] Add a style guide for the contributing guide for how to structure pydoc strings ([#9907](https://redirect.github.com/mlflow/mlflow/issues/9907), [@mberk06](https://redirect.github.com/mberk06))
- \[Docs] Fix issues with the pytorch lightning autolog code example ([#9964](https://redirect.github.com/mlflow/mlflow/issues/9964), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Update the example for `mlflow.data.from_numpy()` ([#9885](https://redirect.github.com/mlflow/mlflow/issues/9885), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub))
- \[Docs] Add clear instructions for installing MLflow within R ([#9835](https://redirect.github.com/mlflow/mlflow/issues/9835), [@darshan8850](https://redirect.github.com/darshan8850))
- \[Docs] Update model registry documentation to add content regarding support for model aliases ([#9721](https://redirect.github.com/mlflow/mlflow/issues/9721), [@jerrylian-db](https://redirect.github.com/jerrylian-db))
Small bug fixes and documentation updates:
[#10202](https://redirect.github.com/mlflow/mlflow/issues/10202), [#10189](https://redirect.github.com/mlflow/mlflow/issues/10189), [#10188](https://redirect.github.com/mlflow/mlflow/issues/10188), [#10159](https://redirect.github.com/mlflow/mlflow/issues/10159), [#10175](https://redirect.github.com/mlflow/mlflow/issues/10175), [#10165](https://redirect.github.com/mlflow/mlflow/issues/10165), [#10154](https://redirect.github.com/mlflow/mlflow/issues/10154), [#10083](https://redirect.github.com/mlflow/mlflow/issues/10083), [#10082](https://redirect.github.com/mlflow/mlflow/issues/10082), [#10081](https://redirect.github.com/mlflow/mlflow/issues/10081), [#10071](https://redirect.github.com/mlflow/mlflow/issues/10071), [#10077](https://redirect.github.com/mlflow/mlflow/issues/10077), [#10070](https://redirect.github.com/mlflow/mlflow/issues/10070), [#10053](https://redirect.github.com/mlflow/mlflow/issues/10053), [#10057](https://redirect.github.com/mlflow/mlflow/issues/10057), [#10055](https://redirect.github.com/mlflow/mlflow/issues/10055), [#10020](https://redirect.github.com/mlflow/mlflow/issues/10020), [#9928](https://redirect.github.com/mlflow/mlflow/issues/9928), [#9929](https://redirect.github.com/mlflow/mlflow/issues/9929), [#9944](https://redirect.github.com/mlflow/mlflow/issues/9944), [#9979](https://redirect.github.com/mlflow/mlflow/issues/9979), [#9923](https://redirect.github.com/mlflow/mlflow/issues/9923), [#9842](https://redirect.github.com/mlflow/mlflow/issues/9842), [@annzhang-db](https://redirect.github.com/annzhang-db); [#10203](https://redirect.github.com/mlflow/mlflow/issues/10203), [#10196](https://redirect.github.com/mlflow/mlflow/issues/10196), [#10172](https://redirect.github.com/mlflow/mlflow/issues/10172), [#10176](https://redirect.github.com/mlflow/mlflow/issues/10176), [#10145](https://redirect.github.com/mlflow/mlflow/issues/10145), [#10115](https://redirect.github.com/mlflow/mlflow/issues/10115), [#10107](https://redirect.github.com/mlflow/mlflow/issues/10107), [#10054](https://redirect.github.com/mlflow/mlflow/issues/10054), [#10056](https://redirect.github.com/mlflow/mlflow/issues/10056), [#10018](https://redirect.github.com/mlflow/mlflow/issues/10018), [#9976](https://redirect.github.com/mlflow/mlflow/issues/9976), [#9999](https://redirect.github.com/mlflow/mlflow/issues/9999), [#9998](https://redirect.github.com/mlflow/mlflow/issues/9998), [#9995](https://redirect.github.com/mlflow/mlflow/issues/9995), [#9978](https://redirect.github.com/mlflow/mlflow/issues/9978), [#9973](https://redirect.github.com/mlflow/mlflow/issues/9973), [#9975](https://redirect.github.com/mlflow/mlflow/issues/9975), [#9972](https://redirect.github.com/mlflow/mlflow/issues/9972), [#9974](https://redirect.github.com/mlflow/mlflow/issues/9974), [#9960](https://redirect.github.com/mlflow/mlflow/issues/9960), [#9925](https://redirect.github.com/mlflow/mlflow/issues/9925), [#9920](https://redirect.github.com/mlflow/mlflow/issues/9920), [@prithvikannan](https://redirect.github.com/prithvikannan); [#10144](https://redirect.github.com/mlflow/mlflow/issues/10144), [#10166](https://redirect.github.com/mlflow/mlflow/issues/10166), [#10143](https://redirect.github.com/mlflow/mlflow/issues/10143), [#10129](https://redirect.github.com/mlflow/mlflow/issues/10129), [#10059](https://redirect.github.com/mlflow/mlflow/issues/10059), [#10123](https://redirect.github.com/mlflow/mlflow/issues/10123), [#9555](https://redirect.github.com/mlflow/mlflow/issues/9555), [#9619](https://redirect.github.com/mlflow/mlflow/issues/9619), [@bbqiu](https://redirect.github.com/bbqiu); [#10187](https://redirect.github.com/mlflow/mlflow/issues/10187), [#10191](https://redirect.github.com/mlflow/mlflow/issues/10191), [#10181](https://redirect.github.com/mlflow/mlflow/issues/10181), [#10179](https://redirect.github.com/mlflow/mlflow/issues/10179), [#10151](https://redirect.github.com/mlflow/mlflow/issues/10151), [#10148](https://redirect.github.com/mlflow/mlflow/issues/10148), [#10126](https://redirect.github.com/mlflow/mlflow/issues/10126), [#10119](https://redirect.github.com/mlflow/mlflow/issues/10119), [#10099](https://redirect.github.com/mlflow/mlflow/issues/10099), [#10100](https://redirect.github.com/mlflow/mlflow/issues/10100), [#10097](https://redirect.github.com/mlflow/mlflow/issues/10097), [#10089](https://redirect.github.com/mlflow/mlflow/issues/10089), [#10096](https://redirect.github.com/mlflow/mlflow/issues/10096), [#10091](https://redirect.github.com/mlflow/mlflow/issues/10091), [#10085](https://redirect.github.com/mlflow/mlflow/issues/10085), [#10068](https://redirect.github.com/mlflow/mlflow/issues/10068), [#10065](https://redirect.github.com/mlflow/mlflow/issues/10065), [#10064](https://redirect.github.com/mlflow/mlflow/issues/10064), [#10060](https://redirect.github.com/mlflow/mlflow/issues/10060), [#10023](https://redirect.github.com/mlflow/mlflow/issues/10023), [#10030](https://redirect.github.com/mlflow/mlflow/issues/10030), [#10028](https://redirect.github.com/mlflow/mlflow/issues/10028), [#10022](https://redirect.github.com/mlflow/mlflow/issues/10022), [#10007](https://redirect.github.com/mlflow/mlflow/issues/10007), [#10006](https://redirect.github.com/mlflow/mlflow/issues/10006), [#9988](https://redirect.github.com/mlflow/mlflow/issues/9988), [#9961](https://redirect.github.com/mlflow/mlflow/issues/9961), [#9963](https://redirect.github.com/mlflow/mlflow/issues/9963), [#9954](https://redirect.github.com/mlflow/mlflow/issues/9954), [#9953](https://redirect.github.com/mlflow/mlflow/issues/9953), [#9937](https://redirect.github.com/mlflow/mlflow/issues/9937), [#9932](https://redirect.github.com/mlflow/mlflow/issues/9932), [#9931](https://redirect.github.com/mlflow/mlflow/issues/9931), [#9910](https://redirect.github.com/mlflow/mlflow/issues/9910), [#9901](https://redirect.github.com/mlflow/mlflow/issues/9901), [#9852](https://redirect.github.com/mlflow/mlflow/issues/9852), [#9851](https://redirect.github.com/mlflow/mlflow/issues/9851), [#9848](https://redirect.github.com/mlflow/mlflow/issues/9848), [#9847](https://redirect.github.com/mlflow/mlflow/issues/9847), [#9841](https://redirect.github.com/mlflow/mlflow/issues/9841), [#9844](https://redirect.github.com/mlflow/mlflow/issues/9844), [#9825](https://redirect.github.com/mlflow/mlflow/issues/9825), [#9820](https://redirect.github.com/mlflow/mlflow/issues/9820), [#9806](https://redirect.github.com/mlflow/mlflow/iss
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
2.1.1
->2.9.2
==1.26.1
->==2.9.2
==1.25.1
->==2.9.2
GitHub Vulnerability Alerts
CVE-2023-1176
Impact
Users of the MLflow Open Source Project who are hosting the MLflow Model Registry using the
mlflow server
ormlflow ui
commands using an MLflow version older than MLflow 2.2.1 may be vulnerable to a remote file existence check exploit if they are not limiting who can query their server (for example, by using a cloud VPC, an IP allowlist for inbound requests, or authentication / authorization middleware).This issue only affects users and integrations that run the
mlflow server
andmlflow ui
commands. Integrations that do not make use ofmlflow server
ormlflow ui
are unaffected; for example, the Databricks Managed MLflow product and MLflow on Azure Machine Learning do not make use of these commands and are not impacted by these vulnerabilities in any way.The vulnerability detailed in https://nvd.nist.gov/vuln/detail/CVE-2023-1176 enables an actor to check the existence of arbitrary files unrelated to MLflow from the host server, including any files stored in remote locations to which the host server has access.
Patches
This vulnerability has been patched in MLflow 2.2.1, which was released to PyPI on March 2nd, 2023. If you are using
mlflow server
ormlflow ui
with the MLflow Model Registry, we recommend upgrading to MLflow 2.2.1 as soon as possible.Workarounds
If you are using the MLflow open source
mlflow server
ormlflow ui
commands, we strongly recommend limiting who can access your MLflow Model Registry and MLflow Tracking servers using a cloud VPC, an IP allowlist for inbound requests, authentication / authorization middleware, or another access restriction mechanism of your choosing.If you are using the MLflow open source
mlflow server
ormlflow ui
commands, we also strongly recommend limiting the remote files to which your MLflow Model Registry and MLflow Tracking servers have access. For example, if your MLflow Model Registry or MLflow Tracking server uses cloud-hosted blob storage for MLflow artifacts, make sure to restrict the scope of your server's cloud credentials such that it can only access files and directories related to MLflow.References
More information about the vulnerability is available at https://nvd.nist.gov/vuln/detail/CVE-2023-1176.
CVE-2023-1177
Impact
Users of the MLflow Open Source Project who are hosting the MLflow Model Registry using the
mlflow server
ormlflow ui
commands using an MLflow version older than MLflow 2.2.1 may be vulnerable to a remote file access exploit if they are not limiting who can query their server (for example, by using a cloud VPC, an IP allowlist for inbound requests, or authentication / authorization middleware).This issue only affects users and integrations that run the
mlflow server
andmlflow ui
commands. Integrations that do not make use ofmlflow server
ormlflow ui
are unaffected; for example, the Databricks Managed MLflow product and MLflow on Azure Machine Learning do not make use of these commands and are not impacted by these vulnerabilities in any way.The vulnerability detailed in https://nvd.nist.gov/vuln/detail/CVE-2023-1177 enables an actor to download arbitrary files unrelated to MLflow from the host server, including any files stored in remote locations to which the host server has access.
Patches
This vulnerability has been patched in MLflow 2.2.1, which was released to PyPI on March 2nd, 2023. If you are using
mlflow server
ormlflow ui
with the MLflow Model Registry, we recommend upgrading to MLflow 2.2.1 as soon as possible.Workarounds
If you are using the MLflow open source
mlflow server
ormlflow ui
commands, we strongly recommend limiting who can access your MLflow Model Registry and MLflow Tracking servers using a cloud VPC, an IP allowlist for inbound requests, authentication / authorization middleware, or another access restriction mechanism of your choosing.If you are using the MLflow open source
mlflow server
ormlflow ui
commands, we also strongly recommend limiting the remote files to which your MLflow Model Registry and MLflow Tracking servers have access. For example, if your MLflow Model Registry or MLflow Tracking server uses cloud-hosted blob storage for MLflow artifacts, make sure to restrict the scope of your server's cloud credentials such that it can only access files and directories related to MLflow.References
More information about the vulnerability is available at https://nvd.nist.gov/vuln/detail/CVE-2023-1177.
CVE-2023-2356
Relative Path Traversal in GitHub repository mlflow/mlflow prior to 2.3.1.
GHSA-83fm-w79m-64r5
Impact
Users of the MLflow Open Source Project who are hosting the MLflow Model Registry using the
mlflow server
ormlflow ui
commands using an MLflow version older than MLflow 2.3.1 may be vulnerable to a remote file access exploit if they are not limiting who can query their server (for example, by using a cloud VPC, an IP allowlist for inbound requests, or authentication / authorization middleware).This issue only affects users and integrations that run the
mlflow server
andmlflow ui
commands. Integrations that do not make use ofmlflow server
ormlflow ui
are unaffected; for example, the Databricks Managed MLflow product and MLflow on Azure Machine Learning do not make use of these commands and are not impacted by these vulnerabilities in any way.The vulnerability is very similar to https://nvd.nist.gov/vuln/detail/CVE-2023-1177, and a separate CVE will be published and updated here shortly.
Patches
This vulnerability has been patched in MLflow 2.3.1, which was released to PyPI on April 27th, 2023. If you are using
mlflow server
ormlflow ui
with the MLflow Model Registry, we recommend upgrading to MLflow 2.3.1 as soon as possible.Workarounds
If you are using the MLflow open source
mlflow server
ormlflow ui
commands, we strongly recommend limiting who can access your MLflow Model Registry and MLflow Tracking servers using a cloud VPC, an IP allowlist for inbound requests, authentication / authorization middleware, or another access restriction mechanism of your choosing.If you are using the MLflow open source
mlflow server
ormlflow ui
commands, we also strongly recommend limiting the remote files to which your MLflow Model Registry and MLflow Tracking servers have access. For example, if your MLflow Model Registry or MLflow Tracking server uses cloud-hosted blob storage for MLflow artifacts, make sure to restrict the scope of your server's cloud credentials such that it can only access files and directories related to MLflow.References
CVE-2023-2780
mlflow prior to 2.3.0 is vulnerable to path traversal due to a bypass of the fix for CVE-2023-1177.
CVE-2023-3765
Absolute Path Traversal in GitHub repository mlflow/mlflow prior to 2.5.0.
CVE-2023-4033
OS Command Injection in GitHub repository mlflow/mlflow prior to 2.6.0.
CVE-2023-6015
MLflow allowed arbitrary files to be PUT onto the server.
CVE-2023-6018
The mlflow web server includes tools for tracking experiments, packaging code into reproducible runs, and sharing and deploying models. As this vulnerability allows to write / overwrite any file on the file system, it gives a lot of ways to archive code execution (like overwriting
/home/<user>/.bashrc
). A malicious user could use this issue to get command execution on the vulnerable machine and get access to data & models information.CVE-2023-43472
An issue in MLFlow versions 2.8.1 and before allows a remote attacker to obtain sensitive information via a crafted request to REST API.
CVE-2023-6568
A reflected Cross-Site Scripting (XSS) vulnerability exists in the mlflow/mlflow repository, specifically within the handling of the Content-Type header in POST requests. An attacker can inject malicious JavaScript code into the Content-Type header, which is then improperly reflected back to the user without adequate sanitization or escaping, leading to arbitrary JavaScript execution in the context of the victim's browser. The vulnerability is present in the mlflow/server/auth/init.py file, where the user-supplied Content-Type header is directly injected into a Python formatted string and returned to the user, facilitating the XSS attack.
CVE-2023-6709
Improper Neutralization of Special Elements Used in a Template Engine in GitHub repository mlflow/mlflow prior to 2.9.2.
CVE-2023-6753
Path Traversal in GitHub repository mlflow/mlflow prior to 2.9.2.
CVE-2023-6831
Path Traversal: '..\filename' in GitHub repository mlflow/mlflow prior to 2.9.2.
CVE-2023-6940
with only one user interaction(download a malicious config), attackers can gain full command execution on the victim system.
CVE-2023-6975
A malicious user could use this issue to get command execution on the vulnerable machine and get access to data & models information.
CVE-2023-30172
A directory traversal vulnerability in the /get-artifact API method of the mlflow platform prior to v2.0.0 allows attackers to read arbitrary files on the server via the path parameter.
CVE-2023-6977
This vulnerability enables malicious users to read sensitive files on the server.
CVE-2023-6974
A malicious user could use this issue to access internal HTTP(s) servers and in the worst case (ie: aws instance) it could be abused to get a remote code execution on the victim machine.
Release Notes
mlflow/mlflow (mlflow)
### [`v2.9.2`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#292-2023-12-14) [Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.9.1...v2.9.2) MLflow 2.9.2 is a patch release, containing several critical security fixes and configuration updates to support extremely large model artifacts. Features: - \[Deployments] Add the `mlflow.deployments.openai` API to simplify direct access to OpenAI services through the deployments API ([#10473](https://redirect.github.com/mlflow/mlflow/issues/10473), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Server-infra] Add a new environment variable that permits disabling http redirects within the Tracking Server for enhanced security in publicly accessible tracking server deployments ([#10673](https://redirect.github.com/mlflow/mlflow/issues/10673), [@daniellok-db](https://redirect.github.com/daniellok-db)) - \[Artifacts] Add environment variable configurations for both Multi-part upload and Multi-part download that permits modifying the per-chunk size to support extremely large model artifacts ([#10648](https://redirect.github.com/mlflow/mlflow/issues/10648), [@harupy](https://redirect.github.com/harupy)) Security fixes: - \[Server-infra] Disable the ability to inject malicious code via manipulated YAML files by forcing YAML rendering to be performed in a secure Sandboxed mode ([#10676](https://redirect.github.com/mlflow/mlflow/issues/10676), [@BenWilson2](https://redirect.github.com/BenWilson2), [#10640](https://redirect.github.com/mlflow/mlflow/issues/10640), [@harupy](https://redirect.github.com/harupy)) - \[Artifacts] Prevent path traversal attacks when querying artifact URI locations by disallowing `..` path traversal queries ([#10653](https://redirect.github.com/mlflow/mlflow/issues/10653), [@B-Step62](https://redirect.github.com/B-Step62)) - \[Data] Prevent a mechanism for conducting a malicious file traversal attack on Windows when using tracking APIs that interface with `HTTPDatasetSource` ([#10647](https://redirect.github.com/mlflow/mlflow/issues/10647), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Artifacts] Prevent a potential path traversal attack vector via encoded url traversal paths by decoding paths prior to evaluation ([#10650](https://redirect.github.com/mlflow/mlflow/issues/10650), [@B-Step62](https://redirect.github.com/B-Step62)) - \[Artifacts] Prevent the ability to conduct path traversal attacks by enforcing the use of sanitized paths with the tracking server ([#10666](https://redirect.github.com/mlflow/mlflow/issues/10666), [@harupy](https://redirect.github.com/harupy)) - \[Artifacts] Prevent path traversal attacks when using an FTP server as a backend store by enforcing base path declarations prior to accessing user-supplied paths ([#10657](https://redirect.github.com/mlflow/mlflow/issues/10657), [@harupy](https://redirect.github.com/harupy)) Documentation updates: - \[Docs] Add an end-to-end tutorial for RAG creation and evaluation ([#10661](https://redirect.github.com/mlflow/mlflow/issues/10661), [@AbeOmor](https://redirect.github.com/AbeOmor)) - \[Docs] Add Tensorflow landing page ([#10646](https://redirect.github.com/mlflow/mlflow/issues/10646), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Deployments / Tracking] Add endpoints to LLM evaluation docs ([#10660](https://redirect.github.com/mlflow/mlflow/issues/10660), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Examples] Add retriever evaluation tutorial for LangChain and improve the Question Generation tutorial notebook ([#10419](https://redirect.github.com/mlflow/mlflow/issues/10419), [@liangz1](https://redirect.github.com/liangz1)) Small bug fixes and documentation updates: [#10677](https://redirect.github.com/mlflow/mlflow/issues/10677), [#10636](https://redirect.github.com/mlflow/mlflow/issues/10636), [@serena-ruan](https://redirect.github.com/serena-ruan); [#10652](https://redirect.github.com/mlflow/mlflow/issues/10652), [#10649](https://redirect.github.com/mlflow/mlflow/issues/10649), [#10641](https://redirect.github.com/mlflow/mlflow/issues/10641), [@harupy](https://redirect.github.com/harupy); [#10643](https://redirect.github.com/mlflow/mlflow/issues/10643), [#10632](https://redirect.github.com/mlflow/mlflow/issues/10632), [@BenWilson2](https://redirect.github.com/BenWilson2) ### [`v2.9.1`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#291-2023-12-07) [Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.9.0...v2.9.1) MLflow 2.9.1 is a patch release, containing a critical bug fix related to loading `pyfunc` models that were saved in previous versions of MLflow. Bug fixes: - \[Models] Revert Changes to PythonModel that introduced loading issues for models saved in earlier versions of MLflow ([#10626](https://redirect.github.com/mlflow/mlflow/issues/10626), [@BenWilson2](https://redirect.github.com/BenWilson2)) Small bug fixes and documentation updates: [#10625](https://redirect.github.com/mlflow/mlflow/issues/10625), [@BenWilson2](https://redirect.github.com/BenWilson2) ### [`v2.9.0`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#290-2023-12-05) [Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.8.1...v2.9.0) MLflow 2.9.0 includes several major features and improvements. MLflow AI Gateway deprecation ([#10420](https://redirect.github.com/mlflow/mlflow/issues/10420), [@harupy](https://redirect.github.com/harupy)): The feature previously known as MLflow AI Gateway has been moved to utilize [the MLflow deployments API](https://mlflow.org/docs/latest/llms/deployments/index.html). 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](https://redirect.github.com/mlflow/mlflow/issues/10471), [@B-Step62](https://redirect.github.com/B-Step62)): [The MLflow tracking docs](https://mlflow.org/docs/latest/tracking.html) 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](https://redirect.github.com/mlflow/mlflow/issues/10585), [@harupy](https://redirect.github.com/harupy)) - Sanitize `filename` in `Content-Disposition` header for `HTTPDatasetSource` ([#10584](https://redirect.github.com/mlflow/mlflow/issues/10584), [@harupy](https://redirect.github.com/harupy)). - Validate `Content-Type` header to prevent POST XSS ([#10526](https://redirect.github.com/mlflow/mlflow/issues/10526), [@B-Step62](https://redirect.github.com/B-Step62)) Features: - \[Tracking] Use `backoff_jitter` when making HTTP requests ([#10486](https://redirect.github.com/mlflow/mlflow/issues/10486), [@ajinkyavbhandare](https://redirect.github.com/ajinkyavbhandare)) - \[Tracking] Add default `aggregate_results` if the score type is numeric in `make_metric` API ([#10490](https://redirect.github.com/mlflow/mlflow/issues/10490), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009)) - \[Tracking] Add string type of score types for metric value for genai ([#10307](https://redirect.github.com/mlflow/mlflow/issues/10307), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009)) - \[Artifacts] Support multipart upload for for proxy artifact access ([#9521](https://redirect.github.com/mlflow/mlflow/issues/9521), [@harupy](https://redirect.github.com/harupy)) - \[Models] Support saving `torch_dtype` for transformers models ([#10586](https://redirect.github.com/mlflow/mlflow/issues/10586), [@serena-ruan](https://redirect.github.com/serena-ruan)) - \[Models] Add built-in metric `ndcg_at_k` to retriever evaluation ([#10284](https://redirect.github.com/mlflow/mlflow/issues/10284), [@liangz1](https://redirect.github.com/liangz1)) - \[Model Registry] Implement universal `copy_model_version` ([#10308](https://redirect.github.com/mlflow/mlflow/issues/10308), [@jerrylian-db](https://redirect.github.com/jerrylian-db)) - \[Models] Support saving/loading `RunnableSequence`, `RunnableParallel`, and `RunnableBranch` ([#10521](https://redirect.github.com/mlflow/mlflow/issues/10521), [#10611](https://redirect.github.com/mlflow/mlflow/issues/10611), [@serena-ruan](https://redirect.github.com/serena-ruan)) Bug fixes: - \[Tracking] Resume system metrics logging when resuming an existing run ([#10312](https://redirect.github.com/mlflow/mlflow/issues/10312), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[UI] Fix incorrect sorting order in line chart ([#10553](https://redirect.github.com/mlflow/mlflow/issues/10553), [@B-Step62](https://redirect.github.com/B-Step62)) - \[UI] Remove extra whitespace in git URLs ([#10506](https://redirect.github.com/mlflow/mlflow/issues/10506), [@mrplants](https://redirect.github.com/mrplants)) - \[Models] Make spark_udf use NFS to broadcast model to spark executor on databricks runtime and spark connect mode ([#10463](https://redirect.github.com/mlflow/mlflow/issues/10463), [@WeichenXu123](https://redirect.github.com/WeichenXu123)) - \[Models] Fix promptlab pyfunc models not working for chat routes ([#10346](https://redirect.github.com/mlflow/mlflow/issues/10346), [@daniellok-db](https://redirect.github.com/daniellok-db)) Documentation updates: - \[Docs] Add a quickstart guide for Tensorflow ([#10398](https://redirect.github.com/mlflow/mlflow/issues/10398), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Improve the parameter tuning guide ([#10344](https://redirect.github.com/mlflow/mlflow/issues/10344), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Add a guide for system metrics logging ([#10429](https://redirect.github.com/mlflow/mlflow/issues/10429), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Add instructions on how to configure credentials for Azure OpenAI ([#10560](https://redirect.github.com/mlflow/mlflow/issues/10560), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Docs] Add docs and tutorials for Sentence Transformers flavor ([#10476](https://redirect.github.com/mlflow/mlflow/issues/10476), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Docs] Add tutorials, examples, and guides for Transformers Flavor ([#10360](https://redirect.github.com/mlflow/mlflow/issues/10360), [@BenWilson2](https://redirect.github.com/BenWilson2)) Small bug fixes and documentation updates: [#10567](https://redirect.github.com/mlflow/mlflow/issues/10567), [#10559](https://redirect.github.com/mlflow/mlflow/issues/10559), [#10348](https://redirect.github.com/mlflow/mlflow/issues/10348), [#10342](https://redirect.github.com/mlflow/mlflow/issues/10342), [#10264](https://redirect.github.com/mlflow/mlflow/issues/10264), [#10265](https://redirect.github.com/mlflow/mlflow/issues/10265), [@B-Step62](https://redirect.github.com/B-Step62); [#10595](https://redirect.github.com/mlflow/mlflow/issues/10595), [#10401](https://redirect.github.com/mlflow/mlflow/issues/10401), [#10418](https://redirect.github.com/mlflow/mlflow/issues/10418), [#10394](https://redirect.github.com/mlflow/mlflow/issues/10394), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub); [#10557](https://redirect.github.com/mlflow/mlflow/issues/10557), [@dan-licht](https://redirect.github.com/dan-licht); [#10584](https://redirect.github.com/mlflow/mlflow/issues/10584), [#10462](https://redirect.github.com/mlflow/mlflow/issues/10462), [#10445](https://redirect.github.com/mlflow/mlflow/issues/10445), [#10434](https://redirect.github.com/mlflow/mlflow/issues/10434), [#10432](https://redirect.github.com/mlflow/mlflow/issues/10432), [#10412](https://redirect.github.com/mlflow/mlflow/issues/10412), [#10411](https://redirect.github.com/mlflow/mlflow/issues/10411), [#10408](https://redirect.github.com/mlflow/mlflow/issues/10408), [#10407](https://redirect.github.com/mlflow/mlflow/issues/10407), [#10403](https://redirect.github.com/mlflow/mlflow/issues/10403), [#10361](https://redirect.github.com/mlflow/mlflow/issues/10361), [#10340](https://redirect.github.com/mlflow/mlflow/issues/10340), [#10339](https://redirect.github.com/mlflow/mlflow/issues/10339), [#10310](https://redirect.github.com/mlflow/mlflow/issues/10310), [#10276](https://redirect.github.com/mlflow/mlflow/issues/10276), [#10268](https://redirect.github.com/mlflow/mlflow/issues/10268), [#10260](https://redirect.github.com/mlflow/mlflow/issues/10260), [#10224](https://redirect.github.com/mlflow/mlflow/issues/10224), [#10214](https://redirect.github.com/mlflow/mlflow/issues/10214), [@harupy](https://redirect.github.com/harupy); [#10415](https://redirect.github.com/mlflow/mlflow/issues/10415), [@jessechancy](https://redirect.github.com/jessechancy); [#10579](https://redirect.github.com/mlflow/mlflow/issues/10579), [#10555](https://redirect.github.com/mlflow/mlflow/issues/10555), [@annzhang-db](https://redirect.github.com/annzhang-db); [#10540](https://redirect.github.com/mlflow/mlflow/issues/10540), [@wllgrnt](https://redirect.github.com/wllgrnt); [#10556](https://redirect.github.com/mlflow/mlflow/issues/10556), [@smurching](https://redirect.github.com/smurching); [#10546](https://redirect.github.com/mlflow/mlflow/issues/10546), [@mbenoit29](https://redirect.github.com/mbenoit29); [#10534](https://redirect.github.com/mlflow/mlflow/issues/10534), [@gabrielfu](https://redirect.github.com/gabrielfu); [#10532](https://redirect.github.com/mlflow/mlflow/issues/10532), [#10485](https://redirect.github.com/mlflow/mlflow/issues/10485), [#10444](https://redirect.github.com/mlflow/mlflow/issues/10444), [#10433](https://redirect.github.com/mlflow/mlflow/issues/10433), [#10375](https://redirect.github.com/mlflow/mlflow/issues/10375), [#10343](https://redirect.github.com/mlflow/mlflow/issues/10343), [#10192](https://redirect.github.com/mlflow/mlflow/issues/10192), [@serena-ruan](https://redirect.github.com/serena-ruan); [#10480](https://redirect.github.com/mlflow/mlflow/issues/10480), [#10416](https://redirect.github.com/mlflow/mlflow/issues/10416), [#10173](https://redirect.github.com/mlflow/mlflow/issues/10173), [@jerrylian-db](https://redirect.github.com/jerrylian-db); [#10527](https://redirect.github.com/mlflow/mlflow/issues/10527), [#10448](https://redirect.github.com/mlflow/mlflow/issues/10448), [#10443](https://redirect.github.com/mlflow/mlflow/issues/10443), [#10442](https://redirect.github.com/mlflow/mlflow/issues/10442), [#10441](https://redirect.github.com/mlflow/mlflow/issues/10441), [#10440](https://redirect.github.com/mlflow/mlflow/issues/10440), [#10439](https://redirect.github.com/mlflow/mlflow/issues/10439), [#10381](https://redirect.github.com/mlflow/mlflow/issues/10381), [@prithvikannan](https://redirect.github.com/prithvikannan); [#10509](https://redirect.github.com/mlflow/mlflow/issues/10509), [@keenranger](https://redirect.github.com/keenranger); [#10508](https://redirect.github.com/mlflow/mlflow/issues/10508), [#10494](https://redirect.github.com/mlflow/mlflow/issues/10494), [@WeichenXu123](https://redirect.github.com/WeichenXu123); [#10489](https://redirect.github.com/mlflow/mlflow/issues/10489), [#10266](https://redirect.github.com/mlflow/mlflow/issues/10266), [#10210](https://redirect.github.com/mlflow/mlflow/issues/10210), [#10103](https://redirect.github.com/mlflow/mlflow/issues/10103), [@TomeHirata](https://redirect.github.com/TomeHirata); [#10495](https://redirect.github.com/mlflow/mlflow/issues/10495), [#10435](https://redirect.github.com/mlflow/mlflow/issues/10435), [#10185](https://redirect.github.com/mlflow/mlflow/issues/10185), [@daniellok-db](https://redirect.github.com/daniellok-db); [#10319](https://redirect.github.com/mlflow/mlflow/issues/10319), [@michael-berk](https://redirect.github.com/michael-berk); [#10417](https://redirect.github.com/mlflow/mlflow/issues/10417), [@bbqiu](https://redirect.github.com/bbqiu); [#10379](https://redirect.github.com/mlflow/mlflow/issues/10379), [#10372](https://redirect.github.com/mlflow/mlflow/issues/10372), [#10282](https://redirect.github.com/mlflow/mlflow/issues/10282), [@BenWilson2](https://redirect.github.com/BenWilson2); [#10297](https://redirect.github.com/mlflow/mlflow/issues/10297), [@KonakanchiSwathi](https://redirect.github.com/KonakanchiSwathi); [#10226](https://redirect.github.com/mlflow/mlflow/issues/10226), [#10223](https://redirect.github.com/mlflow/mlflow/issues/10223), [#10221](https://redirect.github.com/mlflow/mlflow/issues/10221), [@milinddethe15](https://redirect.github.com/milinddethe15); [#10222](https://redirect.github.com/mlflow/mlflow/issues/10222), [@flooxo](https://redirect.github.com/flooxo); [#10590](https://redirect.github.com/mlflow/mlflow/issues/10590), [@letian-w](https://redirect.github.com/letian-w); ### [`v2.8.1`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#281-2023-11-14) [Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.8.0...v2.8.1) 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](https://redirect.github.com/mlflow/mlflow/issues/10414), [@dbczumar](https://redirect.github.com/dbczumar)) Bug fixes: - \[Artifacts] Fix a regression in 2.8.0 where downloading a single file from a registered model would fail ([#10362](https://redirect.github.com/mlflow/mlflow/issues/10362), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Evaluate] Fix the `Azure OpenAI` integration for `mlflow.evaluate` when using LLM `judge` metrics ([#10291](https://redirect.github.com/mlflow/mlflow/issues/10291), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Evaluate] Change `Examples` to optional for the `make_genai_metric` API ([#10353](https://redirect.github.com/mlflow/mlflow/issues/10353), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Evaluate] Remove the `fastapi` dependency when using `mlflow.evaluate` for LLM results ([#10354](https://redirect.github.com/mlflow/mlflow/issues/10354), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Evaluate] Fix syntax issues and improve the formatting for generated prompt templates ([#10402](https://redirect.github.com/mlflow/mlflow/issues/10402), [@annzhang-db](https://redirect.github.com/annzhang-db)) - \[Gateway] Fix the Gateway configuration validator pre-check for OpenAI to perform instance type validation ([#10379](https://redirect.github.com/mlflow/mlflow/issues/10379), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Tracking] Fix an intermittent issue with hanging threads when using asynchronous logging ([#10374](https://redirect.github.com/mlflow/mlflow/issues/10374), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Tracking] Add a timeout for the `mlflow.login()` API to catch invalid hostname configuration input errors ([#10239](https://redirect.github.com/mlflow/mlflow/issues/10239), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Tracking] Add a `flush` operation at the conclusion of logging system metrics ([#10320](https://redirect.github.com/mlflow/mlflow/issues/10320), [@chenmoneygithub](https://redirect.github.com/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](https://redirect.github.com/mlflow/mlflow/issues/10341), [@daniellok-db](https://redirect.github.com/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](https://redirect.github.com/mlflow/mlflow/issues/10305), [@BenWilson2](https://redirect.github.com/BenWilson2)) Documentation updates: - \[Docs] Add MLflow Tracking Quickstart ([#10285](https://redirect.github.com/mlflow/mlflow/issues/10285), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Docs] Add tracking server configuration guide ([#10241](https://redirect.github.com/mlflow/mlflow/issues/10241), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Refactor and improve the model deployment quickstart guide ([#10322](https://redirect.github.com/mlflow/mlflow/issues/10322), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Docs] Add documentation for system metrics logging ([#10261](https://redirect.github.com/mlflow/mlflow/issues/10261), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) Small bug fixes and documentation updates: [#10367](https://redirect.github.com/mlflow/mlflow/issues/10367), [#10359](https://redirect.github.com/mlflow/mlflow/issues/10359), [#10358](https://redirect.github.com/mlflow/mlflow/issues/10358), [#10340](https://redirect.github.com/mlflow/mlflow/issues/10340), [#10310](https://redirect.github.com/mlflow/mlflow/issues/10310), [#10276](https://redirect.github.com/mlflow/mlflow/issues/10276), [#10277](https://redirect.github.com/mlflow/mlflow/issues/10277), [#10247](https://redirect.github.com/mlflow/mlflow/issues/10247), [#10260](https://redirect.github.com/mlflow/mlflow/issues/10260), [#10220](https://redirect.github.com/mlflow/mlflow/issues/10220), [#10263](https://redirect.github.com/mlflow/mlflow/issues/10263), [#10259](https://redirect.github.com/mlflow/mlflow/issues/10259), [#10219](https://redirect.github.com/mlflow/mlflow/issues/10219), [@harupy](https://redirect.github.com/harupy); [#10313](https://redirect.github.com/mlflow/mlflow/issues/10313), [#10303](https://redirect.github.com/mlflow/mlflow/issues/10303), [#10213](https://redirect.github.com/mlflow/mlflow/issues/10213), [#10272](https://redirect.github.com/mlflow/mlflow/issues/10272), [#10282](https://redirect.github.com/mlflow/mlflow/issues/10282), [#10283](https://redirect.github.com/mlflow/mlflow/issues/10283), [#10231](https://redirect.github.com/mlflow/mlflow/issues/10231), [#10256](https://redirect.github.com/mlflow/mlflow/issues/10256), [#10242](https://redirect.github.com/mlflow/mlflow/issues/10242), [#10237](https://redirect.github.com/mlflow/mlflow/issues/10237), [#10238](https://redirect.github.com/mlflow/mlflow/issues/10238), [#10233](https://redirect.github.com/mlflow/mlflow/issues/10233), [#10229](https://redirect.github.com/mlflow/mlflow/issues/10229), [#10211](https://redirect.github.com/mlflow/mlflow/issues/10211), [#10231](https://redirect.github.com/mlflow/mlflow/issues/10231), [#10256](https://redirect.github.com/mlflow/mlflow/issues/10256), [#10242](https://redirect.github.com/mlflow/mlflow/issues/10242), [#10238](https://redirect.github.com/mlflow/mlflow/issues/10238), [#10237](https://redirect.github.com/mlflow/mlflow/issues/10237), [#10229](https://redirect.github.com/mlflow/mlflow/issues/10229), [#10233](https://redirect.github.com/mlflow/mlflow/issues/10233), [#10211](https://redirect.github.com/mlflow/mlflow/issues/10211), [@BenWilson2](https://redirect.github.com/BenWilson2); [#10375](https://redirect.github.com/mlflow/mlflow/issues/10375), [@serena-ruan](https://redirect.github.com/serena-ruan); [#10330](https://redirect.github.com/mlflow/mlflow/issues/10330), [@Haxatron](https://redirect.github.com/Haxatron); [#10342](https://redirect.github.com/mlflow/mlflow/issues/10342), [#10249](https://redirect.github.com/mlflow/mlflow/issues/10249), [#10249](https://redirect.github.com/mlflow/mlflow/issues/10249), [@B-Step62](https://redirect.github.com/B-Step62); [#10355](https://redirect.github.com/mlflow/mlflow/issues/10355), [#10301](https://redirect.github.com/mlflow/mlflow/issues/10301), [#10286](https://redirect.github.com/mlflow/mlflow/issues/10286), [#10257](https://redirect.github.com/mlflow/mlflow/issues/10257), [#10236](https://redirect.github.com/mlflow/mlflow/issues/10236), [#10270](https://redirect.github.com/mlflow/mlflow/issues/10270), [#10236](https://redirect.github.com/mlflow/mlflow/issues/10236), [@prithvikannan](https://redirect.github.com/prithvikannan); [#10321](https://redirect.github.com/mlflow/mlflow/issues/10321), [#10258](https://redirect.github.com/mlflow/mlflow/issues/10258), [@jerrylian-db](https://redirect.github.com/jerrylian-db); [#10245](https://redirect.github.com/mlflow/mlflow/issues/10245), [@jessechancy](https://redirect.github.com/jessechancy); [#10278](https://redirect.github.com/mlflow/mlflow/issues/10278), [@daniellok-db](https://redirect.github.com/daniellok-db); [#10244](https://redirect.github.com/mlflow/mlflow/issues/10244), [@gabrielfu](https://redirect.github.com/gabrielfu); [#10226](https://redirect.github.com/mlflow/mlflow/issues/10226), [@milinddethe15](https://redirect.github.com/milinddethe15); [#10390](https://redirect.github.com/mlflow/mlflow/issues/10390), [@bbqiu](https://redirect.github.com/bbqiu); [#10232](https://redirect.github.com/mlflow/mlflow/issues/10232), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009) ### [`v2.8.0`](https://redirect.github.com/mlflow/mlflow/blob/HEAD/CHANGELOG.md#280-2023-10-28) [Compare Source](https://redirect.github.com/mlflow/mlflow/compare/v2.7.1...v2.8.0) 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](https://redirect.github.com/mlflow/mlflow/issues/9598), [@andrew-christianson](https://redirect.github.com/andrew-christianson)) - \[Gateway] Add support for Huggingface Text Generation Inference as a provider in the AI Gateway ([#10072](https://redirect.github.com/mlflow/mlflow/issues/10072), [@SDonkelaarGDD](https://redirect.github.com/SDonkelaarGDD)) - \[Gateway] Add support for Google PaLM 2 as a provider in the AI Gateway ([#9797](https://redirect.github.com/mlflow/mlflow/issues/9797), [@arpitjasa-db](https://redirect.github.com/arpitjasa-db)) - \[Gateway] Add support for AI21labs as a provider in the AI Gateway ([#9828](https://redirect.github.com/mlflow/mlflow/issues/9828), [#10168](https://redirect.github.com/mlflow/mlflow/issues/10168), [@zhe-db](https://redirect.github.com/zhe-db)) - \[Gateway] Introduce a simplified method for setting the configuration file location for the AI Gateway via environment variable ([#9822](https://redirect.github.com/mlflow/mlflow/issues/9822), [@danilopeixoto](https://redirect.github.com/danilopeixoto)) - \[Evaluate] Introduce default provided LLM evaluation metrics for MLflow evaluate ([#9913](https://redirect.github.com/mlflow/mlflow/issues/9913), [@prithvikannan](https://redirect.github.com/prithvikannan)) - \[Evaluate] Add support for evaluating inference datasets in MLflow evaluate ([#9830](https://redirect.github.com/mlflow/mlflow/issues/9830), [@liangz1](https://redirect.github.com/liangz1)) - \[Evaluate] Add support for evaluating single argument functions in MLflow evaluate ([#9718](https://redirect.github.com/mlflow/mlflow/issues/9718), [@liangz1](https://redirect.github.com/liangz1)) - \[Evaluate] Add support for Retriever LLM model type evaluation within MLflow evaluate ([#10079](https://redirect.github.com/mlflow/mlflow/issues/10079), [@liangz1](https://redirect.github.com/liangz1)) - \[Models] Add configurable parameter for external model saving in the ONNX flavor to address a regression ([#10152](https://redirect.github.com/mlflow/mlflow/issues/10152), [@daniellok-db](https://redirect.github.com/daniellok-db)) - \[Models] Add support for saving inference parameters in a logged model's input example ([#9655](https://redirect.github.com/mlflow/mlflow/issues/9655), [@serena-ruan](https://redirect.github.com/serena-ruan)) - \[Models] Add support for `completions` in the OpenAI flavor ([#9838](https://redirect.github.com/mlflow/mlflow/issues/9838), [@santiagxf](https://redirect.github.com/santiagxf)) - \[Models] Add support for inference parameters for the OpenAI flavor ([#9909](https://redirect.github.com/mlflow/mlflow/issues/9909), [@santiagxf](https://redirect.github.com/santiagxf)) - \[Models] Introduce support for configuration arguments to be specified when loading a model ([#9251](https://redirect.github.com/mlflow/mlflow/issues/9251), [@santiagxf](https://redirect.github.com/santiagxf)) - \[Models] Add support for integrated Azure AD authentication for the OpenAI flavor ([#9704](https://redirect.github.com/mlflow/mlflow/issues/9704), [@santiagxf](https://redirect.github.com/santiagxf)) - \[Models / Scoring] Introduce support for model training lineage in model serving ([#9402](https://redirect.github.com/mlflow/mlflow/issues/9402), [@M4nouel](https://redirect.github.com/M4nouel)) - \[Model Registry] Introduce the `copy_model_version` client API for copying model versions across registered models ([#9946](https://redirect.github.com/mlflow/mlflow/issues/9946), [#10078](https://redirect.github.com/mlflow/mlflow/issues/10078), [#10140](https://redirect.github.com/mlflow/mlflow/issues/10140), [@jerrylian-db](https://redirect.github.com/jerrylian-db)) - \[Tracking] Expand the limits of parameter value length from 500 to 6000 ([#9709](https://redirect.github.com/mlflow/mlflow/issues/9709), [@serena-ruan](https://redirect.github.com/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](https://redirect.github.com/mlflow/mlflow/issues/9534), [@WeichenXu123](https://redirect.github.com/WeichenXu123)) - \[Tracking] Add support for logging system metrics to the MLflow fluent API ([#9557](https://redirect.github.com/mlflow/mlflow/issues/9557), [#9712](https://redirect.github.com/mlflow/mlflow/issues/9712), [#9714](https://redirect.github.com/mlflow/mlflow/issues/9714), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Tracking] Add callbacks within MLflow for Keras and Tensorflow ([#9454](https://redirect.github.com/mlflow/mlflow/issues/9454), [#9637](https://redirect.github.com/mlflow/mlflow/issues/9637), [#9579](https://redirect.github.com/mlflow/mlflow/issues/9579), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Tracking] Introduce a fluent login API for Databricks within MLflow ([#9665](https://redirect.github.com/mlflow/mlflow/issues/9665), [#10180](https://redirect.github.com/mlflow/mlflow/issues/10180), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Tracking] Add support for customizing auth for http requests from the MLflow client via a plugin extension ([#10049](https://redirect.github.com/mlflow/mlflow/issues/10049), [@lu-ohai](https://redirect.github.com/lu-ohai)) - \[Tracking] Introduce experimental asynchronous logging support for metrics, params, and tags ([#9705](https://redirect.github.com/mlflow/mlflow/issues/9705), [@sagarsumant](https://redirect.github.com/sagarsumant)) - \[Auth] Modify the behavior of user creation in MLflow Authentication so that only admins can create new users ([#9700](https://redirect.github.com/mlflow/mlflow/issues/9700), [@gabrielfu](https://redirect.github.com/gabrielfu)) - \[Artifacts] Add support for using `xethub` as an artifact store via a plugin extension ([#9957](https://redirect.github.com/mlflow/mlflow/issues/9957), [@Kelton8Z](https://redirect.github.com/Kelton8Z)) - \[UI] Add new opt-in Model Registry UI that supports model aliases and tags ([#10163](https://redirect.github.com/mlflow/mlflow/issues/10163), [@hubertzub-db](https://redirect.github.com/hubertzub-db), [@jerrylian-db](https://redirect.github.com/jerrylian-db)) Bug fixes: - \[Evaluate] Fix a bug with Azure OpenAI configuration usage within MLflow evaluate ([#9982](https://redirect.github.com/mlflow/mlflow/issues/9982), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009)) - \[Models] Fix a data consistency issue when saving models that have been loaded in heterogeneous memory configuration within the transformers flavor ([#10087](https://redirect.github.com/mlflow/mlflow/issues/10087), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Models] Fix an issue in the transformers flavor for complex input types by adding dynamic dataframe typing ([#9044](https://redirect.github.com/mlflow/mlflow/issues/9044), [@wamartin-aml](https://redirect.github.com/wamartin-aml)) - \[Models] Fix an issue in the langchain flavor to provide support for chains with multiple outputs ([#9497](https://redirect.github.com/mlflow/mlflow/issues/9497), [@bbqiu](https://redirect.github.com/bbqiu)) - \[Docker] Fix an issue with Docker image generation by changing the default env-manager to virtualenv ([#9938](https://redirect.github.com/mlflow/mlflow/issues/9938), [@Beramos](https://redirect.github.com/Beramos)) - \[Auth] Fix an issue with complex passwords in MLflow Auth to support a richer character set range ([#9760](https://redirect.github.com/mlflow/mlflow/issues/9760), [@dotdothu](https://redirect.github.com/dotdothu)) - \[R] Fix a bug with configuration access when running MLflow R in Databricks ([#10117](https://redirect.github.com/mlflow/mlflow/issues/10117), [@zacdav-db](https://redirect.github.com/zacdav-db)) Documentation updates: - \[Docs] Introduce the first phase of a larger documentation overhaul ([#10197](https://redirect.github.com/mlflow/mlflow/issues/10197), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Docs] Add guide for LLM eval ([#10058](https://redirect.github.com/mlflow/mlflow/issues/10058), [#10199](https://redirect.github.com/mlflow/mlflow/issues/10199), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Add instructions on how to force single file serialization within the onnx flavor's save and log functions ([#10178](https://redirect.github.com/mlflow/mlflow/issues/10178), [@BenWilson2](https://redirect.github.com/BenWilson2)) - \[Docs] Add documentation for the relevance metric for MLflow evaluate ([#10170](https://redirect.github.com/mlflow/mlflow/issues/10170), [@sunishsheth2009](https://redirect.github.com/sunishsheth2009)) - \[Docs] Add a style guide for the contributing guide for how to structure pydoc strings ([#9907](https://redirect.github.com/mlflow/mlflow/issues/9907), [@mberk06](https://redirect.github.com/mberk06)) - \[Docs] Fix issues with the pytorch lightning autolog code example ([#9964](https://redirect.github.com/mlflow/mlflow/issues/9964), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Update the example for `mlflow.data.from_numpy()` ([#9885](https://redirect.github.com/mlflow/mlflow/issues/9885), [@chenmoneygithub](https://redirect.github.com/chenmoneygithub)) - \[Docs] Add clear instructions for installing MLflow within R ([#9835](https://redirect.github.com/mlflow/mlflow/issues/9835), [@darshan8850](https://redirect.github.com/darshan8850)) - \[Docs] Update model registry documentation to add content regarding support for model aliases ([#9721](https://redirect.github.com/mlflow/mlflow/issues/9721), [@jerrylian-db](https://redirect.github.com/jerrylian-db)) Small bug fixes and documentation updates: [#10202](https://redirect.github.com/mlflow/mlflow/issues/10202), [#10189](https://redirect.github.com/mlflow/mlflow/issues/10189), [#10188](https://redirect.github.com/mlflow/mlflow/issues/10188), [#10159](https://redirect.github.com/mlflow/mlflow/issues/10159), [#10175](https://redirect.github.com/mlflow/mlflow/issues/10175), [#10165](https://redirect.github.com/mlflow/mlflow/issues/10165), [#10154](https://redirect.github.com/mlflow/mlflow/issues/10154), [#10083](https://redirect.github.com/mlflow/mlflow/issues/10083), [#10082](https://redirect.github.com/mlflow/mlflow/issues/10082), [#10081](https://redirect.github.com/mlflow/mlflow/issues/10081), [#10071](https://redirect.github.com/mlflow/mlflow/issues/10071), [#10077](https://redirect.github.com/mlflow/mlflow/issues/10077), [#10070](https://redirect.github.com/mlflow/mlflow/issues/10070), [#10053](https://redirect.github.com/mlflow/mlflow/issues/10053), [#10057](https://redirect.github.com/mlflow/mlflow/issues/10057), [#10055](https://redirect.github.com/mlflow/mlflow/issues/10055), [#10020](https://redirect.github.com/mlflow/mlflow/issues/10020), [#9928](https://redirect.github.com/mlflow/mlflow/issues/9928), [#9929](https://redirect.github.com/mlflow/mlflow/issues/9929), [#9944](https://redirect.github.com/mlflow/mlflow/issues/9944), [#9979](https://redirect.github.com/mlflow/mlflow/issues/9979), [#9923](https://redirect.github.com/mlflow/mlflow/issues/9923), [#9842](https://redirect.github.com/mlflow/mlflow/issues/9842), [@annzhang-db](https://redirect.github.com/annzhang-db); [#10203](https://redirect.github.com/mlflow/mlflow/issues/10203), [#10196](https://redirect.github.com/mlflow/mlflow/issues/10196), [#10172](https://redirect.github.com/mlflow/mlflow/issues/10172), [#10176](https://redirect.github.com/mlflow/mlflow/issues/10176), [#10145](https://redirect.github.com/mlflow/mlflow/issues/10145), [#10115](https://redirect.github.com/mlflow/mlflow/issues/10115), [#10107](https://redirect.github.com/mlflow/mlflow/issues/10107), [#10054](https://redirect.github.com/mlflow/mlflow/issues/10054), [#10056](https://redirect.github.com/mlflow/mlflow/issues/10056), [#10018](https://redirect.github.com/mlflow/mlflow/issues/10018), [#9976](https://redirect.github.com/mlflow/mlflow/issues/9976), [#9999](https://redirect.github.com/mlflow/mlflow/issues/9999), [#9998](https://redirect.github.com/mlflow/mlflow/issues/9998), [#9995](https://redirect.github.com/mlflow/mlflow/issues/9995), [#9978](https://redirect.github.com/mlflow/mlflow/issues/9978), [#9973](https://redirect.github.com/mlflow/mlflow/issues/9973), [#9975](https://redirect.github.com/mlflow/mlflow/issues/9975), [#9972](https://redirect.github.com/mlflow/mlflow/issues/9972), [#9974](https://redirect.github.com/mlflow/mlflow/issues/9974), [#9960](https://redirect.github.com/mlflow/mlflow/issues/9960), [#9925](https://redirect.github.com/mlflow/mlflow/issues/9925), [#9920](https://redirect.github.com/mlflow/mlflow/issues/9920), [@prithvikannan](https://redirect.github.com/prithvikannan); [#10144](https://redirect.github.com/mlflow/mlflow/issues/10144), [#10166](https://redirect.github.com/mlflow/mlflow/issues/10166), [#10143](https://redirect.github.com/mlflow/mlflow/issues/10143), [#10129](https://redirect.github.com/mlflow/mlflow/issues/10129), [#10059](https://redirect.github.com/mlflow/mlflow/issues/10059), [#10123](https://redirect.github.com/mlflow/mlflow/issues/10123), [#9555](https://redirect.github.com/mlflow/mlflow/issues/9555), [#9619](https://redirect.github.com/mlflow/mlflow/issues/9619), [@bbqiu](https://redirect.github.com/bbqiu); [#10187](https://redirect.github.com/mlflow/mlflow/issues/10187), [#10191](https://redirect.github.com/mlflow/mlflow/issues/10191), [#10181](https://redirect.github.com/mlflow/mlflow/issues/10181), [#10179](https://redirect.github.com/mlflow/mlflow/issues/10179), [#10151](https://redirect.github.com/mlflow/mlflow/issues/10151), [#10148](https://redirect.github.com/mlflow/mlflow/issues/10148), [#10126](https://redirect.github.com/mlflow/mlflow/issues/10126), [#10119](https://redirect.github.com/mlflow/mlflow/issues/10119), [#10099](https://redirect.github.com/mlflow/mlflow/issues/10099), [#10100](https://redirect.github.com/mlflow/mlflow/issues/10100), [#10097](https://redirect.github.com/mlflow/mlflow/issues/10097), [#10089](https://redirect.github.com/mlflow/mlflow/issues/10089), [#10096](https://redirect.github.com/mlflow/mlflow/issues/10096), [#10091](https://redirect.github.com/mlflow/mlflow/issues/10091), [#10085](https://redirect.github.com/mlflow/mlflow/issues/10085), [#10068](https://redirect.github.com/mlflow/mlflow/issues/10068), [#10065](https://redirect.github.com/mlflow/mlflow/issues/10065), [#10064](https://redirect.github.com/mlflow/mlflow/issues/10064), [#10060](https://redirect.github.com/mlflow/mlflow/issues/10060), [#10023](https://redirect.github.com/mlflow/mlflow/issues/10023), [#10030](https://redirect.github.com/mlflow/mlflow/issues/10030), [#10028](https://redirect.github.com/mlflow/mlflow/issues/10028), [#10022](https://redirect.github.com/mlflow/mlflow/issues/10022), [#10007](https://redirect.github.com/mlflow/mlflow/issues/10007), [#10006](https://redirect.github.com/mlflow/mlflow/issues/10006), [#9988](https://redirect.github.com/mlflow/mlflow/issues/9988), [#9961](https://redirect.github.com/mlflow/mlflow/issues/9961), [#9963](https://redirect.github.com/mlflow/mlflow/issues/9963), [#9954](https://redirect.github.com/mlflow/mlflow/issues/9954), [#9953](https://redirect.github.com/mlflow/mlflow/issues/9953), [#9937](https://redirect.github.com/mlflow/mlflow/issues/9937), [#9932](https://redirect.github.com/mlflow/mlflow/issues/9932), [#9931](https://redirect.github.com/mlflow/mlflow/issues/9931), [#9910](https://redirect.github.com/mlflow/mlflow/issues/9910), [#9901](https://redirect.github.com/mlflow/mlflow/issues/9901), [#9852](https://redirect.github.com/mlflow/mlflow/issues/9852), [#9851](https://redirect.github.com/mlflow/mlflow/issues/9851), [#9848](https://redirect.github.com/mlflow/mlflow/issues/9848), [#9847](https://redirect.github.com/mlflow/mlflow/issues/9847), [#9841](https://redirect.github.com/mlflow/mlflow/issues/9841), [#9844](https://redirect.github.com/mlflow/mlflow/issues/9844), [#9825](https://redirect.github.com/mlflow/mlflow/issues/9825), [#9820](https://redirect.github.com/mlflow/mlflow/issues/9820), [#9806](https://redirect.github.com/mlflow/mlflow/issConfiguration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.