Back to Mlflow

V2.X

changelogs/v2.x.md

3.12.0162.4 KB
Original Source

2.22.1 (2025-06-06)

MLflow 2.22.1 includes several major features and improvements

Features:

  • [Scoring] For DBConnect client, make spark_udf support DBR 15.4 and DBR dedicated cluster (#15938, @WeichenXu123)

Bug fixes:

  • [Model Registry] Log Resources from SystemAuthPolicy in CreateModelVersion (#15485, @aravind-segu)
  • [Tracking] Trace search: Avoid spawning threads for span fetching if include_spans=False (#15635, @dbczumar)

Documentation updates:

  • [Docs] Spark UDF Doc update (#15586, @WeichenXu123)

Small bug fixes and documentation updates:

#15523, #15728, @TomeHirata; #13997, #16025, #15647, #16030, @harupy; #15786, @rahuja23; #15703, @joelrobin18; #15612, @serena-ruan; #16031, @daniellok-db; #15841, @frontsideair; #15807, @B-Step62

2.22.0 (2025-04-24)

MLflow 2.22.0 brings important bug fixes and improves the UI and tracking capabilities.

Features:

  • [Tracking] Supported tracing for OpenAI Responses API.
    (#15240, @B-Step62)
  • [Tracking] Introduced get_last_active_trace, which affects model serving/monitoring logic.
    (#15233, @B-Step62)
  • [Tracking] Introduced async export for Databricks traces (default behavior).
    (#15163, @B-Step62)
  • [AI Gateway] Added Gemini embeddings support with corresponding unit tests.
    (#15017, @joelrobin18)
  • [Tracking / SQLAlchemy] MySQL SSL connections are now supported with client certs.
    (#14839, @aksylumoed)
  • [Models] Added Optuna storage utility for enabling parallel hyperparameter tuning.
    (#15243, @XiaohanZhangCMU)
  • [Artifacts] Added support for Azure Data Lake Storage (ADLS) artifact repositories.
    (#14723, @serena-ruan)
  • [UI] Artifact views for text now auto-refresh in the UI.
    (#14939, @joelrobin18)

Bug Fixes:

  • [Tracking / UI] Fixed serialization for structured output in langchain_tracer + added unit tests.
    (#14971, @joelrobin18)
  • [Server-infra] Enforced password validation for authentication (min. 8 characters).
    (#15287, @WeichenXu123)
  • [Deployments] Resolved an issue with the OpenAI Gateway adapter.
    (#15286, @WeichenXu123)
  • [Artifacts / Tracking / Server-infra] Normalized paths by stripping trailing slashes.
    (#15016, @tarek7669)
  • [Tags] Fixed bug where tag values containing ": " were being truncated.
    (#14896, @harupy)

Small bug fixes and documentation updates:

#15396, #15379, #15292, #15305, #15078, #15251, #15267, #15208, #15104, #15045, #15084, #15055, #15056, #15048, #14946, #14956, #14903, #14854, #14830, @serena-ruan; #15417, #15256, #15186, #15007, @TomeHirata; #15119, @bbqiu; #15413, #15314, #15311, #15303, #15301, #15288, #15275, #15269, #15272, #15268, #15262, #15266, #15264, #15261, #15252, #15249, #15244, #15236, #15235, #15237, #15140, #14982, #14898, #14893, #14861, #14870, #14853, #14849, #14813, #14822, @harupy; #15333, #15298, #15300, #15156, #15019, #14957, @B-Step62; #15313, #15297, #14880, @daniellok-db; #15066, #15074, #14913, @joelrobin18; #15232, @kbolashev; #15242, @dbczumar; #15210, #15178, @WeichenXu123; #15187, #15177, @hubertzub-db; #15059, #15070, #15050, #15012, #14959, #14918, #15005, #14965, #14858, #14930, #14927, #14786, #14883, #14863, #14852, #14788, @Gumichocopengin8; #14920, #14919, @jaceklaskowski

2.21.3 (2025-04-03)

MLflow 2.21.3 includes a few bugi

Bug fixes:

  • [Tracking] Fix spark ML save model error in Databricks shared or serverless cluster (#15198, @WeichenXu123)
  • [Tracking] Fix Spark model logging / loading in Databricks shared cluster and serverless (#15075, @WeichenXu123)

Documentation updates:

  • [Docs] Add document page for DSPy optimizer tracking (#15143, @TomeHirata)

Small bug fixes and documentation updates:

#15205, @mlflow-app[bot]; #15184, #15157, #15137, @TomeHirata; #15085, @B-Step62; #15118, @bbqiu; #15172, @harupy

2.21.2 (2025-03-26)

MLflow 2.21.2 is a patch release that introduces minor features and bug fixes.

  • Fix connection exhausting when exporting traces to Databricks (#15124, @B-Step62)
  • Add logging of result table for DSPy optimizer tracking (#15061, @TomeHirata)

2.21.1 (2025-03-25)

MLflow 2.21.1 is a patch release that introduces minor features and addresses some minor bugs.

Features:

  • [Tracking] Introduce support for logging evaluations within DSPy (#14962, @TomeHirata)
  • [Tracking] Add support for run creation when DSPy compile is executed (#14949, @TomeHirata)
  • [Docker / Sagemaker] Add support for building a SageMaker serving container that does not contain Java via the --install-java option (#14868, @rgangopadhya)

Bug fixes:

  • [Tracing] Fix an issue with trace ordering due to a timestamp conversion timezone bug (#15094, @orm011)
  • [Tracking] Fix a typo in the environment variable OTEL_EXPORTER_OTLP_PROTOCOL definition (#15008, @gabrielfu)
  • [Tracking] Fix an issue in shared and serverless clusters on Databricks when logging Spark Datasources when using the evaluate API (#15077, @WeichenXu123)
  • [UI] Fix a rendering issue with displaying images from within the metric tab in the UI (#15034, @TomeHirata)

Documentation updates:

  • [Docs] Add additional contextual information within the set_retriever_schema API docs (#15099, @smurching)

Small bug fixes and documentation updates:

#15009, #14995, #15039, #15040, @TomeHirata; #15010, #15053, @B-Step62; #15014, #15025, #15030, #15050, #15070, @Gumichocopengin8; #15035, #15064, @joelrobin18; #15058, @serena-ruan; #14945, @turbotimon

2.21.0 (2025-03-14)

We are excited to announce the release of MLflow 2.21.0! This release includes a number of significant features, enhancements, and bug fixes.

Major New Features

  • πŸ“š Documentation Redesign: MLflow documentation is fully revamped with a new MDX-based website that provides better navigation and makes it easier to find the information you need! (#13645, @daniellok-db)
  • πŸ€– Prompt Registry: MLflow Prompt Registry is a powerful tool that streamlines prompt engineering and management in your GenAI applications. It enables you to version, track, and reuse prompts across your organization. (#14795, #14834, #14936, @B-Step62, #14960, #14984, @daniellok-db, #14909, @hubertzub-db)
  • ⚑️ FastAPI Scoring Server: The MLflow inference server has been migrated from Flask to FastAPI, enabling ASGI-based scalable inference for improved performance and throughput. (#14307, @TomeHirata)
  • πŸ” Enhanced Tracing Capabilities: MLflow Tracing now supports synchronous/asynchronous generators and auto-tracing for Async OpenAI, providing more flexible and comprehensive tracing options. (#14459, #14400, #14793, @14792, @B-Step62)

Features:

  • [Tracking] Support OpenAI Agent SDK Auto Tracing (#14987, @B-Step62)
  • [Sqlalchemy / Tracking] Support mysql ssl connections with client certs (#14839, @aksylumoed)
  • [Artifacts] Supports ADLS artifact repo (#14723, @serena-ruan)
  • [Tracking] Add import and docs for txtai integration (#14712, @B-Step62)
  • [Models] Introduce User Auth Policy for Pyfunc Models (#14538, @aravind-segu)
  • [Tracking] Support new Google GenAI SDK (#14576, @TomeHirata)
  • [Tracking] Support generating traces from DSPy built-in compilation and evaluation (#14400, @B-Step62)
  • [Tracking] Add mlflow.log_trace API (#14418, @TomeHirata)
  • [Models] ChatAgent LangGraph and LangChain Connectors (#14215, @bbqiu)

Bug fixes:

  • [Models] Fix infinite recursion error with warning handler module (#14954, @BenWilson2)
  • [Model Registry] Fix invalid type issue for ModelRegistry RestStore (#14980, @B-Step62)
  • [Tracking] Fix: ExperimentViewRunsControlsActionsSelectTags doesn't set loading state to false when set-tag request fails. (#14907, @harupy)
  • [Tracking] Fix a bug in tag creation where tag values containing ": " get truncated (#14896, @harupy)
  • [Tracking] Fix false alert from AMD GPU monitor (#14884, @B-Step62)
  • [Tracking] Fix mlflow.doctor to fall back to mlflow-skinny when mlflow is not found (#14782, @harupy)
  • [Models] Handle LangGraph breaking change (#14794, @B-Step62)
  • [Tracking] Fix DSPy tracing in serving (#14743, @B-Step62)
  • [Tracking] Add limit to the length of experiment artifact locations (#14416, @daniellok-db)
  • [Build] Fix build.py to restore specific files #14444 (#14448, @arunkothari84)
  • [Models] Fix false alert for ChatModel type hint (#14343, @B-Step62)
  • [Model Registry] use aes256 to talk to s3 (#14354, @artjen)
  • [Tracking] Fix LiteLLM autologging (#14340, @B-Step62)
  • [Models] Fix ChatCompletionResponse for model serving Pydantic 1.x (#14332, @BenWilson2)

Documentation updates:

  • [Tracking] Add guide about using MLflow tracing across thread (#14881, @B-Step62)
  • [Docs] Add guide for tracing deepseek (#14826, @B-Step62)
  • [Docs] Update llama Jupyter notebook source (#14754, @emmanuel-ferdman)
  • [Docs] Replace Databricks Community Edition with Lighthouse [1] (#14642, @TomeHirata)
  • [Docs] Update models from code guide and chat model guide to always recommend models from code (#14370, @smurching)
  • [Artifacts] [DOC-FIX #14183] Improve documentation for 'artifact_uri' in 'download_artifacts' (#14225, @vinayakkgarg)

Small bug fixes and documentation updates:

#14994, #14992, #14990, #14979, #14964, #14969, #14944, #14948, #14957, #14958, #14942, #14940, #14935, #14929, #14805, #14876, #14833, #14748, #14744, #14666, #14668, #14664, #14667, #14580, #14475, #14439, #14397, #14363, #14361, #14377, #14378, #14337, #14324, #14339, #14259, @B-Step62; #14981, #14943, #14914, #14930, #14924, #14927, #14786, #14910, #14859, #14891, #14883, #14863, #14852, #14788, @Gumichocopengin8; #14946, #14978, #14956, #14906, #14903, #14854, #14860, #14857, #14824, #14830, #14767, #14772, #14770, #14766, #14651, #14629, #14636, #14572, #14498, #14328, #14265, @serena-ruan; #14989, #14895, #14880, #14878, #14866, #14821, #14817, #14815, #14765, #14803, #14773, #14783, #14784, #14776, #14759, #14541, #14553, #14540, #14499, #14495, #14481, #14479, #14456, #14022, #14411, #14407, #14408, #14315, #14346, #14325, #14322, #14326, #14310, #14309, #14320, #14308, @daniellok-db; #14986, #14904, #14898, #14893, #14861, #14870, #14853, #14849, #14813, #14822, #14818, #14802, #14804, #14814, #14779, #14796, #14735, #14731, #14728, #14734, #14727, #14726, #14721, #14719, #14716, #14692, #14683, #14687, #14684, #14674, #14673, #14662, #14652, #14650, #14648, #14647, #14646, #14639, #14637, #14635, #14634, #14633, #14630, #14628, #14624, #14623, #14621, #14619, #14615, #14613, #14603, #14601, #14600, #14597, #14570, #14564, #14554, #14551, #14550, #14515, #14529, #14528, #14525, #14516, #14514, #14486, #14476, #14472, #14477, #14364, #14431, #14414, #14398, #14412, #14399, #14359, #14369, #14381, #14349, #14350, #14347, #14348, #14342, #14329, #14250, #14318, #14323, #14306, #14280, #14279, #14272, #14270, #14263, #14222, @harupy; #14985, #14850, #14800, #14799, #14671, #14665, #14594, #14506, #14457, #14395, #14371, #14360, #14327, @TomeHirata; #14755, #14567, #14367, @bbqiu; #14892, @brilee; #14941, #14932, @hubertzub-db; #14913, @joelrobin18; #14756, @jiewpeng; #14701, @jaceklaskowski; #14568, #14450, @BenWilson2; #14535, @njbrake; #14507, @arunprd; #14489, @RuchitAgrawal; #14467, @seal07; #14460, @ManzoorAhmedShaikh; #14374, @wasup-yash; #14333, @singh-kristian; #14362, #14353, #14296, #13789, @dsuhinin; #14358, @apoxnen; #14335, @Fresnel-Fabian; #14178, @emmanuel-ferdman

2.20.4 (2025-03-13)

MLflow 2.20.4 is a tiny patch release to include a bug fix:

  • [Tracking] fix: remove log_trace at top level module (#14873, @yxtay)

2.20.3 (2025-02-26)

MLflow 2.20.3 is a patch release includes several major features and improvements

Features:

  • Implemented GPU metrics for AMD/HIP GPUs (#12694, @evenmn)
  • Add txtai tracing integration (#14712, @B-Step62)
  • Support new Google GenAI SDK (#14576, @TomeHirata)
  • Support the new thinking content block in Anthropic Claude 3.7 models (#14733, @B-Step62)

Bug fixes:

  • Resolve LangGraph tracing bug with astream_event API (#14598, @B-Step62)

Small bug fixes and documentation updates:

#14640, #14574, #14593, @serena-ruan; #14338, #14693, #14664, #14663, #14377, @B-Step62; #14680, @JulesLandrySimard; #14388, #14685, @harupy; #14704, @brilee; #14698, #14658, @bbqiu; #14660, #14659, #14632, #14616, #14594, @TomeHirata; #14535, @njbrake

2.20.2 (2025-02-13)

MLflow 2.20.2 is a patch release includes several bug fixes and features

Features:

  • [Tracing] Support tracing sync/async generator function with @mlflow.trace (#14459, @B-Step62)
  • [Tracing] Support generating traces from DSPy built-in compilation and evaluation (#14400, @B-Step62)
  • [Models] ChatAgent interface enhancements and Langgraph connectors updates (#14368, #14567, @bbqiu)
  • [Models] VariantType support in spark_udf (#14317, @serena-ruan)

Bug fixes:

  • [Models] DSPy thread issue fix (#14471, @chenmoneygithub)

Documentation updates:

  • [Docs] ChatAgent documentation updates (#14367, @bbqiu)

Small bug fixes and documentation updates:

#14410, #14569, #14440, @harupy; #14510, #14544, #14491, #14488, @bbqiu; #14518, @serena-ruan; #14517, #14500, #14461, #14478, @TomeHirata; #14512, @shaikmoeed; #14496, #14473, #14475, @B-Step62; #14467, @seal07; #14022, #14453, #14539, @daniellok-db; #14450, @BenWilson2; #14449, @SaiMadhavanG

2.20.1 (2025-01-30)

MLflow 2.20.1 is a patch release includes several bug fixes and features:

Features:

  • Spark_udf support for the model signatures based on type hints (#14265, @serena-ruan)
  • Helper connectors to use ChatAgent with LangChain and LangGraph (#14215, @bbqiu)
  • Update classifier evaluator to draw RUC/Lift curves for CatBoost models by default (#14333, @singh-kristian)

Bug fixes:

  • Fix Pydantic 1.x incompatibility issue (#14332, @BenWilson2)
  • Apply temporary fix for LiteLLM tracing to workaround https://github.com/BerriAI/litellm/issues/8013 (#14340, @B-Step62)
  • Fix false alert from type hint based model signature for ChatModel (#14343, @B-Step62)

Other small updates:

#14337, #14382, @B-Step62; #14356, @daniellok-db, #14354, @artjen, #14360, @TomuHirata,

2.20.0 (2025-01-23)

We are excited to announce the release of MLflow 2.20.0! This release includes a number of significant features, enhancements, and bug fixes.

Major New Features

  • πŸ’‘Type Hint-Based Model Signature: Define your model's signature in the most Pythonic way. MLflow now supports defining a model signature based on the type hints in your PythonModel's predict function, and validating input data payloads against it. (#14182, #14168, #14130, #14100, #14099, @serena-ruan)

  • 🧠 Bedrock / Groq Tracing Support: MLflow Tracing now offers a one-line auto-tracing experience for Amazon Bedrock and Groq LLMs. Track LLM invocation within your model by simply adding mlflow.bedrock.tracing or mlflow.groq.tracing call to the code. (#14018, @B-Step62, #14006, @anumita0203)

  • πŸ—’οΈ Inline Trace Rendering in Jupyter Notebook: MLflow now supports rendering a trace UI within the notebook where you are running models. This eliminates the need to frequently switch between the notebook and browser, creating a seamless local model debugging experience. Check out this blog post for a quick demo! (#13955, @daniellok-db)

  • ⚑️Faster Model Validation with uv Package Manager: MLflow has adopted uv, a new Rust-based, super-fast Python package manager. This release adds support for the new package manager in the mlflow.models.predict API, enabling faster model environment validation. Stay tuned for more updates! (#13824, @serena-ruan)

  • πŸ–₯️ New Chat Panel in Trace UI: THe MLflow Trace UI now shows a unified chat panel for LLM invocations. The update allows you to view chat messages and function calls in a rich and consistent UI across LLM providers, as well as inspect the raw input and output payloads. (#14211, @TomuHirata)

Other Features:

  • Introduced ChatAgent base class for defining custom python agent (#13797, @bbqiu)
  • Supported Tool Calling in DSPy Tracing (#14196, @B-Step62)
  • Applied timeout override to within-request local scoring server for Spark UDF inference (#14202, @BenWilson2)
  • Supported dictionary type for inference params (#14091, @serena-ruan)
  • Make context parameter optional for calling PythonModel instance (#14059, @serena-ruan)
  • Set default task for ChatModel (#14068, @stevenchen-db)

Bug fixes:

  • [Tracking] Fix filename encoding issue in log_image (#14281, @TomeHirata)
  • [Models] Fix the faithfulness metric for custom override parameters supplied to the callable metric implementation (#14220, @BenWilson2)
  • [Artifacts] Update presigned URL list_artifacts to return an empty list instead of an exception (#14203, @arpitjasa-db)
  • [Tracking] Fix rename permission model registry (#14139, @MohamedKHALILRouissi)
  • [Tracking] Fix hard-dependency to langchain package in autologging (#14125, @B-Step62)
  • [Tracking] Fix constraint name for MSSQL in migration 0584bdc529eb (#14146, @daniellok-db)
  • [Scoring] Fix uninitialized loaded_model variable (#14109, @yang-chengg)
  • [Model Registry] Return empty array when DatabricksSDKModelsArtifactRepository.list_artifacts is called on a file (#14027, @shichengzhou-db)

Documentation updates:

  • [Docs] Add a quick guide for how to host MLflow on various platforms (#14289, @B-Step62)
  • [Docs] Improve documentation for 'artifact_uri' in 'download_artifacts' (#14225, @vinayakkgarg)
  • [Docs] Add a page for search_traces (#14033, @TomeHirata)

Small bug fixes and documentation updates:

#14294, #14252, #14233, #14205, #14217, #14172, #14188, #14167, #14166, #14163, #14162, #14161, #13971, @TomeHirata; #14299, #14280, #14279, #14278, #14272, #14270, #14268, #14269, #14263, #14258, #14222, #14248, #14128, #14112, #14111, #14093, #14096, #14095, #14090, #14089, #14085, #14078, #14074, #14070, #14053, #14060, #14035, #14014, #14002, #14000, #13997, #13996, #13995, @harupy; #14298, #14286, #14249, #14276, #14259, #14242, #14254, #14232, #14207, #14206, #14185, #14196, #14193, #14173, #14164, #14159, #14165, #14152, #14151, #14126, #14069, #13987, @B-Step62; #14295, #14265, #14271, #14262, #14235, #14239, #14234, #14228, #14227, #14229, #14218, #14216, #14213, #14208, #14204, #14198, #14187, #14181, #14177, #14176, #14156, #14169, #14099, #14086, #13983, @serena-ruan; #14155, #14067, #14140, #14132, #14072, @daniellok-db; #14178, @emmanuel-ferdman; #14247, @dbczumar; #13789, #14108, @dsuhinin; #14212, @aravind-segu; #14223, #14191, #14084, @dsmilkov; #13804, @kriscon-db; #14158, @Lodewic; #14148, #14147, #14115, #14079, #14116, @WeichenXu123; #14135, @brilee; #14133, @manos02; #14121, @LeahKorol; #14025, @nojaf; #13948, @benglewis; #13942, @justsomerandomdude264; #14003, @Ajay-Satish-01; #13982, @prithvikannan; #13638, @MaxwellSalmon

2.19.0 (2024-12-11)

We are excited to announce the release of MLflow 2.19.0! This release includes a number of significant features, enhancements, and bug fixes.

Major New Features

  • ChatModel enhancements - ChatModel now adopts ChatCompletionRequest and ChatCompletionResponse as its new schema. The predict_stream interface uses ChatCompletionChunk to deliver true streaming responses. Additionally, the custom_inputs and custom_outputs fields in ChatModel now utilize AnyType, enabling support for a wider variety of data types. Note: In a future version of MLflow, ChatParams (and by extension, ChatCompletionRequest) will have the default values for n, temperature, and stream removed. (#13782, #13857, @stevenchen-db)

  • Tracing improvements - MLflow Tracing now supports both automatic and manual tracing for DSPy, LlamaIndex and Langchain flavors. Tracing feature is also auto-enabled for mlflow evaluation for all supported flavors. (#13790, #13793, #13795, #13897, @B-Step62)

  • New Tracing Integrations - MLflow Tracing now supports CrewAI and Anthropic, enabling a one-line, fully automated tracing experience. (#13903, @TomeHirata, #13851, @gabrielfu)

  • Any Type in model signature - MLflow now supports AnyType in model signature. It can be used to host any data types that were not supported before. (#13766, @serena-ruan)

Other Features:

  • [Tracking] Add update_current_trace API for adding tags to an active trace. (#13828, @B-Step62)
  • [Deployments] Update databricks deployments to support AI gateway & additional update endpoints (#13513, @djliden)
  • [Models] Support uv in mlflow.models.predict (#13824, @serena-ruan)
  • [Models] Add type hints support including pydantic models (#13924, @serena-ruan)
  • [Tracking] Add the trace.search_spans() method for searching spans within traces (#13984, @B-Step62)

Bug fixes:

  • [Tracking] Allow passing in spark connect dataframes in mlflow evaluate API (#13889, @WeichenXu123)
  • [Tracking] Fix mlflow.end_run inside a MLflow run context manager (#13888, @WeichenXu123)
  • [Scoring] Fix spark_udf conditional check on remote spark-connect client or Databricks Serverless (#13827, @WeichenXu123)
  • [Models] Allow changing max_workers for built-in LLM-as-a-Judge metrics (#13858, @B-Step62)
  • [Models] Support saving all langchain runnables using code-based logging (#13821, @serena-ruan)
  • [Model Registry] return empty array when DatabricksSDKModelsArtifactRepository.list_artifacts is called on a file (#14027, @shichengzhou-db)
  • [Tracking] Stringify param values in client.log_batch() (#14015, @B-Step62)
  • [Tracking] Remove deprecated squared parameter (#14028, @B-Step62)
  • [Tracking] Fix request/response field in the search_traces output (#13985, @B-Step62)

Documentation updates:

  • [Docs] Add Ollama and Instructor examples in tracing doc (#13937, @B-Step62)

Small bug fixes and documentation updates:

#13972, #13968, #13917, #13912, #13906, #13846, @serena-ruan; #13969, #13959, #13957, #13958, #13925, #13882, #13879, #13881, #13869, #13870, #13868, #13854, #13849, #13847, #13836, #13823, #13811, #13820, #13775, #13768, #13764, @harupy; #13960, #13914, #13862, #13892, #13916, #13918, #13915, #13878, #13891, #13863, #13859, #13850, #13844, #13835, #13818, #13762, @B-Step62; #13913, #13848, #13774, @TomeHirata; #13936, #13954, #13883, @daniellok-db; #13947, @AHB102; #13929, #13922, @Ajay-Satish-01; #13857, @stevenchen-db; #13773, @BenWilson2; #13705, @williamjamir; #13745, #13743, @WeichenXu123; #13895, @chenmoneygithub; #14023, @theBeginner86

2.18.0 (2024-11-18)

We are excited to announce the release of MLflow 2.18.0! This release includes a number of significant features, enhancements, and bug fixes.

Python Version Update

Python 3.8 is now at an end-of-life point. With official support being dropped for this legacy version, MLflow now requires Python 3.9 as a minimum supported version.

Note: If you are currently using MLflow's ChatModel interface for authoring custom GenAI applications, please ensure that you have read the future breaking changes section below.

Major New Features

  • 🦺 Fluent API Thread/Process Safety - MLflow's fluent APIs for tracking and the model registry have been overhauled to add support for both thread and multi-process safety. You are now no longer forced to use the Client APIs for managing experiments, runs, and logging from within multiprocessing and threaded applications. (#13456, #13419, @WeichenXu123)

  • 🧩 DSPy flavor - MLflow now supports logging, loading, and tracing of DSPy models, broadening the support for advanced GenAI authoring within MLflow. Check out the MLflow DSPy Flavor documentation to get started! (#13131, #13279, #13369, #13345, @chenmoneygithub, #13543, #13800, #13807, @B-Step62, #13289, @michael-berk)

  • πŸ–₯️ Enhanced Trace UI - MLflow Tracing's UI has undergone a significant overhaul to bring usability and quality of life updates to the experience of auditing and investigating the contents of GenAI traces, from enhanced span content rendering using markdown to a standardized span component structure, (#13685, #13357, #13242, @daniellok-db)

  • πŸš„ New Tracing Integrations - MLflow Tracing now supports DSPy, LiteLLM, and Google Gemini, enabling a one-line, fully automated tracing experience. These integrations unlock enhanced observability across a broader range of industry tools. Stay tuned for upcoming integrations and updates! (#13801, @TomeHirata, #13585, @B-Step62)

  • πŸ“Š Expanded LLM-as-a-Judge Support - MLflow now enhances its evaluation capabilities with support for additional providers, including Anthropic, Bedrock, Mistral, and TogetherAI, alongside existing providers like OpenAI. Users can now also configure proxy endpoints or self-hosted LLMs that follow the provider API specs by using the new proxy_url and extra_headers options. Visit the LLM-as-a-Judge documentation for more details! (#13715, #13717, @B-Step62)

  • ⏰ Environment Variable Detection - As a helpful reminder for when you are deploying models, MLflow now detects and reminds users of environment variables set during model logging, ensuring they are configured for deployment. In addition to this, the mlflow.models.predict utility has also been updated to include these variables in serving simulations, improving pre-deployment validation. (#13584, @serena-ruan)

Breaking Changes to ChatModel Interface

  • ChatModel Interface Updates - As part of a broader unification effort within MLflow and services that rely on or deeply integrate with MLflow's GenAI features, we are working on a phased approach to making a consistent and standard interface for custom GenAI application development and usage. In the first phase (planned for release in the next few releases of MLflow), we are marking several interfaces as deprecated, as they will be changing. These changes will be:

    • Renaming of Interfaces:
      • ChatRequest β†’ ChatCompletionRequest to provide disambiguation for future planned request interfaces.
      • ChatResponse β†’ ChatCompletionResponse for the same reason as the input interface.
      • metadata fields within ChatRequest and ChatResponse β†’ custom_inputs and custom_outputs, respectively.
    • Streaming Updates:
      • predict_stream will be updated to enable true streaming for custom GenAI applications. Currently, it returns a generator with synchronous outputs from predict. In a future release, it will return a generator of ChatCompletionChunks, enabling asynchronous streaming. While the API call structure will remain the same, the returned data payload will change significantly, aligning with LangChain's implementation.
    • Legacy Dataclass Deprecation:
      • Dataclasses in mlflow.models.rag_signatures will be deprecated, merging into unified ChatCompletionRequest, ChatCompletionResponse, and ChatCompletionChunks.

Other Features:

  • [Evaluate] Add Huggingface BLEU metrics to MLflow Evaluate (#12799, @nebrass)
  • [Models / Databricks] Add support for spark_udf when running on Databricks Serverless runtime, Databricks connect, and prebuilt python environments (#13276, #13496, @WeichenXu123)
  • [Scoring] Add a model_config parameter for pyfunc.spark_udf for customization of batch inference payload submission (#13517, @WeichenXu123)
  • [Tracing] Standardize retriever span outputs to a list of MLflow Documents (#13242, @daniellok-db)
  • [UI] Add support for visualizing and comparing nested parameters within the MLflow UI (#13012, @jescalada)
  • [UI] Add support for comparing logged artifacts within the Compare Run page in the MLflow UI (#13145, @jescalada)
  • [Databricks] Add support for resources definitions for Langchain model logging (#13315, @sunishsheth2009)
  • [Databricks] Add support for defining multiple retrievers within dependencies for Agent definitions (#13246, @sunishsheth2009)

Bug fixes:

  • [Database] Cascade deletes to datasets when deleting experiments to fix a bug in MLflow's gc command when deleting experiments with logged datasets (#13741, @daniellok-db)
  • [Models] Fix a bug with Langchain's pyfunc predict input conversion (#13652, @serena-ruan)
  • [Models] Fix signature inference for subclasses and Optional dataclasses that define a model's signature (#13440, @bbqiu)
  • [Tracking] Fix an issue with async logging batch splitting validation rules (#13722, @WeichenXu123)
  • [Tracking] Fix an issue with LangChain's autologging thread-safety behavior (#13672, @B-Step62)
  • [Tracking] Disable support for running spark autologging in a threadpool due to limitations in Spark (#13599, @WeichenXu123)
  • [Tracking] Mark role and index as required for chat schema (#13279, @chenmoneygithub)
  • [Tracing] Handle raw response in openai autolog (#13802, @harupy)
  • [Tracing] Fix a bug with tracing source run behavior when running inference with multithreading on Langchain models (#13610, @WeichenXu123)

Documentation updates:

  • [Docs] Add docstring warnings for upcoming changes to ChatModel (#13730, @stevenchen-db)
  • [Docs] Add a contributor's guide for implementing tracing integrations (#13333, @B-Step62)
  • [Docs] Add guidance in the use of model_config when logging models as code (#13631, @sunishsheth2009)
  • [Docs] Add documentation for the use of custom library artifacts with the code_paths model logging feature (#13702, @TomeHirata)
  • [Docs] Improve SparkML log_model documentation with guidance on how return probabilities from classification models (#13684, @WeichenXu123)

Small bug fixes and documentation updates:

#13775, #13768, #13764, #13744, #13699, #13742, #13703, #13669, #13682, #13569, #13563, #13562, #13539, #13537, #13533, #13408, #13295, @serena-ruan; #13768, #13764, #13761, #13738, #13737, #13735, #13734, #13723, #13726, #13662, #13692, #13689, #13688, #13680, #13674, #13666, #13661, #13625, #13460, #13626, #13546, #13621, #13623, #13603, #13617, #13614, #13606, #13600, #13583, #13601, #13602, #13604, #13598, #13596, #13597, #13531, #13594, #13589, #13581, #13112, #13587, #13582, #13579, #13578, #13545, #13572, #13571, #13564, #13559, #13565, #13558, #13541, #13560, #13556, #13534, #13386, #13532, #13385, #13384, #13383, #13507, #13523, #13518, #13492, #13493, #13487, #13490, #13488, #13449, #13471, #13417, #13445, #13430, #13448, #13443, #13429, #13418, #13412, #13382, #13402, #13381, #13364, #13356, #13309, #13313, #13334, #13331, #13273, #13322, #13319, #13308, #13302, #13268, #13298, #13296, @harupy; #13705, @williamjamir; #13632, @shichengzhou-db; #13755, #13712, #13260, @BenWilson2; #13745, #13743, #13697, #13548, #13549, #13577, #13349, #13351, #13350, #13342, #13341, @WeichenXu123; #13807, #13798, #13787, #13786, #13762, #13749, #13733, #13678, #13721, #13611, #13528, #13444, #13450, #13360, #13416, #13415, #13336, #13305, #13271, @B-Step62; #13808, #13708, @smurching; #13739, @fedorkobak; #13728, #13719, #13695, #13677, @TomeHirata; #13776, #13736, #13649, #13285, #13292, #13282, #13283, #13267, @daniellok-db; #13711, @bhavya2109sharma; #13693, #13658, @aravind-segu; #13553, @dsuhinin; #13663, @gitlijian; #13657, #13629, @parag-shendye; #13630, @JohannesJungbluth; #13613, @itepifanio; #13480, @agjendem; #13627, @ilyaresh; #13592, #13410, #13358, #13233, @nojaf; #13660, #13505, @sunishsheth2009; #13414, @lmoros-DB; #13399, @Abubakar17; #13390, @KekmaTime; #13291, @michael-berk; #12511, @jgiannuzzi; #13265, @Ahar28; #13785, @Rick-McCoy; #13676, @hyolim-e; #13718, @annzhang-db; #13705, @williamjamir

2.17.2 (2024-10-31)

MLflow 2.17.2 includes several major features and improvements

Features:

  • [Model Registry] DatabricksSDKModelsArtifactRepository support (#13203, @shichengzhou-db)
  • [Tracking] Support extracting new UCFunctionToolkit as model resources (#13567, @serena-ruan)

Bug fixes:

  • [Models] Fix RunnableBinding saving (#13566, @B-Step62)
  • [Models] Pin numpy when pandas < 2.1.2 in pip requirements (#13580, @serena-ruan)

Documentation updates:

  • [Docs] ChatModel tool calling tutorial (#13542, @daniellok-db)

Small bug fixes and documentation updates:

#13569, @serena-ruan; #13595, @BenWilson2; #13593, @mnijhuis-dnb;

2.17.1 (2024-10-25)

MLflow 2.17.1 includes several major features and improvements

Features:

  • [Tracking] Support custom chat endpoint without endpoint type set as llm judge (#13538, @B-Step62)
  • [Tracking] Support tracing for OpenAI Swarm (#13497, @B-Step62)
  • [Tracking] Support UC Connections as model dependency and resources (#13481, #13491 @sunishsheth2009)
  • [Tracking] Support Genie Spaces as model resources (#13441, @aravind-segu)
  • [Models] Support new Transformers task for llm/v1/embedding (#13468, @B-Step62)

Bug fixes:

  • [Tracking] Fix tool span inputs/outputs format in LangChain autolog (#13527, @B-Step62)
  • [Models] Fix code_path handling for LlamaIndex flavor (#13486, @B-Step62)
  • [Models] Fix signature inference for subclass and optional dataclasses (#13440, @bbqiu)
  • [Tracking] Fix error thrown in set_retriever_schema's behavior when it's called twice (#13422, @sunishsheth2009)
  • [Tracking] Fix dependency extraction from RunnableCallables (#13423, @aravind-segu)

Documentation updates:

  • [Docs] Fixed typo in docs (#13478, @JAMNESIA)
  • [Docs] Improve CLI docs - attention about setting MLFLOW_TRACKING_URI (#13465, @BartoszLitwiniuk)
  • [Docs] Add documentation for infer_signature usage with GenAI flavors (#13407, @serena-ruan)

Small bug fixes and documentation updates:

#13293, #13510, #13501, #13506, #13446, @harupy; #13341, #13342, @WeichenXu123; #13396, @dvorst; #13535, @chenmoneygithub; #13503, #13469, #13416, @B-Step62; #13519, #13516, @serena-ruan; #13504, @sunishsheth2009; #13508, @KamilStachera; #13397, @kriscon-db

2.17.0 (2024-09-26)

We are excited to announce the release of MLflow 2.17.0! This release includes several enhancements to extend the functionality of MLflow's ChatModel interface to further extend its versatility for handling custom GenAI application use cases. Additionally, we've improved the interface within the tracing UI to provide a structured output for retrieved documents, enhancing the ability to read the contents of those documents within the UI. We're also starting the work on improving both the utility and the versatility of MLflow's evaluate functionality for GenAI, initially with support for callable GenAI evaluation metrics.

Major Features and notifications:

  • ChatModel enhancements - As the GenAI-focused 'cousin' of PythonModel, ChatModel is getting some sizable functionality extensions. From native support for tool calling (a requirement for creating a custom agent), simpler conversions to the internal dataclass constructs needed to interface with ChatModel via the introduction of from_dict methods to all data structures, the addition of a metadata field to allow for full input payload customization, handling of the new refusal response type, to the inclusion of the interface type to the response structure to allow for greater integration compatibility. (#13191, #13180, #13143, @daniellok-db, #13102, #13071, @BenWilson2)

  • Callable GenAI Evaluation Metrics - As the initial step in a much broader expansion of the functionalities of mlflow.evaluate for GenAI use cases, we've converted the GenAI evaluation metrics to be callable. This allows you to use them directly in packages that support callable GenAI evaluation metrics, as well as making it simpler to debug individual responses when prototyping solutions. (#13144, @serena-ruan)

  • Audio file support in the MLflow UI - You can now directly 'view' audio files that have been logged and listen to them from within the MLflow UI's artifact viewer pane.

  • MLflow AI Gateway is no longer deprecated - We've decided to revert our deprecation for the AI Gateway feature. We had renamed it to the MLflow Deployments Server, but have reconsidered and reverted the naming and namespace back to the original configuration.

Features:

  • [Tracing] Add Standardization to retriever span outputs within MLflow tracing (#13242, @daniellok-db)
  • [Models] Add support for LlamaIndex Workflows objects to be serialized when calling log_model() (#13277, #13305, #13336, @B-Step62)
  • [Models] Add tool calling support for ChatModel (#13191, @daniellok-db)
  • [Models] Add from_dict() function to ChatModel dataclasses (#13180, @daniellok-db)
  • [Models] Add metadata field for ChatModel (#13143, @daniellok-db)
  • [Models] Update ChatCompletionResponse to populate object type (#13102, @BenWilson2)
  • [Models] Add support for LLM response refusal (#13071, @BenWilson2)
  • [Models] Add support for resources to be passed in via langchain.log_model() (#13315, @sunishsheth2009)
  • [Tracking] Add support for setting multiple retrievers' schema via set_retriever_schema (#13246, @sunishsheth2009)
  • [Eval] Make Evaluation metrics callable (#13144, @serena-ruan)
  • [UI] Add audio support to artifact viewer UI (#13017, @sydneyw-spotify)
  • [Databricks] Add support for route_optimized parameter in databricks deployment client (#13222, @prabhatkgupta)

Bug fixes:

  • [Tracking] Fix tracing for LangGraph (#13215, @B-Step62)
  • [Tracking] Fix an issue with presigned_url_artifact requests being in the wrong format (#13366, @WeichenXu123)
  • [Models] Update Databricks dependency extraction functionality to work with the langchain-databricks partner package. (#13266, @B-Step62)
  • [Model Registry] Fix retry and credential refresh issues with artifact downloads from the model registry (#12935, @rohitarun-db)
  • [Tracking] Fix LangChain autologging so that langchain-community is not required for partner packages (#13172, @B-Step62)
  • [Artifacts] Fix issues with file removal for the local artifact repository (#13005, @rzalawad)

Documentation updates:

  • [Docs] Add guide for building custom GenAI apps with ChatModel (#13207, @BenWilson2)
  • [Docs] Add updates to the MLflow AI Gateway documentation (#13217, @daniellok-db)
  • [Docs] Remove MLflow AI Gateway deprecation status (#13153, @BenWilson2)
  • [Docs] Add contribution guide for MLflow tracing integrations (#13333, @B-Step62)
  • [Docs] Add documentation regarding the run_id parameter within the search_trace API (#13251, @B-Step62)

Small bug fixes and documentation updates:

#13372, #13271, #13243, #13226, #13190, #13230, #13208, #13130, #13045, #13094, @B-Step62; #13302, #13238, #13234, #13205, #13200, #13196, #13198, #13193, #13192, #13194, #13189, #13184, #13182, #13161, #13179, #13178, #13110, #13162, #13173, #13171, #13169, #13168, #13167, #13156, #13127, #13133, #13089, #13073, #13057, #13058, #13067, #13062, #13061, #13052, @harupy; #13295, #13219, #13038, @serena-ruan; #13176, #13164, @WeichenXu123; #13163, @gabrielfu; #13186, @varshinimuthukumar1; #13128, #13115, @nojaf; #13120, @levscaut; #13152, #13075, @BenWilson2; #13138, @tanguylefloch-veesion; #13087, @SeanAverS; #13285, #13051, #13043, @daniellok-db; #13224, @levscaut;

2.16.2 (2024-09-17)

MLflow 2.16.2 includes several major features and improvements

Bug fixes:

  • [Models] Revert "Update Dependency Extraction for Agents (#13105)" (#13155, @aravind-segu)

2.16.1 (2024-09-13)

MLflow 2.16.1 is a patch release that includes some minor feature improvements and addresses several bug fixes.

Features:

  • [Tracing] Add Support for an Open Telemetry compatible exporter to configure external sinks for MLflow traces (#13118, @B-Step62)
  • [Model Registry, AWS] Add support for utilizing AWS KMS-based encryption for the MLflow Model Registry (#12495, @artjen)
  • [Model Registry] Add support for using the OSS Unity Catalog server as a Model Registry (#13034, #13065, #13066, @rohitarun-db)
  • [Models] Introduce path-based transformers logging to reduce memory requirements for saving large transformers models (#13070, @B-Step62)

Bug fixes:

  • [Tracking] Fix a data payload size issue with Model.get_tags_dict by eliminating the return of the internally-used config field (#13086, @harshilprajapati96)
  • [Models] Fix an issue with LangChain Agents where sub-dependencies were not being properly extracted (#13105, @aravind-segu)
  • [Tracking] Fix an issue where the wrong checkpoint for the current best model in auto checkpointing was being selected (#12981, @hareeen)
  • [Tracking] Fix an issue where local timezones for trace initialization were not being taken into account in AutoGen tracing (#13047, @B-Step62)

Documentation updates:

  • [Docs] Added RunLLM chat widget to MLflow's documentation site (#13123, @likawind)

Small bug fixes and documentation updates:

#13140, #13141, #13098, #13091, #13101, #13100, #13095, #13044, #13048, @B-Step62; #13142, #13092, #13132, #13055, #13049, @harupy; #13135, #13036, #13029, @serena-ruan; #13134, #13081, #13078, @daniellok-db; #13107, #13103, @kriscon-db; #13104, @arpitjasa-db; #13022, @nojaf; #13069, @minihat; #12879, @faizankshaikh

2.16.0 (2024-08-30)

We are excited to announce the release of MLflow 2.16.0. This release includes many major features and improvements!

Major features:

  • LlamaIndex EnhancementsπŸ¦™ - to provide additional flexibility to the LlamaIndex integration, we now have support for the models-from-code functionality for logging, extended engine-based logging, and broadened support for external vector stores.

  • LangGraph Support - We've expanded the LangChain integration to support the agent framework LangGraph. With tracing and support for logging using the models-from-code feature, creating and storing agent applications has never been easier!

  • AutoGen Tracing - Full automatic support for tracing multi-turn agent applications built with Microsoft's AutoGen framework is now available in MLflow. Enabling autologging via mlflow.autogen.autolog() will instrument your agents built with AutoGen.

  • Plugin support for AI Gateway - You can now define your own provider interfaces that will work with MLflow's AI Gateway (also known as the MLflow Deployments Server). Creating an installable provider definition will allow you to connect the Gateway server to any GenAI service of your choosing.

Features:

  • [UI] Add updated deployment usage examples to the MLflow artifact viewer (#13024, @serena-ruan, @daniellok-db)
  • [Models] Support logging LangGraph applications via the models-from-code feature (#12996, @B-Step62)
  • [Models] Extend automatic authorization pass-through support for Langgraph agents (#13001, @aravind-segu)
  • [Models] Expand the support for LangChain application logging to include UCFunctionToolkit dependencies (#12966, @aravind-segu)
  • [Models] Support saving LlamaIndex engine directly via the models-from-code feature (#12978, @B-Step62)
  • [Models] Support models-from-code within the LlamaIndex flavor (#12944, @B-Step62)
  • [Models] Remove the data structure conversion of input examples to ensure enhanced compatibility with inference signatures (#12782, @serena-ruan)
  • [Models] Add the ability to retrieve the underlying model object from within pyfunc model wrappers (#12814, @serena-ruan)
  • [Models] Add spark vector UDT type support for model signatures (#12758, @WeichenXu123)
  • [Tracing] Add tracing support for AutoGen (#12913, @B-Step62)
  • [Tracing] Reduce the latency overhead for tracing (#12885, @B-Step62)
  • [Tracing] Add Async support for the trace decorator (#12877, @MPKonst)
  • [Deployments] Introduce a plugin provider system to the AI Gateway (Deployments Server) (#12611, @gabrielfu)
  • [Projects] Add support for parameter submission to MLflow Projects run in Databricks (#12854, @WeichenXu123)
  • [Model Registry] Introduce support for Open Source Unity Catalog as a model registry service (#12888, @artjen)

Bug fixes:

  • [Tracking] Reduce the contents of the model-history tag to only essential fields (#12983, @harshilprajapati96)
  • [Models] Fix the behavior of defining the device to utilize when loading transformers models (#12977, @serena-ruan)
  • [Models] Fix evaluate behavior for LlamaIndex (#12976, @B-Step62)
  • [Models] Replace pkg_resources with importlib.metadata due to package deprecation (#12853, @harupy)
  • [Tracking] Fix error handling for OpenAI autolog tracing (#12841, @B-Step62)
  • [Tracking] Fix a condition where a deadlock can occur when connecting to an SFTP artifact store (#12938, @WeichenXu123)
  • [Tracking] Fix an issue where code_paths dependencies were not properly initialized within the system path for LangChain models (#12923, @harshilprajapati96)
  • [Tracking] Fix a type error for metrics value logging (#12876, @beomsun0829)
  • [Tracking] Properly catch NVML errors when collecting GPU metrics (#12903, @chenmoneygithub)
  • [Deployments] Improve Gateway schema support for the OpenAI provider (#12781, @danilopeixoto)
  • [Model Registry] Fix deletion of artifacts when downloading from a non-standard DBFS location during UC model registration (#12821, @smurching)

Documentation updates:

  • [Docs] Add documentation guides for LangGraph support (#13025, @BenWilson2)
  • [Docs] Add additional documentation for models from code feature (#12936, @BenWilson2)
  • [Docs] Add documentation for model serving input payloads (#12848, @serena-ruan)

Small bug fixes and documentation updates:

#12987, #12991, #12974, #12975, #12932, #12893, #12851, #12793, @serena-ruan; #13019, #13013, @aravind-segu; #12943, @piyushdaftary; #12906, #12898, #12757, #12750, #12727, @daniellok-db; #12995, #12985, #12964, #12962, #12960, #12953, #12951, #12937, #12914, #12929, #12907, #12897, #12880, #12865, #12864, #12862, #12850, #12847, #12833, #12835, #12826, #12824, #12795, #12796, @harupy; #12592, @antbbn; #12993, #12984, #12899, #12745, @BenWilson2; #12965, @nojaf; #12968, @bbqiu; #12956, @mickvangelderen; #12939, #12950, #12915, #12931, #12919, #12889, #12849, #12794, #12779, #12836, #12823, #12737, @B-Step62; #12903, @chenmoneygithub; #12905, @Atry; #12884, #12858, #12807, #12800, #10874, @WeichenXu123; #12342, @kriscon-db; #12742, @edwardfeng-db

2.15.1 (2024-08-06)

MLflow 2.15.1 is a patch release that addresses several bug fixes.

Bug fixes:

  • [Tracking] Fix silent disabling of LangChain autologging for LangChain >= 0.2.10. (#12779, @B-Step62)
  • [Tracking] Fix mlflow.evaluate crash on binary classification with data subset only contains single class (#12825, @serena-ruan)
  • [Tracking] Fix incompatibility of MLflow Tracing with LlamaIndex >= 0.10.61 (#12890, @B-Step62)
  • [Tracking] Record exceptions in OpenAI autolog tracing (#12841, @B-Step62)
  • [Tracking] Fix url with e2 proxy (#12873, @chenmoneygithub)
  • [Tracking] Fix regression of connecting to MLflow tracking server on other Databricks workspace (#12861, @WeichenXu123)
  • [UI] Fix refresh button for model metrics on Experiment and Run pages (#12869, @beomsun0829)

Documentation updates:

  • [Docs] Update doc for Spark ML vector type (#12827, @WeichenXu123)

Small bug fixes and documentation updates:

#12823, #12860, #12844, #12843, @B-Step62; #12863, #12828, @harupy; #12845, @djliden; #12820, @annzhang-db; #12831, @chenmoneygithub

2.15.0 (2024-07-29)

We are excited to announce the release candidate for MLflow 2.15.0. This release includes many major features and improvements!

Major features:

  • LlamaIndex FlavorπŸ¦™ - MLflow now offers a native integration with LlamaIndex, one of the most popular libraries for building GenAI apps centered around custom data. This integration allows you to log LlamaIndex indices within MLflow, allowing for the loading and deployment of your indexed data for inference tasks with different engine types. MLflow also provides comprehensive tracing support for LlamaIndex operations, offering unprecedented transparency into complex queries. Check out the MLflow LlamaIndex documentation to get started! (#12633, @michael-berk, @B-Step62)

  • OpenAI TracingπŸ” - We've enhanced our OpenAI integration with a new tracing feature that works seamlessly with MLflow OpenAI autologging. You can now enable tracing of their OpenAI API usage with a single mlflow.openai.autolog() call, thereby MLflow will automatically log valuable metadata such as token usage and a history of your interactions, providing deeper insights into your OpenAI-powered applications. To start exploring this new capability, please check out the tracing documentation! (#12267, @gabrielfu)

  • Enhanced Model Deployment with New Validation Featureβœ… - To improve the reliability of model deployments, MLflow has added a new method to validate your model before deploying it to an inference endpoint. This feature helps to eliminate typical errors in input and output handling, streamlining the process of model deployment and increasing confidence in your deployed models. By catching potential issues early, you can ensure a smoother transition from development to production. (#12710, @serena-ruan)

  • Custom Metrics Definition Recording for EvaluationsπŸ“Š - We've strengthened the flexibility of defining custom metrics for model evaluation by automatically logging and versioning metrics definitions, including models used as judges and prompt templates. With this new capability, you can ensure reproducibility of evaluations across different runs and easily reuse evaluation setups for consistency, facilitating more meaningful comparisons between different models or versions. (#12487, #12509, @xq-yin)

  • Databricks SDK IntegrationπŸ” - MLflow's interaction with Databricks endpoints has been fully migrated to use the Databricks SDK. This change brings more robust and reliable connections between MLflow and Databricks, and access to the latest Databricks features and capabilities. We mark the legacy databricks-cli support as deprecated and will remove in the future release. (#12313, @WeichenXu123)

  • Spark VectorUDT SupportπŸ’₯ - MLflow's Model Signature framework now supports Spark Vector UDT (User Defined Type), enabling logging and deployment of models using Spark VectorUDT with robust type validation. (#12758, @WeichenXu123)

Other Notable Changes

Features:

  • [Tracking] Add parent_id as a parameter to the start_run fluent API for alternative control flows (#12721, @Flametaa)
  • [Tracking] Add U2M authentication support for connecting to Databricks from MLflow (#12713, @WeichenXu123)
  • [Tracking] Support deleting remote artifacts with mlflow gc (#12451, @M4nouel)
  • [Tracing] Traces can now be deleted conveniently via UI from the Traces tab in the experiments page (#12641, @daniellok-db)
  • [Models] Introduce additional parameters for the ChatModel interface for GenAI flavors (#12612, @WeichenXu123)
  • [Models] [Transformers] Support input images encoded with b64.encodebytes (#12087, @MadhuM02)
  • [Models Registry] Add support for AWS KMS encryption for the Unity Catalog model registry integration (#12495, @artjen)
  • [Models] Fix MLflow Dataset hashing logic for Pandas dataframe to use iloc for accessing rows (#12410, @julcsii)
  • [Models Registry] Support presigned urls without headers for artifact location (#12349, @artjen)
  • [UI] The experiments page in the MLflow UI has an updated look, and comes with some performance optimizations for line charts (#12641, @hubertzub-db)
  • [UI] Line charts can now be configured to ignore outliers in the data (#12641, @daniellok-db)
  • [UI] Creating compatibility with Kubeflow Dashboard UI (#12663, @cgilviadee)
  • [UI] Add a new section to the artifact page in the Tracking UI, which shows code snippet to validate model input format before deployment (#12729, @serena-ruan)

Bug fixes:

  • [Tracking] Fix the model construction bug in MLflow SHAP evaluation for scikit-learn model (#12599, @serena-ruan)
  • [Tracking] File store get_experiment_by_name returns all stage experiments (#12788, @serena-ruan)
  • [Tracking] Fix Langchain callback injection logic for async/streaming request (#12773, @B-Step62)
  • [Tracing] [OpenAI] Fix stream tracing for OpenAI to record the correct chunk structure (#12629, @BenWilson2)
  • [Tracing] [LangChain] Fix LangChain tracing bug for .batch call due to thread unsafety (#12701, @B-Step62)
  • [Tracing] [LangChain] Fix nested trace issue in LangChain tracing. (#12705, @B-Step62)
  • [Tracing] Prevent intervention between MLflow Tracing and other OpenTelemetry-based libraries (#12457, @B-Step62)
  • [Models] Fix log_model issue in MLflow >= 2.13 that causes databricks DLT py4j service crashing (#12514, @WeichenXu123)
  • [Models] [Transformers] Fix batch inference issue for Transformers Whisper model (#12575, @B-Step62)
  • [Models] [LangChain] Fix the empty generator issue in predict_stream for AgentExecutor and other non-Runnable chains (#12518, @B-Step62)
  • [Scoring] Fix Spark UDF permission denied issue in Databricks runtime (#12774, @WeichenXu123)

Documentation updates:

  • Add documentation on authentication for Databricks UC Model Registry (#12552, @WeichenXu123)
  • Adding model-from-code documentation for LangChain and Pyfunc (#12325, #12336, @sunishsheth2009)
  • Add FAQ entry for viewing trace exceptions (#12309, @BenWilson2)
  • Add note about fork vs spawn method when using multiprocessing for parallel runs (#12337, @B-Step62)
  • Add example usage of extract_fields for mlflow.search_traces (#12319, @xq-yin)
  • Replace GPT-3.5-turbo with GPT-4o-mini (#12740, #12746, @Acksout)

Small bug fixes and documentation updates:

#12727, #12709, #12685, #12667, #12673, #12602, #12601, #12655, #12641, #12635, #12634, #12584, #12428, #12388, #12352, #12298, #12750, #12727, #12757, @daniellok-db; #12726, #12733, #12691, #12622, #12579, #12581, #12285, #12311, #12357, #12339, #12338, #12705, #12797, #12787, #12784, #12771, #12737, @B-Step62; #12715, @hubertzub-db; #12722, #12804, @annzhang-db; #12676, #12680, #12665, #12664, #12671, #12651, #12649, #12647, #12637, #12632, #12603, #12343, #12328, #12286, #12793, #12770, @serena-ruan; #12670, #12613, #12473, #12506, #12485, #12477, #12468, #12464, #12443, #12807, #12800, #10874, #12761, @WeichenXu123; #12690, #12678, #12686, #12545, #12621, #12598, #12583, #12582, #12510, #12580, #12570, #12571, #12559, #12538, #12537, #12519, #12515, #12507, #12508, #12502, #12499, #12497, #12447, #12467, #12426, #12448, #12430, #12420, #12385, #12371, #12359, #12284, #12345, #12316, #12287, #12303, #12291, #12795, #12786, #12796, #12792, #12791, #12778, #12777, #12755, #12751, #12753, #12749, @harupy; #12742, #12702, #12742 @edwardfeng-db; #12605, @alxhslm; #12662, @freemso; #12577, @rafyzg; #12512, @Jaishree2310; #12491, #1274, @BenWilson2; #12549, @besarthoxhaj; #12476, @jessechancy; #12541, @amanjam; #12479, #12472, #12433, #12289, @xq-yin; #12486, #12474, #11406, @jgiannuzzi; #12463, @jsuchome; #12460, @Venki1402; #12449, @yukimori; #12318, @RistoAle97; #12440, @victolee0; #12416, @Dev-98; #11771, @lababidi; #12417, @dannikay; #12663, @cgilviadee; #12410, @julcsii; #12600, @ZTZK; #12803, @hcmturner; #12747, @michael-berk; #12342, @kriscon-db; #12766, @artjen;

2.14.3 (2024-07-12)

MLflow 2.14.3 is a patch release that addresses bug fixes and additional documentation for released features

Features:

  • [Model Registry] Add support for server-side encryption when uploading files to AWS S3 (#12495, @artjen)

Bug fixes:

  • [Models] Fix stream trace logging with the OpenAI autologging implementation to record the correct chunk structure (#12629, @BenWilson2)
  • [Models] Fix batch inference behavior for Whisper-based translation models to allow for multiple audio file inputs (#12575, @B-Step62)

Documentation updates:

  • [Docs] Add documentation for OpenAI autologging (#12608, @BenWilson2)

Small bug fixes and documentation updates:

#12556, #12628, @B-Step62; #12582, #12560, @harupy; #12553, @nojaf

2.14.2 (2024-07-03)

MLflow 2.14.2 is a patch release that includes several important bug fixes and documentation enhancements.

Bug fixes:

  • [Models] Fix an issue with requirements inference error handling when disabling the default warning-only behavior (#12547, @B-Step62)
  • [Models] Fix dependency inference issues with Transformers models saved with the unified API llm/v1/xxx task definitions. (#12551, @B-Step62)
  • [Models / Databricks] Fix an issue with MLlfow log_model introduced in MLflow 2.13.0 that causes Databricks DLT service to crash in some situations (#12514, @WeichenXu123)
  • [Models] Fix an output data structure issue with the predict_stream implementation for LangChain AgentExecutor and other non-Runnable chains (#12518, @B-Step62)
  • [Tracking] Fix an issue with the predict_proba inference method in the sklearn flavor when loading an sklearn pipeline object as pyfunc (#12554, @WeichenXu123)
  • [Tracking] Fix an issue with the Tracing implementation where other services usage of OpenTelemetry would activate MLflow tracing and cause errors (#12457, @B-Step62)
  • [Tracking / Databricks] Correct an issue when running dependency inference in Databricks that can cause duplicate dependency entries to be logged (#12493, @sunishsheth2009)

Documentation updates:

  • [Docs] Add documentation and guides for the MLflow tracing schema (#12521, @BenWilson2)

Small bug fixes and documentation updates:

#12311, #12285, #12535, #12543, #12320, #12444, @B-Step62; #12310, #12340, @serena-ruan; #12409, #12432, #12471, #12497, #12499, @harupy; #12555, @nojaf; #12472, #12431, @xq-yin; #12530, #12529, #12528, #12527, #12526, #12524, #12531, #12523, #12525, #12522, @dbczumar; #12483, @jsuchome; #12465, #12441, @BenWilson2; #12450, @StarryZhang-whu

2.14.1 (2024-06-20)

MLflow 2.14.1 is a patch release that contains several bug fixes and documentation improvements

Bug fixes:

  • [Models] Fix params and model_config handling for llm/v1/xxx Transformers model (#12401, @B-Step62)
  • [UI] Fix dark mode user preference (#12386, @daniellok-db)
  • [Docker] Fix docker image failing to build with install_mlflow=False (#12388, @daniellok-db)

Documentation updates:

  • [Docs] Add link to langchain autologging page in doc (#12398, @xq-yin)
  • [Docs] Add documentation for Models from Code (#12381, @BenWilson2)

Small bug fixes and documentation updates:

#12415, #12396, #12394, @harupy; #12403, #12382, @BenWilson2; #12397, @B-Step62

2.14.0 (2024-06-17)

MLflow 2.14.0 includes several major features and improvements that we're very excited to announce!

Major features:

  • MLflow Tracing: Tracing is powerful tool designed to enhance your ability to monitor, analyze, and debug GenAI applications by allowing you to inspect the intermediate outputs generated as your application handles a request. This update comes with an automatic LangChain integration to make it as easy as possible to get started, but we've also implemented high-level fluent APIs, and low-level client APIs for users who want more control over their trace instrumentation. For more information, check out the guide in our docs!
  • Unity Catalog Integration: The MLflow Deployments server now has an integration with Unity Catalog, allowing you to leverage registered functions as tools for enhancing your chat application. For more information, check out this guide!
  • OpenAI Autologging: Autologging support has now been added for the OpenAI model flavor. With this feature, MLflow will automatically log a model upon calling the OpenAI API. Each time a request is made, the inputs and outputs will be logged as artifacts. Check out the guide for more information!

Other Notable Features:

  • [Models] Support input images encoded with b64.encodebytes (#12087, @MadhuM02)
  • [Tracking] Support async logging per X seconds (#12324, @chenmoneygithub)
  • [Tracking] Provide a way to set urllib's connection number and max size (#12227, @chenmoneygithub)
  • [Projects] Make MLflow project runner supporting submit spark job to databricks runtime >= 13 (#12139, @WeichenXu123)
  • [UI] Add the "description" column to the runs table (#11996, @zhouyou9505)

Bug fixes:

  • [Model Registry] Handle no headers presigned url (#12349, @artjen)
  • [Models] Fix docstring order for ChatResponse class and make object field immutable (#12305, @xq-yin)
  • [Databricks] Fix root user checking in get_databricks_nfs_temp_dir and get_databricks_local_temp_dir (#12186, @WeichenXu123)
  • [Tracking] fix _init_server process terminate hang (#12076, @zhouyou9505)
  • [Scoring] Fix MLflow model container and slow test CI failure (#12042, @WeichenXu123)

Documentation updates:

  • [Docs] Enhance documentation for autologging supported libraries (#12356, @xq-yin)
  • [Tracking, Docs] Adding Langchain as a code example and doc string (#12325, @sunishsheth2009)
  • [Tracking, Docs] Adding Pyfunc as a code example and doc string (#12336, @sunishsheth2009)
  • [Docs] Add FAQ entry for viewing trace exceptions in Docs (#12309, @BenWilson2)
  • [Docs] Add note about 'fork' vs 'spawn' method when using multiprocessing for parallel runs (#12337, @B-Step62)
  • [Docs] Fix type error in tracing example for function wrapping (#12338, @B-Step62)
  • [Docs] Add example usage of "extract_fields" for mlflow.search_traces in documentation (#12319, @xq-yin)
  • [Docs] Update LangChain Autologging docs (#12306, @B-Step62)
  • [Docs] Add Tracing documentation (#12191, @BenWilson2)

Small bug fixes and documentation updates:

#12359, #12308, #12350, #12284, #12345, #12316, #12287, #12303, #12291, #12288, #12265, #12170, #12248, #12263, #12249, #12251, #12239, #12241, #12240, #12235, #12242, #12172, #12215, #12228, #12216, #12164, #12225, #12203, #12181, #12198, #12195, #12192, #12146, #12171, #12163, #12166, #12124, #12106, #12113, #12112, #12074, #12077, #12058, @harupy; #12355, #12326, #12114, #12343, #12328, #12327, #12340, #12286, #12310, #12200, #12209, #12189, #12194, #12201, #12196, #12174, #12107, @serena-ruan; #12364, #12352, #12354, #12353, #12351, #12298, #12297, #12220, #12155, @daniellok-db; #12311, #12357, #12346, #12312, #12339, #12281, #12283, #12282, #12268, #12236, #12247, #12199, #12232, #12233, #12221, #12229, #12207, #12212, #12193, #12167, #12137, #12147, #12148, #12138, #12127, #12065, @B-Step62; #12289, #12253, #12330 @xq-yin; #11771, @lababidi; #12280, #12275, @BenWilson2; #12246, #12244, #12211, #12066, #12061, @WeichenXu123; #12278, @sunishsheth2009; #12136, @kriscon-db; #11911, @jessechancy; #12169, @hubertzub-db

2.13.2 (2024-06-06)

MLflow 2.13.2 is a patch release that includes several bug fixes and integration improvements to existing features.

Features:

  • [Tracking] Provide a way to set urllib's connection number and max size (#12227, @chenmoneygithub)
  • [Tracking] Support UC directory as MLflow MetaDataset (#12224, @chenmoneygithub)

Bug fixes:

  • [Models] Fix inferring mlflow[gateway] as dependency when using mlflow.deployment module (#12264, @B-Step62)
  • [Tracking] Flatten the model_config with / before logging as params (#12190, @sunishsheth2009)

Small bug fixes and documentation updates:

#12268, #12210, @B-Step62; #12214, @harupy; #12223, #12226, @annzhang-db; #12260, #12237, @prithvikannan; #12261, @BenWilson2; #12231, @serena-ruan; #12238, @sunishsheth2009

2.13.1 (2024-05-30)

MLflow 2.13.1 is a patch release that includes several bug fixes and integration improvements to existing features. New features that are introduced in this patch release are intended to provide a foundation to further major features that will be released in the next release.

Features:

  • [MLflow] Add mlflow[langchain] extra that installs recommended versions of langchain with MLflow (#12182, @sunishsheth2009)
  • [Tracking] Adding the ability to override the model_config in langchain flavor if loaded as pyfunc (#12085, @sunishsheth2009)
  • [Model Registry] Automatically detect if Presigned URLs are required for Unity Catalog (#12177, @artjen)

Bug fixes:

  • [Tracking] Use getUserLocalTempDir and getUserNFSTempDir to replace getReplLocalTempDir and getReplNFSTempDir in databricks runtime (#12105, @WeichenXu123)
  • [Model] Updating chat model to take default input_example and predict to accept json during inference (#12115, @sunishsheth2009)
  • [Tracking] Automatically call load_context when inferring signature in pyfunc (#12099, @sunishsheth2009)

Small bug fixes and documentation updates:

#12180, #12152, #12128, #12126, #12100, #12086, #12084, #12079, #12071, #12067, #12062, @serena-ruan; #12175, #12167, #12137, #12134, #12127, #12123, #12111, #12109, #12078, #12080, #12064, @B-Step62; #12142, @2maz; #12171, #12168, #12159, #12153, #12144, #12104, #12095, #12083, @harupy; #12160, @aravind-segu; #11990, @kriscon-db; #12178, #12176, #12090, #12036, @sunishsheth2009; #12162, #12110, #12088, #11937, #12075, @daniellok-db; #12133, #12131, @prithvikannan; #12132, #12035, @annzhang-db; #12121, #12120, @liangz1; #12122, #12094, @dbczumar; #12098, #12055, @mparkhe

2.13.0 (2024-05-20)

MLflow 2.13.0 includes several major features and improvements

With this release, we're happy to introduce several features that enhance the usability of MLflow broadly across a range of use cases.

Major Features and Improvements:

  • Streamable Python Models: The newly introduced predict_stream API for Python Models allows for custom model implementations that support the return of a generator object, permitting full customization for GenAI applications.

  • Enhanced Code Dependency Inference: A new feature for automatically inferrring code dependencies based on detected dependencies within a model's implementation. As a supplement to the code_paths parameter, the introduced infer_model_code_paths option when logging a model will determine which additional code modules are needed in order to ensure that your models can be loaded in isolation, deployed, and reliably stored.

  • Standardization of MLflow Deployment Server: Outputs from the Deployment Server's endpoints now conform to OpenAI's interfaces to provide a simpler integration with commonly used services.

Features:

  • [Deployments] Update the MLflow Deployment Server interfaces to be OpenAI compatible (#12003, @harupy)
  • [Deployments] Add Togetherai as a supported provider for the MLflow Deployments Server (#11557, @FotiosBistas)
  • [Models] Add predict_stream API support for Python Models (#11791, @WeichenXu123)
  • [Models] Enhance the capabilities of logging code dependencies for MLflow models (#11806, @WeichenXu123)
  • [Models] Add support for RunnableBinding models in LangChain (#11980, @serena-ruan)
  • [Model Registry / Databricks] Add support for renaming models registered to Unity Catalog (#11988, @artjen)
  • [Model Registry / Databricks] Improve the handling of searching for invalid components from Unity Catalog registered models (#11961, @artjen)
  • [Model Registry] Enhance retry logic and credential refresh to mitigate cloud provider token expiration failures when uploading or downloading artifacts (#11614, @artjen)
  • [Artifacts / Databricks] Add enhanced lineage tracking for models loaded from Unity Catalog (#11305, @shichengzhou-db)
  • [Tracking] Add resourcing metadata to Pyfunc models to aid in model serving environment configuration (#11832, @sunishsheth2009)
  • [Tracking] Enhance LangChain signature inference for models as code (#11855, @sunishsheth2009)

Bug fixes:

  • [Artifacts] Prohibit invalid configuration options for multi-part upload on AWS (#11975, @ian-ack-db)
  • [Model Registry] Enforce registered model metadata equality (#12013, @artjen)
  • [Models] Correct an issue with hasattr references in AttrDict usages (#11999, @BenWilson2)

Documentation updates:

  • [Docs] Simplify the main documentation landing page (#12017, @BenWilson2)
  • [Docs] Add documentation for the expanded code path inference feature (#11997, @BenWilson2)
  • [Docs] Add documentation guidelines for the predict_stream API (#11976, @BenWilson2)
  • [Docs] Add support for enhanced Documentation with the JFrog MLflow Plugin (#11426, @yonarbel)

Small bug fixes and documentation updates:

#12052, #12053, #12022, #12029, #12024, #11992, #12004, #11958, #11957, #11850, #11938, #11924, #11922, #11920, #11820, #11822, #11798, @serena-ruan; #12054, #12051, #12045, #12043, #11987, #11888, #11876, #11913, #11868, @sunishsheth2009; #12049, #12046, #12037, #11831, @dbczumar; #12047, #12038, #12020, #12021, #11970, #11968, #11967, #11965, #11963, #11941, #11956, #11953, #11934, #11921, #11454, #11836, #11826, #11793, #11790, #11776, #11765, #11763, #11746, #11748, #11740, #11735, @harupy; #12025, #12034, #12027, #11914, #11899, #11866, @BenWilson2; #12026, #11991, #11979, #11964, #11939, #11894, @daniellok-db; #11951, #11974, #11916, @annzhang-db; #12015, #11931, #11627, @jessechancy; #12014, #11917, @prithvikannan; #12012, @AveshCSingh; #12001, @yunpark93; #11984, #11983, #11977, #11977, #11949, @edwardfeng-db; #11973, @bbqiu; #11902, #11835, #11775, @B-Step62; #11845, @lababidi

2.12.2 (2024-05-08)

MLflow 2.12.2 is a patch release that includes several bug fixes and integration improvements to existing features. New features that are introduced in this patch release are intended to provide a foundation to further major features that will be released in the next 2 minor releases.

Features:

  • [Models] Add an environment configuration flag to enable raising an exception instead of a warning for failures in model dependency inference (#11903, @BenWilson2)
  • [Models] Add support for the llm/v1/embeddings task in the Transformers flavor to unify the input and output structures for embedding models (#11795, @B-Step62)
  • [Models] Introduce model streaming return via predict_stream() for custom pyfunc models capable of returning a stream response (#11791, #11895, @WeichenXu123)
  • [Evaluate] Add support for overriding the entire model evaluation judgment prompt within mlflow.evaluate for GenAI models (#11912, @apurva-koti)
  • [Tracking] Add support for defining deployment resource metadata to configure deployment resources within pyfunc models (#11832, #11825, #11804, @sunishsheth2009)
  • [Tracking] Add support for logging LangChain and custom pyfunc models as code (#11855, #11842, @sunishsheth2009)
  • [Tracking] Modify MLflow client's behavior to read from a global asynchronous configuration state (#11778, #11780, @chenmoneygithub)
  • [Tracking] Enhance system metrics data collection to include a GPU power consumption metric (#11747, @chenmoneygithub)

Bug fixes:

  • [Models] Fix a validation issue when performing signature validation if params are specified (#11838, @WeichenXu123)
  • [Databricks] Fix an issue where models cannot be loaded in the Databricks serverless runtime (#11758, @WeichenXu123)
  • [Databricks] Fix an issue with the Databricks serverless runtime where scaled workers do not have authorization to read from the driver NFS mount (#11757, @WeichenXu123)
  • [Databricks] Fix an issue in the Databricks serverless runtime where a model loaded via a spark_udf for inference fails due to a configuration issue (#11752, @WeichenXu123)
  • [Server-infra] Upgrade the gunicorn dependency to version 22 to address a third-party security issue (#11742, @maitreyakv)

Documentation updates:

  • [Docs] Add additional guidance on search syntax restrictions for search APIs (#11892, @BenWilson2)
  • [Docs] Fix an issue with the quickstart guide where the Keras example model is defined incorrectly (#11848, @horw)
  • [Docs] Provide fixes and updates to LangChain tutorials and guides (#11802, @BenWilson2)
  • [Docs] Fix the model registry example within the docs for correct type formatting (#11789, @80rian)

Small bug fixes and documentation updates:

#11928, @apurva-koti; #11910, #11915, #11864, #11893, #11875, #11744, @BenWilson2; #11913, #11918, #11869, #11873, #11867, @sunishsheth2009; #11916, #11879, #11877, #11860, #11843, #11844, #11817, #11841, @annzhang-db; #11822, #11861, @serena-ruan; #11890, #11819, #11794, #11774, @B-Step62; #11880, @prithvikannan; #11833, #11818, #11954, @harupy; #11831, @dbczumar; #11812, #11816, #11800, @daniellok-db; #11788, @smurching; #11756, @IgorMilavec; #11627, @jessechancy

2.12.1 (2024-04-17)

MLflow 2.12.1 includes several major features and improvements

With this release, we're pleased to introduce several major new features that are focused on enhanced GenAI support, Deep Learning workflows involving images, expanded table logging functionality, and general usability enhancements within the UI and external integrations.

Major Features and Improvements:

  • PromptFlow: Introducing the new PromptFlow flavor, designed to enrich the GenAI landscape within MLflow. This feature simplifies the creation and management of dynamic prompts, enhancing user interaction with AI models and streamlining prompt engineering processes. (#11311, #11385 @brynn-code)

  • Enhanced Metadata Sharing for Unity Catalog: MLflow now supports the ability to share metadata (and not model weights) within Databricks Unity Catalog. When logging a model, this functionality enables the automatic duplication of metadata into a dedicated subdirectory, distinct from the model's actual storage location, allowing for different sharing permissions and access control limits. (#11357, #11720 @WeichenXu123)

  • Code Paths Unification and Standardization: We have unified and standardized the code_paths parameter across all MLflow flavors to ensure a cohesive and streamlined user experience. This change promotes consistency and reduces complexity in the model deployment lifecycle. (#11688, @BenWilson2)

  • ChatOpenAI and AzureChatOpenAI Support: Support for the ChatOpenAI and AzureChatOpenAI interfaces has been integrated into the LangChain flavor, facilitating seamless deployment of conversational AI models. This development opens new doors for building sophisticated and responsive chat applications leveraging cutting-edge language models. (#11644, @B-Step62)

  • Custom Models in Sentence-Transformers: The sentence-transformers flavor now supports custom models, allowing for a greater flexibility in deploying tailored NLP solutions. (#11635, @B-Step62)

  • Image Support for Log Table: With the addition of image support in log_table, MLflow enhances its capabilities in handling rich media. This functionality allows for direct logging and visualization of images within the platform, improving the interpretability and analysis of visual data. (#11535, @jessechancy)

  • Streaming Support for LangChain: The newly introduced predict_stream API for LangChain models supports streaming outputs, enabling real-time output for chain invocation via pyfunc. This feature is pivotal for applications requiring continuous data processing and instant feedback. (#11490, #11580 @WeichenXu123)

Security Fixes:

  • Security Patch: Addressed a critical Local File Read/Path Traversal vulnerability within the Model Registry, ensuring robust protection against unauthorized access and securing user data integrity. (#11376, @WeichenXu123)

Features:

  • [Models] Add the PromptFlow flavor (#11311, #11385 @brynn-code)
  • [Models] Add a new predict_stream API for streamable output for Langchain models and the DatabricksDeploymentClient (#11490, #11580 @WeichenXu123)
  • [Models] Deprecate and add code_paths alias for code_path in pyfunc to be standardized to other flavor implementations (#11688, @BenWilson2)
  • [Models] Add support for custom models within the sentence-transformers flavor (#11635, @B-Step62)
  • [Models] Enable Spark MapType support within model signatures when used with Spark udf inference (#11265, @WeichenXu123)
  • [Models] Add support for metadata-only sharing within Unity Catalog through the use of a subdirectory (#11357, #11720 @WeichenXu123)
  • [Models] Add Support for the ChatOpenAI and AzureChatOpenAI LLM interfaces within the LangChain flavor (#11644, @B-Step62)
  • [Artifacts] Add support for utilizing presigned URLs when uploading and downloading files when using Unity Catalog (#11534, @artjen)
  • [Artifacts] Add a new Image object for handling the logging and optimized compression of images (#11404, @jessechancy)
  • [Artifacts] Add time and step-based metadata to the logging of images (#11243, @jessechancy)
  • [Artifacts] Add the ability to log a dataset to Unity Catalog by means of UCVolumeDatasetSource (#11301, @chenmoneygithub)
  • [Tracking] Remove the restrictions for logging a table in Delta format to no longer require running within a Databricks environment (#11521, @chenmoneygithub)
  • [Tracking] Add support for logging mlflow.Image files within tables (#11535, @jessechancy)
  • [Server-infra] Introduce override configurations for controlling how http retries are handled (#11590, @BenWilson2)
  • [Deployments] Implement chat & chat streaming for Anthropic within the MLflow deployments server (#11195, @gabrielfu)

Security fixes:

  • [Model Registry] Fix Local File Read/Path Traversal (LFI) bypass vulnerability (#11376, @WeichenXu123)

Bug fixes:

  • [Model Registry] Fix a registry configuration error that occurs within Databricks serverless clusters (#11719, @WeichenXu123)
  • [Model Registry] Delete registered model permissions when deleting the underlying models (#11601, @B-Step62)
  • [Model Registry] Disallow % in model names to prevent URL mangling within the UI (#11474, @daniellok-db)
  • [Models] Fix an issue where critically important environment configurations were not being captured as langchain dependencies during model logging (#11679, @serena-ruan)
  • [Models] Patch the LangChain loading functions to handle uncorrectable pickle-related exceptions that are thrown when loading a model in certain versions (#11582, @B-Step62)
  • [Models] Fix a regression in the sklearn flavor to reintroduce support for custom prediction methods (#11577, @B-Step62)
  • [Models] Fix an inconsistent and unreliable implementation for batch support within the langchain flavor (#11485, @WeichenXu123)
  • [Models] Fix loading remote-code-dependent transformers models that contain custom code (#11412, @daniellok-db)
  • [Models] Remove the legacy conversion logic within the transformers flavor that generates an inconsistent input example display within the MLflow UI (#11508, @B-Step62)
  • [Models] Fix an issue with Keras autologging iteration input handling (#11394, @WeichenXu123)
  • [Models] Fix an issue with keras autologging training dataset generator (#11383, @WeichenXu123)
  • [Tracking] Fix an issue where a module would be imported multiple times when logging a langchain model (#11553, @sunishsheth2009)
  • [Tracking] Fix the sampling logic within the GetSampledHistoryBulkInterval API to produce more consistent results when displayed within the UI (#11475, @daniellok-db)
  • [Tracking] Fix import issues and properly resolve dependencies of langchain and lanchain_community within langchain models when logging (#11450, @sunishsheth2009)
  • [Tracking] Improve the performance of asynchronous logging (#11346, @chenmoneygithub)
  • [Deployments] Add middle-of-name truncation to excessively long deployment names for Sagemaker image deployment (#11523, @BenWilson2)

Documentation updates:

  • [Docs] Add clarity and consistent documentation for code_paths docstrings in API documentation (#11675, @BenWilson2)
  • [Docs] Add documentation guidance for sentence-transformers OpenAI-compatible API interfaces (#11373, @es94129)

Small bug fixes and documentation updates:

#11723, @freemin7; #11722, #11721, #11690, #11717, #11685, #11689, #11607, #11581, #11516, #11511, #11358, @serena-ruan; #11718, #11673, #11676, #11680, #11671, #11662, #11659, #11654, #11633, #11628, #11620, #11610, #11605, #11604, #11600, #11603, #11598, #11572, #11576, #11555, #11563, #11539, #11532, #11528, #11525, #11514, #11513, #11509, #11457, #11501, #11500, #11459, #11446, #11443, #11442, #11433, #11430, #11420, #11419, #11416, #11418, #11417, #11415, #11408, #11325, #11327, #11313, @harupy; #11707, #11527, #11663, #11529, #11517, #11510, #11489, #11455, #11427, #11389, #11378, #11326, @B-Step62; #11715, #11714, #11665, #11626, #11619, #11437, #11429, @BenWilson2; #11699, #11692, @annzhang-db; #11693, #11533, #11396, #11392, #11386, #11380, #11381, #11343, @WeichenXu123; #11696, #11687, #11683, @chilir; #11387, #11625, #11574, #11441, #11432, #11428, #11355, #11354, #11351, #11349, #11339, #11338, #11307, @daniellok-db; #11653, #11369, #11270, @chenmoneygithub; #11666, #11588, @jessechancy; #11661, @jmjeon94; #11640, @tunjan; #11639, @minkj1992; #11589, @tlm365; #11566, #11410, @brynn-code; #11570, @lababidi; #11542, #11375, #11345, @edwardfeng-db; #11463, @taranarmo; #11506, @ernestwong-db; #11502, @fzyzcjy; #11470, @clemenskol; #11452, @jkfran; #11413, @GuyAglionby; #11438, @victorsun123; #11350, @liangz1; #11370, @sunishsheth2009; #11379, #11304, @zhouyou9505; #11321, #11323, #11322, @michael-berk; #11333, @cdancette; #11228, @TomeHirata

2.12.0 (2024-04-16)

MLflow 2.12.0 has been yanked from PyPI due to an issue with packaging required JS components. MLflow 2.12.1 is its replacement.

2.11.3 (2024-03-21)

MLflow 2.11.3 is a patch release that addresses a security exploit with the Open Source MLflow tracking server and miscellaneous Databricks integration fixes

Bug fixes:

  • [Security] Address an LFI exploit related to misuse of url parameters (#11473, @daniellok-db)
  • [Databricks] Fix an issue with Databricks Runtime version acquisition when deploying a model using Databricks Docker Container Services (#11483, @WeichenXu123)
  • [Databricks] Correct an issue with credential management within Databricks Model Serving (#11468, @victorsun123)
  • [Models] Fix an issue with chat request validation for LangChain flavor (#11478, @BenWilson2)
  • [Models] Fixes for LangChain models that are logged as code (#11494, #11436 @sunishsheth2009)

2.11.2 (2024-03-19)

MLflow 2.11.2 is a patch release that introduces corrections for the support of custom transformer models, resolves LangChain integration problems, and includes several fixes to enhance stability.

Bug fixes:

  • [Security] Address LFI exploit (#11376, @WeichenXu123)
  • [Models] Fix transformers models implementation to allow for custom model and component definitions to be loaded properly (#11412, #11428 @daniellok-db)
  • [Models] Fix the LangChain flavor implementation to support defining an MLflow model as code (#11370, @sunishsheth2009)
  • [Models] Fix LangChain VectorSearch parsing errors (#11438, @victorsun123)
  • [Models] Fix LangChain import issue with the community package (#11450, @sunishsheth2009)
  • [Models] Fix serialization errors with RunnableAssign in the LangChain flavor (#11358, @serena-ruan)
  • [Models] Address import issues with LangChain community for Databricks models (#11350, @liangz1)
  • [Registry] Fix model metadata sharing within Databricks Unity Catalog (#11357, #11392 @WeichenXu123)

Small bug fixes and documentation updates:

#11321, #11323, @michael-berk; #11326, #11455, @B-Step62; #11333, @cdancette; #11373, @es94129; #11429, @BenWilson2; #11413, @GuyAglionby; #11338, #11339, #11355, #11432, #11441, @daniellok-db; #11380, #11381, #11383, #11394, @WeichenXu123; #11446, @harupy;

2.11.1 (2024-03-06)

MLflow 2.11.1 is a patch release, containing fixes for some Databricks integrations and other various issues.

Bug fixes:

  • [UI] Add git commit hash back to the run page UI (#11324, @daniellok-db)
  • [Databricks Integration] Explicitly import vectorstores and embeddings in databricks_dependencies (#11334, @daniellok-db)
  • [Databricks Integration] Modify DBR version parsing logic (#11328, @daniellok-db)

Small bug fixes and documentation updates:

#11336, #11335, @harupy; #11303, @B-Step62; #11319, @BenWilson2; #11306, @daniellok-db

2.11.0 (2024-03-01)

MLflow 2.11.0 includes several major features and improvements

With the MLflow 2.11.0 release, we're excited to bring a series of large and impactful features that span both GenAI and Deep Learning use cases.

  • The MLflow Tracking UI got an overhaul to better support the review and comparison of training runs for Deep Learning workloads. From grouping to large-scale metric plotting throughout the iterations of a DL model's training cycle, there are a large number of quality of life improvements to enhance your Deep Learning MLOps workflow.

  • Support for the popular PEFT library from HuggingFace is now available in the mlflow.transformers flavor. In addition to PEFT support, we've removed the restrictions on Pipeline types that can be logged to MLflow, as well as the ability to, when developing and testing models, log a transformers pipeline without copying foundational model weights. These enhancements strive to make the transformers flavor more useful for cutting-edge GenAI models, new pipeline types, and to simplify the development process of prompt engineering, fine-tuning, and to make iterative development faster and cheaper. Give the updated flavor a try today! (#11240, @B-Step62)

  • We've added support to both PyTorch and TensorFlow for automatic model weights checkpointing (including resumption from a previous state) for the auto logging implementations within both flavors. This highly requested feature allows you to automatically configure long-running Deep Learning training runs to keep a safe storage of your best epoch, eliminating the risk of a failure late in training from losing the state of the model optimization. (#11197, #10935, @WeichenXu123)

  • We've added a new interface to Pyfunc for GenAI workloads. The new ChatModel interface allows for interacting with a deployed GenAI chat model as you would with any other provider. The simplified interface (no longer requiring conformance to a Pandas DataFrame input type) strives to unify the API interface experience. (#10820, @daniellok-db)

  • We now support Keras 3. This large overhaul of the Keras library introduced new fundamental changes to how Keras integrates with different DL frameworks, bringing with it a host of new functionality and interoperability. To learn more, see the Keras 3.0 Tutorial to start using the updated model flavor today! (#10830, @chenmoneygithub)

  • Mistral AI has been added as a native provider for the MLflow Deployments Server. You can now create proxied connections to the Mistral AI services for completions and embeddings with their powerful GenAI models. (#11020, @thnguyendn)

  • We've added compatibility support for the OpenAI 1.x SDK. Whether you're using an OpenAI LLM for model evaluation or calling OpenAI within a LangChain model, you'll now be able to utilize the 1.x family of the OpenAI SDK without having to point to deprecated legacy APIs. (#11123, @harupy)

Features:

  • [UI] Revamp the MLflow Tracking UI for Deep Learning workflows, offering a more intuitive and efficient user experience (#11233, @daniellok-db)
  • [Data] Introduce the ability to log datasets without loading them into memory, optimizing resource usage and processing time (#11172, @chenmoneygithub)
  • [Models] Introduce logging frequency controls for TensorFlow, aligning it with Keras for consistent performance monitoring (#11094, @chenmoneygithub)
  • [Models] Add PySpark DataFrame support in mlflow.pyfunc.predict, enhancing data compatibility and analysis options for batch inference (#10939, @ernestwong-db)
  • [Models] Introduce new CLI commands for updating model requirements, facilitating easier maintenance, validation and updating of models without having to re-log (#11061, @daniellok-db)
  • [Models] Update Embedding API for sentence transformers to ensure compatibility with OpenAI format, broadening model application scopes (#11019, @lu-wang-dl)
  • [Models] Improve input and signature support for text-generation models, optimizing for Chat and Completions tasks (#11027, @es94129)
  • [Models] Enable chat and completions task outputs in the text-generation pipeline, expanding interactive capabilities (#10872, @es94129)
  • [Tracking] Add node id to system metrics for enhanced logging in multi-node setups, improving diagnostics and monitoring (#11021, @chenmoneygithub)
  • [Tracking] Implement mlflow.config.enable_async_logging for asynchronous logging, improving log handling and system performance (#11138, @chenmoneygithub)
  • [Evaluate] Enhance model evaluation with endpoint URL support, streamlining performance assessments and integrations (#11262, @B-Step62)
  • [Deployments] Implement chat & chat streaming support for Cohere, enhancing interactive model deployment capabilities (#10976, @gabrielfu)
  • [Deployments] Enable Cohere streaming support, allowing real-time interaction functionalities for the MLflow Deployments server with the Cohere provider (#10856, @gabrielfu)
  • [Docker / Scoring] Optimize Docker images for model serving, ensuring more efficient deployment and scalability (#10954, @B-Step62)
  • [Scoring] Support completions (prompt) and embeddings (input) format inputs in the scoring server, increasing model interaction flexibility (#10958, @es94129)

Bug Fixes:

  • [Model Registry] Correct the oversight of not utilizing the default credential file in model registry setups (#11261, @B-Step62)
  • [Model Registry] Address the visibility issue of aliases in the model versions table within the registered model detail page (#11223, @smurching)
  • [Models] Ensure load_context() is called when enforcing ChatModel outputs so that all required external references are included in the model object instance (#11150, @daniellok-db)
  • [Models] Rectify the keras output dtype in signature mismatches, ensuring data consistency and accuracy (#11230, @chenmoneygithub)
  • [Models] Resolve spark model loading failures, enhancing model reliability and accessibility (#11227, @WeichenXu123)
  • [Models] Eliminate false warnings for missing signatures in Databricks, improving the user experience and model validation processes (#11181, @B-Step62)
  • [Models] Implement a timeout for signature/requirement inference during Transformer model logging, optimizing the logging process and avoiding delays (#11037, @B-Step62)
  • [Models] Address the missing dtype issue for transformer pipelines, ensuring data integrity and model accuracy (#10979, @B-Step62)
  • [Models] Correct non-idempotent predictions due to in-place updates to model-config, stabilizing model outputs (#11014, @B-Step62)
  • [Models] Fix an issue where specifying torch.dtype as a string was not being applied correctly to the underlying transformers model (#11297, #11295, @harupy)
  • [Tracking] Fix mlflow.evaluate col_mapping bug for non-LLM/custom metrics, ensuring accurate evaluation and metric calculation (#11156, @sunishsheth2009)
  • [Tracking] Resolve the TensorInfo TypeError exception message issue, ensuring clarity and accuracy in error reporting for users (#10953, @leecs0503)
  • [Tracking] Enhance RestException objects to be picklable, improving their usability in distributed computing scenarios where serialization is essential (#10936, @WeichenXu123)
  • [Tracking] Address the handling of unrecognized response error codes, ensuring robust error processing and improved user feedback in edge cases (#10918, @chenmoneygithub)
  • [Spark] Update hardcoded io.delta:delta-spark_2.12:3.0.0 dependency to the correct scala version, aligning dependencies with project requirements (#11149, @WeichenXu123)
  • [Server-infra] Adapt to newer versions of python by avoiding importlib.metadata.entry_points().get, enhancing compatibility and stability (#10752, @raphaelauv)
  • [Server-infra / Tracking] Introduce an environment variable to disable mlflow configuring logging on import, improving configurability and user control (#11137, @jmahlik)
  • [Auth] Enhance auth validation for mlflow.login(), streamlining the authentication process and improving security (#11039, @chenmoneygithub)

Documentation Updates:

  • [Docs] Introduce a comprehensive notebook demonstrating the use of ChatModel with Transformers and Pyfunc, providing users with practical insights and guidelines for leveraging these models (#11239, @daniellok-db)
  • [Tracking / Docs] Stabilize the dataset logging APIs, removing the experimental status (#11229, @dbczumar)
  • [Docs] Revise and update the documentation on authentication database configuration, offering clearer instructions and better support for setting up secure authentication mechanisms (#11176, @gabrielfu)
  • [Docs] Publish a new guide and tutorial for MLflow data logging and log_input, enriching the documentation with actionable advice and examples for effective data handling (#10956, @BenWilson2)
  • [Docs] Upgrade the documentation visuals by replacing low-resolution and poorly dithered GIFs with high-quality HTML5 videos, significantly enhancing the learning experience (#11051, @BenWilson2)
  • [Docs / Examples] Correct the compatibility matrix for OpenAI in MLflow Deployments Server documentation, providing users with accurate integration details and supporting smoother deployments (#11015, @BenWilson2)

Small bug fixes and documentation updates:

#11284, #11096, #11285, #11245, #11254, #11252, #11250, #11249, #11234, #11248, #11242, #11244, #11236, #11208, #11220, #11222, #11221, #11219, #11218, #11210, #11209, #11207, #11196, #11194, #11177, #11205, #11183, #11192, #11179, #11178, #11175, #11174, #11166, #11162, #11151, #11168, #11167, #11153, #11158, #11143, #11141, #11119, #11123, #11124, #11117, #11121, #11078, #11097, #11079, #11095, #11082, #11071, #11076, #11070, #11072, #11073, #11069, #11058, #11034, #11046, #10951, #11055, #11045, #11035, #11044, #11043, #11031, #11030, #11023, #10932, #10986, #10949, #10943, #10928, #10929, #10925, #10924, #10911, @harupy; #11289, @BenWilson2; #11290, #11145, #11125, #11098, #11053, #11006, #11001, #11011, #11007, #10985, #10944, #11231, @daniellok-db; #11276, #11280, #11275, #11263, #11247, #11257, #11258, #11256, #11224, #11211, #11182, #11059, #11056, #11048, #11008, #10923, @serena-ruan; #11129, #11086, @victorsun123; #11292, #11004, #11204, #11148, #11165, #11146, #11115, #11099, #11092, #11029, #10983, @B-Step62; #11189, #11191, #11022, #11160, #11110, #11088, #11042, #10879, #10832, #10831, #10888, #10908, @michael-berk; #10627, #11217, #11200, #10969, @liangz1; #11215, #11173, #11000, #10931, @edwardfeng-db; #11188, #10711, @TomeHirata; #11186, @xhochy; #10916, @annzhang-db; #11131, #11010, #11060, @WeichenXu123; #11063, #10981, #10889, ##11269, @chenmoneygithub; #11054, #10921, @smurching; #11018, @mingyangge-db; #10989, @minkj1992; #10796, @kriscon-db; #10984, @eltociear; #10982, @holzman; #10972, @bmuskalla; #10959, @prithvikannan; #10941, @mahesh-venkatachalam; #10915, @Cokral; #10904, @dannyfriar; #11134, @WP-LKL; #11287, @serkef;

2.10.2 (2024-02-09)

MLflow 2.10.2 includes several major features and improvements

Small bug fixes and documentation updates:

#11065, @WeichenXu123

2.10.1 (2024-02-06)

MLflow 2.10.1 is a patch release, containing fixes for various bugs in the transformers and langchain flavors, the MLflow UI, and the S3 artifact store. More details can be found in the patch notes below.

Bug fixes:

  • [UI] Fixed a bug that prevented datasets from showing up in the MLflow UI (#10992, @daniellok-db)
  • [Artifact Store] Fixed directory bucket region name retrieval (#10967, @kriscon-db)
  • Bug fixes for Transformers flavor
    • [Models] Fix an issue with transformer pipelines not inheriting the torch dtype specified on the model, causing pipeline inference to consume more resources than expected. (#10979, @B-Step62)
    • [Models] Fix non-idempotent prediction due to in-place update to model-config (#11014, @B-Step62)
    • [Models] Fixed a bug affecting prompt templating with Text2TextGeneration pipelines. Previously, calling predict() on a pyfunc-loaded Text2TextGeneration pipeline would fail for string and List[string] inputs. (#10960, @B-Step62)
  • Bug fixes for Langchain flavor
    • Fixed errors that occur when logging inputs and outputs with different lengths (#10952, @serena-ruan)

Documentation updates:

  • [Docs] Add indications of DL UI capabilities to the DL landing page (#10991, @BenWilson2)
  • [Docs] Fix incorrect logo on LLMs landing page (#11017, @BenWilson2)

Small bug fixes and documentation updates:

#10930, #11005, @serena-ruan; #10927, @harupy

2.10.0 (2024-01-26)

MLflow 2.10.0 includes several major features and improvements

In MLflow 2.10, we're introducing a number of significant new features that are preparing the way for current and future enhanced support for Deep Learning use cases, new features to support a broadened support for GenAI applications, and some quality of life improvements for the MLflow Deployments Server (formerly the AI Gateway).

Our biggest features this release are:

  • We have a new home. The new site landing page is fresh, modern, and contains more content than ever. We're adding new content and blogs all of the time.

  • Objects and Arrays are now available as configurable input and output schema elements. These new types are particularly useful for GenAI-focused flavors that can have complex input and output types. See the new Signature and Input Example documentation to learn more about how to use these new signature types.

  • LangChain has autologging support now! When you invoke a chain, with autologging enabled, we will automatically log most chain implementations, recording and storing your configured LLM application for you. See the new Langchain documentation to learn more about how to use this feature.

  • The MLflow transformers flavor now supports prompt templates. You can now specify an application-specific set of instructions to submit to your GenAI pipeline in order to simplify, streamline, and integrate sets of system prompts to be supplied with each input request. Check out the updated guide to transformers to learn more and see examples!

  • The MLflow Deployments Server now supports two new requested features: (1) OpenAI endpoints that support streaming responses. You can now configure an endpoint to return realtime responses for Chat and Completions instead of waiting for the entire text contents to be completed. (2) Rate limits can now be set per endpoint in order to help control cost overrun when using SaaS models.

  • Continued the push for enhanced documentation, guides, tutorials, and examples by expanding on core MLflow functionality (Deployments, Signatures, and Model Dependency management), as well as entirely new pages for GenAI flavors. Check them out today!

Features:

  • [Models] Introduce Objects and Arrays support for model signatures (#9936, @serena-ruan)
  • [Models] Support saving prompt templates for transformers (#10791, @daniellok-db)
  • [Models] Enhance the MLflow Models predict API to serve as a pre-logging validator of environment compatibility. (#10759, @B-Step62)
  • [Models] Add support for Image Classification pipelines within the transformers flavor (#10538, @KonakanchiSwathi)
  • [Models] Add support for retrieving and storing license files for transformers models (#10871, @BenWilson2)
  • [Models] Add support for model serialization in the Visual NLP format for JohnSnowLabs flavor (#10603, @C-K-Loan)
  • [Models] Automatically convert OpenAI input messages to LangChain chat messages for pyfunc predict (#10758, @dbczumar)
  • [Tracking] Add support for Langchain autologging (#10801, @serena-ruan)
  • [Tracking] Enhance async logging functionality by ensuring flush is called on Futures objects (#10715, @chenmoneygithub)
  • [Tracking] Add support for a non-interactive mode for the login() API (#10623, @henxing)
  • [Scoring] Allow MLflow model serving to support direct dict inputs with the messages key (#10742, @daniellok-db, @B-Step62)
  • [Deployments] Add streaming support to the MLflow Deployments Server for OpenAI streaming return compatible routes (#10765, @gabrielfu)
  • [Deployments] Add the ability to set rate limits on configured endpoints within the MLflow deployments server API (#10779, @TomeHirata)
  • [Deployments] Add support for directly interfacing with OpenAI via the MLflow Deployments server (#10473, @prithvikannan)
  • [UI] Introduce a number of new features for the MLflow UI (#10864, @daniellok-db)
  • [Server-infra] Add an environment variable that can disallow HTTP redirects (#10655, @daniellok-db)
  • [Artifacts] Add support for Multipart Upload for Azure Blob Storage (#10531, @gabrielfu)

Bug fixes:

  • [Models] Add deduplication logic for pip requirements and extras handling for MLflow models (#10778, @BenWilson2)
  • [Models] Add support for paddle 2.6.0 release (#10757, @WeichenXu123)
  • [Tracking] Fix an issue with an incorrect retry default timeout for urllib3 1.x (#10839, @BenWilson2)
  • [Recipes] Fix an issue with MLflow Recipes card display format (#10893, @WeichenXu123)
  • [Java] Fix an issue with metadata collection when using Streaming Sources on certain versions of Spark where Delta is the source (#10729, @daniellok-db)
  • [Scoring] Fix an issue where SageMaker tags were not propagating correctly (#9310, @clarkh-ncino)
  • [Windows / Databricks] Fix an issue with executing Databricks run commands from within a Window environment (#10811, @wolpl)
  • [Models / Databricks] Disable mlflowdbfs mounts for JohnSnowLabs flavor due to flakiness (#9872, @C-K-Loan)

Documentation updates:

  • [Docs] Fixed the KeyError: 'loss' bug for the Quickstart guideline (#10886, @yanmxa)
  • [Docs] Relocate and supplement Model Signature and Input Example docs (#10838, @BenWilson2)
  • [Docs] Add the HuggingFace Model Evaluation Notebook to the website (#10789, @BenWilson2)
  • [Docs] Rewrite the search run documentation (#10863, @chenmoneygithub)
  • [Docs] Create documentation for transformers prompt templates (#10836, @daniellok-db)
  • [Docs] Refactoring of the Getting Started page (#10798, @BenWilson2)
  • [Docs] Add a guide for model dependency management (#10807, @B-Step62)
  • [Docs] Add tutorials and guides for LangChain (#10770, @BenWilson2)
  • [Docs] Refactor portions of the Deep Learning documentation landing page (#10736, @chenmoneygithub)
  • [Docs] Refactor and overhaul the Deployment documentation and add new tutorials (#10726, @B-Step62)
  • [Docs] Add a PyTorch landing page, quick start, and guide (#10687, #10737 @chenmoneygithub)
  • [Docs] Add additional tutorials to OpenAI flavor docs (#10700, @BenWilson2)
  • [Docs] Enhance the guides on quickly getting started with MLflow by demonstrating how to use Databricks Community Edition (#10663, @BenWilson2)
  • [Docs] Create the OpenAI Flavor landing page and intro notebooks (#10622, @BenWilson2)
  • [Docs] Refactor the Tensorflow flavor API docs (#10662, @chenmoneygithub)

Small bug fixes and documentation updates:

#10538, #10901, #10903, #10876, #10833, #10859, #10867, #10843, #10857, #10834, #10814, #10805, #10764, #10771, #10733, #10724, #10703, #10710, #10696, #10691, #10692, @B-Step62; #10882, #10854, #10395, #10725, #10695, #10712, #10707, #10667, #10665, #10654, #10638, #10628, @harupy; #10881, #10875, #10835, #10845, #10844, #10651, #10806, #10786, #10785, #10781, #10741, #10772, #10727, @serena-ruan; #10873, #10755, #10750, #10749, #10619, @WeichenXu123; #10877, @amueller; #10852, @QuentinAmbard; #10822, #10858, @gabrielfu; #10862, @jerrylian-db; #10840, @ernestwong-db; #10841, #10795, #10792, #10774, #10776, #10672, @BenWilson2; #10827, #10826, #10825, #10732, #10481, @michael-berk; #10828, #10680, #10629, @daniellok-db; #10799, #10800, #10578, #10782, #10783, #10723, #10464, @annzhang-db; #10803, #10731, #10708, @kriscon-db; #10797, @dbczumar; #10756, #10751, @Ankit8848; #10784, @AveshCSingh; #10769, #10763, #10717, @chenmoneygithub; #10698, @rmalani-db; #10767, @liangz1; #10682, @cdreetz; #10659, @prithvikannan; #10639, #10609, @TomeHirata

2.9.2 (2023-12-14)

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, @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, @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, @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, @BenWilson2, #10640, @harupy)
  • [Artifacts] Prevent path traversal attacks when querying artifact URI locations by disallowing .. path traversal queries (#10653, @B-Step62)
  • [Data] Prevent a mechanism for conducting a malicious file traversal attack on Windows when using tracking APIs that interface with HTTPDatasetSource (#10647, @BenWilson2)
  • [Artifacts] Prevent a potential path traversal attack vector via encoded url traversal paths by decoding paths prior to evaluation (#10650, @B-Step62)
  • [Artifacts] Prevent the ability to conduct path traversal attacks by enforcing the use of sanitized paths with the tracking server (#10666, @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, @harupy)

Documentation updates:

  • [Docs] Add an end-to-end tutorial for RAG creation and evaluation (#10661, @AbeOmor)
  • [Docs] Add Tensorflow landing page (#10646, @chenmoneygithub)
  • [Deployments / Tracking] Add endpoints to LLM evaluation docs (#10660, @prithvikannan)
  • [Examples] Add retriever evaluation tutorial for LangChain and improve the Question Generation tutorial notebook (#10419, @liangz1)

Small bug fixes and documentation updates:

#10677, #10636, @serena-ruan; #10652, #10649, #10641, @harupy; #10643, #10632, @BenWilson2

2.9.1 (2023-12-07)

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, @BenWilson2)

Small bug fixes and documentation updates:

#10625, @BenWilson2

2.9.0 (2023-12-05)

MLflow 2.9.0 includes several major features and improvements.

MLflow AI Gateway deprecation (#10420, @harupy):

The feature previously known as MLflow AI Gateway has been moved to utilize the MLflow deployments API. For guidance on migrating from the AI Gateway to the new deployments API, please see the [MLflow AI Gateway Migration Guide](https://mlflow.org/docs/latest/llms/gateway/migration.html.

MLflow Tracking docs overhaul (#10471, @B-Step62):

The MLflow tracking docs have been overhauled. We'd like your feedback on the new tracking docs!

Security fixes:

Three security patches have been filed with this release and CVE's have been issued with the details involved in the security patch and potential attack vectors. Please review and update your tracking server deployments if your tracking server is not securely deployed and has open access to the internet.

  • Sanitize path in HttpArtifactRepository.list_artifacts (#10585, @harupy)
  • Sanitize filename in Content-Disposition header for HTTPDatasetSource (#10584, @harupy).
  • Validate Content-Type header to prevent POST XSS (#10526, @B-Step62)

Features:

  • [Tracking] Use backoff_jitter when making HTTP requests (#10486, @ajinkyavbhandare)
  • [Tracking] Add default aggregate_results if the score type is numeric in make_metric API (#10490, @sunishsheth2009)
  • [Tracking] Add string type of score types for metric value for genai (#10307, @sunishsheth2009)
  • [Artifacts] Support multipart upload for for proxy artifact access (#9521, @harupy)
  • [Models] Support saving torch_dtype for transformers models (#10586, @serena-ruan)
  • [Models] Add built-in metric ndcg_at_k to retriever evaluation (#10284, @liangz1)
  • [Model Registry] Implement universal copy_model_version (#10308, @jerrylian-db)
  • [Models] Support saving/loading RunnableSequence, RunnableParallel, and RunnableBranch (#10521, #10611, @serena-ruan)

Bug fixes:

  • [Tracking] Resume system metrics logging when resuming an existing run (#10312, @chenmoneygithub)
  • [UI] Fix incorrect sorting order in line chart (#10553, @B-Step62)
  • [UI] Remove extra whitespace in git URLs (#10506, @mrplants)
  • [Models] Make spark_udf use NFS to broadcast model to spark executor on databricks runtime and spark connect mode (#10463, @WeichenXu123)
  • [Models] Fix promptlab pyfunc models not working for chat routes (#10346, @daniellok-db)

Documentation updates:

  • [Docs] Add a quickstart guide for Tensorflow (#10398, @chenmoneygithub)
  • [Docs] Improve the parameter tuning guide (#10344, @chenmoneygithub)
  • [Docs] Add a guide for system metrics logging (#10429, @chenmoneygithub)
  • [Docs] Add instructions on how to configure credentials for Azure OpenAI (#10560, @BenWilson2)
  • [Docs] Add docs and tutorials for Sentence Transformers flavor (#10476, @BenWilson2)
  • [Docs] Add tutorials, examples, and guides for Transformers Flavor (#10360, @BenWilson2)

Small bug fixes and documentation updates:

#10567, #10559, #10348, #10342, #10264, #10265, @B-Step62; #10595, #10401, #10418, #10394, @chenmoneygithub; #10557, @dan-licht; #10584, #10462, #10445, #10434, #10432, #10412, #10411, #10408, #10407, #10403, #10361, #10340, #10339, #10310, #10276, #10268, #10260, #10224, #10214, @harupy; #10415, @jessechancy; #10579, #10555, @annzhang-db; #10540, @wllgrnt; #10556, @smurching; #10546, @mbenoit29; #10534, @gabrielfu; #10532, #10485, #10444, #10433, #10375, #10343, #10192, @serena-ruan; #10480, #10416, #10173, @jerrylian-db; #10527, #10448, #10443, #10442, #10441, #10440, #10439, #10381, @prithvikannan; #10509, @keenranger; #10508, #10494, @WeichenXu123; #10489, #10266, #10210, #10103, @TomeHirata; #10495, #10435, #10185, @daniellok-db; #10319, @michael-berk; #10417, @bbqiu; #10379, #10372, #10282, @BenWilson2; #10297, @KonakanchiSwathi; #10226, #10223, #10221, @milinddethe15; #10222, @flooxo; #10590, @letian-w;

2.8.1 (2023-11-14)

MLflow 2.8.1 is a patch release, containing some critical bug fixes and an update to our continued work on reworking our docs.

Notable details:

  • The API mlflow.llm.log_predictions is being marked as deprecated, as its functionality has been incorporated into mlflow.log_table. This API will be removed in the 2.9.0 release. (#10414, @dbczumar)

Bug fixes:

  • [Artifacts] Fix a regression in 2.8.0 where downloading a single file from a registered model would fail (#10362, @BenWilson2)
  • [Evaluate] Fix the Azure OpenAI integration for mlflow.evaluate when using LLM judge metrics (#10291, @prithvikannan)
  • [Evaluate] Change Examples to optional for the make_genai_metric API (#10353, @prithvikannan)
  • [Evaluate] Remove the fastapi dependency when using mlflow.evaluate for LLM results (#10354, @prithvikannan)
  • [Evaluate] Fix syntax issues and improve the formatting for generated prompt templates (#10402, @annzhang-db)
  • [Gateway] Fix the Gateway configuration validator pre-check for OpenAI to perform instance type validation (#10379, @BenWilson2)
  • [Tracking] Fix an intermittent issue with hanging threads when using asynchronous logging (#10374, @chenmoneygithub)
  • [Tracking] Add a timeout for the mlflow.login() API to catch invalid hostname configuration input errors (#10239, @chenmoneygithub)
  • [Tracking] Add a flush operation at the conclusion of logging system metrics (#10320, @chenmoneygithub)
  • [Models] Correct the prompt template generation logic within the Prompt Engineering UI so that the prompts can be used in the Python API (#10341, @daniellok-db)
  • [Models] Fix an issue in the SHAP model explainability functionality within mlflow.shap.log_explanation so that duplicate or conflicting dependencies are not registered when logging (#10305, @BenWilson2)

Documentation updates:

  • [Docs] Add MLflow Tracking Quickstart (#10285, @BenWilson2)
  • [Docs] Add tracking server configuration guide (#10241, @chenmoneygithub)
  • [Docs] Refactor and improve the model deployment quickstart guide (#10322, @prithvikannan)
  • [Docs] Add documentation for system metrics logging (#10261, @chenmoneygithub)

Small bug fixes and documentation updates:

#10367, #10359, #10358, #10340, #10310, #10276, #10277, #10247, #10260, #10220, #10263, #10259, #10219, @harupy; #10313, #10303, #10213, #10272, #10282, #10283, #10231, #10256, #10242, #10237, #10238, #10233, #10229, #10211, #10231, #10256, #10242, #10238, #10237, #10229, #10233, #10211, @BenWilson2; #10375, @serena-ruan; #10330, @Haxatron; #10342, #10249, #10249, @B-Step62; #10355, #10301, #10286, #10257, #10236, #10270, #10236, @prithvikannan; #10321, #10258, @jerrylian-db; #10245, @jessechancy; #10278, @daniellok-db; #10244, @gabrielfu; #10226, @milinddethe15; #10390, @bbqiu; #10232, @sunishsheth2009

2.8.0 (2023-10-28)

MLflow 2.8.0 includes several notable new features and improvements

  • The MLflow Evaluate API has had extensive feature development in this release to support LLM workflows and multiple new evaluation modalities. See the new documentation, guides, and tutorials for MLflow LLM Evaluate to learn more.
  • The MLflow Docs modernization effort has started. You will see a very different look and feel to the docs when visiting them, along with a batch of new tutorials and guides. More changes will be coming soon to the docs!
  • 4 new LLM providers have been added! Google PaLM 2, AWS Bedrock, AI21 Labs, and HuggingFace TGI can now be configured and used within the AI Gateway. Learn more in the new AI Gateway docs!

Features:

  • [Gateway] Add support for AWS Bedrock as a provider in the AI Gateway (#9598, @andrew-christianson)
  • [Gateway] Add support for Huggingface Text Generation Inference as a provider in the AI Gateway (#10072, @SDonkelaarGDD)
  • [Gateway] Add support for Google PaLM 2 as a provider in the AI Gateway (#9797, @arpitjasa-db)
  • [Gateway] Add support for AI21labs as a provider in the AI Gateway (#9828, #10168, @zhe-db)
  • [Gateway] Introduce a simplified method for setting the configuration file location for the AI Gateway via environment variable (#9822, @danilopeixoto)
  • [Evaluate] Introduce default provided LLM evaluation metrics for MLflow evaluate (#9913, @prithvikannan)
  • [Evaluate] Add support for evaluating inference datasets in MLflow evaluate (#9830, @liangz1)
  • [Evaluate] Add support for evaluating single argument functions in MLflow evaluate (#9718, @liangz1)
  • [Evaluate] Add support for Retriever LLM model type evaluation within MLflow evaluate (#10079, @liangz1)
  • [Models] Add configurable parameter for external model saving in the ONNX flavor to address a regression (#10152, @daniellok-db)
  • [Models] Add support for saving inference parameters in a logged model's input example (#9655, @serena-ruan)
  • [Models] Add support for completions in the OpenAI flavor (#9838, @santiagxf)
  • [Models] Add support for inference parameters for the OpenAI flavor (#9909, @santiagxf)
  • [Models] Introduce support for configuration arguments to be specified when loading a model (#9251, @santiagxf)
  • [Models] Add support for integrated Azure AD authentication for the OpenAI flavor (#9704, @santiagxf)
  • [Models / Scoring] Introduce support for model training lineage in model serving (#9402, @M4nouel)
  • [Model Registry] Introduce the copy_model_version client API for copying model versions across registered models (#9946, #10078, #10140, @jerrylian-db)
  • [Tracking] Expand the limits of parameter value length from 500 to 6000 (#9709, @serena-ruan)
  • [Tracking] Introduce support for Spark 3.5's SparkConnect mode within MLflow to allow logging models created using this operation mode of Spark (#9534, @WeichenXu123)
  • [Tracking] Add support for logging system metrics to the MLflow fluent API (#9557, #9712, #9714, @chenmoneygithub)
  • [Tracking] Add callbacks within MLflow for Keras and Tensorflow (#9454, #9637, #9579, @chenmoneygithub)
  • [Tracking] Introduce a fluent login API for Databricks within MLflow (#9665, #10180, @chenmoneygithub)
  • [Tracking] Add support for customizing auth for http requests from the MLflow client via a plugin extension (#10049, @lu-ohai)
  • [Tracking] Introduce experimental asynchronous logging support for metrics, params, and tags (#9705, @sagarsumant)
  • [Auth] Modify the behavior of user creation in MLflow Authentication so that only admins can create new users (#9700, @gabrielfu)
  • [Artifacts] Add support for using xethub as an artifact store via a plugin extension (#9957, @Kelton8Z)
  • [UI] Add new opt-in Model Registry UI that supports model aliases and tags (#10163, @hubertzub-db, @jerrylian-db)

Bug fixes:

  • [Evaluate] Fix a bug with Azure OpenAI configuration usage within MLflow evaluate (#9982, @sunishsheth2009)
  • [Models] Fix a data consistency issue when saving models that have been loaded in heterogeneous memory configuration within the transformers flavor (#10087, @BenWilson2)
  • [Models] Fix an issue in the transformers flavor for complex input types by adding dynamic dataframe typing (#9044, @wamartin-aml)
  • [Models] Fix an issue in the langchain flavor to provide support for chains with multiple outputs (#9497, @bbqiu)
  • [Docker] Fix an issue with Docker image generation by changing the default env-manager to virtualenv (#9938, @Beramos)
  • [Auth] Fix an issue with complex passwords in MLflow Auth to support a richer character set range (#9760, @dotdothu)
  • [R] Fix a bug with configuration access when running MLflow R in Databricks (#10117, @zacdav-db)

Documentation updates:

  • [Docs] Introduce the first phase of a larger documentation overhaul (#10197, @BenWilson2)
  • [Docs] Add guide for LLM eval (#10058, #10199, @chenmoneygithub)
  • [Docs] Add instructions on how to force single file serialization within the onnx flavor's save and log functions (#10178, @BenWilson2)
  • [Docs] Add documentation for the relevance metric for MLflow evaluate (#10170, @sunishsheth2009)
  • [Docs] Add a style guide for the contributing guide for how to structure pydoc strings (#9907, @mberk06)
  • [Docs] Fix issues with the pytorch lightning autolog code example (#9964, @chenmoneygithub)
  • [Docs] Update the example for mlflow.data.from_numpy() (#9885, @chenmoneygithub)
  • [Docs] Add clear instructions for installing MLflow within R (#9835, @darshan8850)
  • [Docs] Update model registry documentation to add content regarding support for model aliases (#9721, @jerrylian-db)

Small bug fixes and documentation updates:

#10202, #10189, #10188, #10159, #10175, #10165, #10154, #10083, #10082, #10081, #10071, #10077, #10070, #10053, #10057, #10055, #10020, #9928, #9929, #9944, #9979, #9923, #9842, @annzhang-db; #10203, #10196, #10172, #10176, #10145, #10115, #10107, #10054, #10056, #10018, #9976, #9999, #9998, #9995, #9978, #9973, #9975, #9972, #9974, #9960, #9925, #9920, @prithvikannan; #10144, #10166, #10143, #10129, #10059, #10123, #9555, #9619, @bbqiu; #10187, #10191, #10181, #10179, #10151, #10148, #10126, #10119, #10099, #10100, #10097, #10089, #10096, #10091, #10085, #10068, #10065, #10064, #10060, #10023, #10030, #10028, #10022, #10007, #10006, #9988, #9961, #9963, #9954, #9953, #9937, #9932, #9931, #9910, #9901, #9852, #9851, #9848, #9847, #9841, #9844, #9825, #9820, #9806, #9802, #9800, #9799, #9790, #9787, #9791, #9788, #9785, #9786, #9784, #9754, #9768, #9770, #9753, #9697, #9749, #9747, #9748, #9751, #9750, #9729, #9745, #9735, #9728, #9725, #9716, #9694, #9681, #9666, #9643, #9641, #9621, #9607, @harupy; #10200, #10201, #10142, #10139, #10133, #10090, #10086, #9934, #9933, #9845, #9831, #9794, #9692, #9627, #9626, @chenmoneygithub; #10110, @wenfeiy-db; #10195, #9895, #9880, #9679, @BenWilson2; #10174, #10177, #10109, #9706, @jerrylian-db; #10113, #9765, @smurching; #10150, #10138, #10136, @dbczumar; #10153, #10032, #9986, #9874, #9727, #9707, @serena-ruan; #10155, @shaotong-db; #10160, #10131, #10048, #10024, #10017, #10016, #10002, #9966, #9924, @sunishsheth2009; #10121, #10116, #10114, #10102, #10098, @B-Step62; #10095, #10026, #9991, @daniellok-db; #10050, @Dennis40816; #10062, #9868, @Gekko0114; #10033, @Anushka-Bhowmick; #9983, #10004, #9958, #9926, #9690, @liangz1; #9997, #9940, #9922, #9919, #9890, #9888, #9889, #9810, @TomeHirata; #9994, #9970, #9950, @lightnessofbein; #9965, #9677, @ShorthillsAI; #9906, @jessechancy; #9942, #9771, @Sai-Suraj-27; #9902, @remyleone; #9892, #9865, #9866, #9853, @montanarograziano; #9875, @Raghavan-B; #9858, @Salz0; #9878, @maksboyarin; #9882, @lukasz-gawron; #9827, @Bncer; #9819, @gabrielfu; #9792, @harshk461; #9726, @Chiragasourabh; #9663, @Abhishek-TyRnT; #9670, @mberk06; #9755, @simonlsk; #9757, #9775, #9776, #9774, @AmirAflak; #9782, @garymm; #9756, @issamarabi; #9645, @shichengzhou-db; #9671, @zhe-db; #9660, @mingyu89; #9575, @akshaya-a; #9629, @pnacht; #9876, @C-K-Loan

2.7.1 (2023-09-17)

MLflow 2.7.1 is a patch release containing the following features, bug fixes and changes:

Features:

  • [Gateway / Databricks] Add the set_limits and get_limits APIs for AI Gateway routes within Databricks (#9516, @zhe-db)
  • [Artifacts / Databricks] Add support for parallelized download and upload of artifacts within Unity Catalog (#9498, @jerrylian-db)

Bug fixes:

  • [Models / R] Fix a critical bug with the R client that prevents models from being loaded (#9624, @BenWilson2)
  • [Artifacts / Databricks] Disable multi-part download functionality for UC Volumes local file destination when downloading models (#9631, @BenWilson2)

Small bug fixes and documentation updates:

#9640, @annzhang-db; #9622, @harupy

2.7.0 (2023-09-12)

MLflow 2.7.0 includes several major features and improvements

  • [UI / Gateway] We are excited to announce the Prompt Engineering UI. This new addition offers a suite of tools tailored for efficient prompt development, testing, and evaluation for LLM use cases. Integrated directly into the MLflow AI Gateway, it provides a seamless experience for designing, tracking, and deploying prompt templates. To read about this new feature, see the documentation at https://mlflow.org/docs/latest/llms/prompt-engineering.html (#9503, @prithvikannan)

Features:

  • [Gateway] Introduce MosaicML as a supported provider for the MLflow AI Gateway (#9459, @arpitjasa-db)
  • [Models] Add support for using a snapshot download location when loading a transformers model as pyfunc (#9362, @serena-ruan)
  • [Server-infra] Introduce plugin support for MLflow Tracking Server authentication (#9191, @barrywhart)
  • [Artifacts / Model Registry] Add support for storing artifacts using the R2 backend (#9490, @shichengzhou-db)
  • [Artifacts] Improve upload and download performance for Azure-based artifact stores (#9444, @jerrylian-db)
  • [Sagemaker] Add support for deploying models to Sagemaker Serverless inference endpoints (#9085, @dogeplusplus)

Bug fixes:

  • [Gateway] Fix a credential expiration bug by re-resolving AI Gateway credentials before each request (#9518, @dbczumar)
  • [Gateway] Fix a bug where search_routes would raise an exception when no routes have been defined on the AI Gateway server (#9387, @QuentinAmbard)
  • [Gateway] Fix compatibility issues with pydantic 2.x for AI gateway (#9339, @harupy)
  • [Gateway] Fix an initialization issue in the AI Gateway that could render MLflow nonfunctional at import if dependencies were conflicting. (#9337, @BenWilson2)
  • [Artifacts] Fix a correctness issue when downloading large artifacts to fuse mount paths on Databricks (#9545, @BenWilson2)

Documentation updates:

  • [Docs] Add documentation for the Giskard community plugin for mlflow.evaluate (#9183, @rabah-khalek)

Small bug fixes and documentation updates:

#9605, #9603, #9602, #9595, #9597, #9587, #9590, #9588, #9586, #9584, #9583, #9582, #9581, #9580, #9577, #9546, #9566, #9569, #9562, #9564, #9561, #9528, #9506, #9503, #9492, #9491, #9485, #9445, #9430, #9429, #9427, #9426, #9424, #9421, #9419, #9409, #9408, #9407, #9394, #9389, #9395, #9393, #9390, #9370, #9356, #9359, #9357, #9345, #9340, #9328, #9329, #9326, #9304, #9325, #9323, #9322, #9319, #9314, @harupy; #9568, #9520, @dbczumar; #9593, @jerrylian-db; #9574, #9573, #9480, #9332, #9335, @BenWilson2; #9556, @shichengzhou-db; #9570, #9540, #9533, #9517, #9354, #9453, #9338, @prithvikannan; #9565, #9560, #9536, #9504, #9476, #9481, #9450, #9466, #9418, #9397, @serena-ruan; #9489, @dnerini; #9512, #9479, #9355, #9351, #9289 @chenmoneygithub; #9488, @bbqiu; #9474, @apurva-koti; #9505, @arpitjasa-db; #9261, @donour; #9336, #9414, #9353, @mberk06; #9451, @Bncer; #9432, @barrywhart; #9347, @GraceBrigham; #9428, #9420, #9406, @WeichenXu123; #9410, @aloahPGF; #9396, #9384, #9372, @Godwin-T; #9373, @fabiansefranek; #9382, @Sai-Suraj-27; #9378, @saidattu2003; #9375, @Increshi; #9358, @smurching; #9366, #9330, @Dev-98; #9364, @Sandeep1005; #9349, #9348, @AmirAflak; #9308, @danilopeixoto; #9596, @ShorthillsAI; #9567, @Beramos; #9524, @rabah-khalek; #9312, @dependabot[bot]

2.6.0 (2023-08-15)

MLflow 2.6.0 includes several major features and improvements

Features:

  • [Models / Scoring] Add support for passing extra params during inference for PyFunc models (#9068, @serena-ruan)
  • [Gateway] Add support for MLflow serving to MLflow AI Gateway (#9199, @BenWilson2)
  • [Tracking] Support save_kwargs for mlflow.log_figure to specify extra options when saving a figure (#9179, @stroblme)
  • [Artifacts] Display progress bars when uploading/download artifacts (#9195, @serena-ruan)
  • [Models] Add support for logging LangChain's retriever models (#8808, @liangz1)
  • [Tracking] Add support to log customized tags to runs created by autologging (#9114, @thinkall)

Bug fixes:

  • [Models] Fix text_pair functionality for transformers TextClassification pipelines (#9215, @BenWilson2)
  • [Models] Fix LangChain compatibility with SQLDatabase (#9192, @dbczumar)
  • [Tracking] Remove patching sklearn.metrics.get_scorer_names in mlflow.sklearn.autolog to avoid duplicate logging (#9095, @WeichenXu123)

Documentation updates:

  • [Docs / Examples] Add examples and documentation for MLflow AI Gateway support for MLflow model serving (#9281, @BenWilson2)
  • [Docs / Examples] Add sentence-transformers doc & example (#9047, @es94129)

Deprecation:

  • [Models] The mlflow.mleap module has been marked as deprecated and will be removed in a future release (#9311, @BenWilson2)

Small bug fixes and documentation updates:

#9309, #9252, #9198, #9189, #9186, #9184, @BenWilson2; #9307, @AmirAflak; #9285, #9126, @dependabot[bot]; #9302, #9209, #9194, #9187, #9175, #9177, #9163, #9161, #9129, #9123, #9053, @serena-ruan; #9305, #9303, #9271, @KekmaTime; #9300, #9299, @itsajay1029; #9294, #9293, #9274, #9268, #9264, #9246, #9255, #9253, #9254, #9245, #9202, #9243, #9238, #9234, #9233, #9227, #9226, #9223, #9224, #9222, #9225, #9220, #9208, #9212, #9207, #9203, #9201, #9200, #9154, #9146, #9147, #9153, #9148, #9145, #9136, #9132, #9131, #9128, #9121, #9124, #9125, #9108, #9103, #9100, #9098, #9101, @harupy; #9292, @Aman123lug; #9290, #9164, #9157, #9086, @Bncer; #9291, @kunal642; #9284, @NavneetSinghArora; #9286, #9262, #9142, @smurching; #9267, @tungbq; #9258, #9250, @Kunj125; #9167, #9139, #9120, #9118, #9097, @viktoriussuwandi; #9244, #9240, #9239, @Sai-Suraj-27; #9221, #9168, #9130, @gabrielfu; #9218, @tjni; #9216, @Rukiyav; #9158, #9051, @EdAbati; #9211, @scarlettrobe; #9049, @annzhang-db; #9140, @kriscon-db; #9141, @xAIdrian; #9135, @liangz1; #9067, @jmmonteiro; #9112, @WeichenXu123; #9106, @shaikmoeed; #9105, @Ankit8848; #9104, @arnabrahman

2.5.0 (2023-07-17)

MLflow 2.5.0 includes several major features and improvements:

  • [MLflow AI Gateway] We are excited to announce the release of MLflow AI Gateway, a powerful tool designed to streamline the usage and management of various large language model (LLM) providers, such as OpenAI and Anthropic, within an organization. It offers a standardized interface that simplifies the interaction with these services and delivers centralized, secure management of credentials. To get started with MLflow AI Gateway, check out the docs at https://mlflow.org/docs/latest/gateway/index.html. (#8694, @harupy, @BenWilson2, @dbczumar)
  • [Auth]: We are excited to announce the release of authentication and authorization support for MLflow Tracking and the MLflow Model Registry, providing integrated access control capabilities to both services. To get started, check out the docs at https://mlflow.org/docs/latest/auth/index.html. (#9000, #8975, #8626, #8837, #8841, @gabrielfu, @harupy)

Features:

  • [Models] Add Support to the LangChain flavor for chains that contain unserializable components (#8736, @liangz1)
  • [Scoring] Infer spark udf return type from model output schema (#8934, @WeichenXu123)
  • [Models] Add support for automated signature inference (#8860, #8782 #8795, #8725, @jerrylian-db)

Bug fixes:

  • [Security] Improve robustness to LFI attacks on Windows by enhancing path validation (#8999, @serena-ruan)
    • If you are using mlflow server or mlflow ui on Windows, we recommend upgrading to MLflow 2.5.0 as soon as possible.
  • [Scoring] Support nullable array type values as spark_udf return values (#9014, @WeichenXu123)
  • [Models] Revert cache deletion of system modules when adding custom model code to the system path (#8722, @trungn1)
  • [Models] add micro version to mlflow version pinning (#8687, @C-K-Loan)
  • [Artifacts] Prevent manually deleted artifacts from causing artifact garbage collection to fail (#8498, @PenHsuanWang)

Documentation updates:

  • [Docs] Update .push_model_to_sagemaker docs (#8851, @pdifranc)
  • [Docs] Fix invalid link for Azure ML documentation (#8800, @dunnkers)
  • [Artifacts / Docs / Models / Projects] Adds information on the OCI MLflow plugins for seamless integration with Oralce Cloud Infrastructure services. (#8707, @mrDzurb)

Deprecation:

  • [Models] Deprecate the gluon model flavor. The mlflow.gluon module will be removed in a future release. (#8968, @harupy)

Small bug fixes and documentation updates:

#9069, #9056, #9055, #9054, #9048, #9043, #9035, #9034, #9037, #9038, #8993, #8966, #8985, @BenWilson2; #9039, #9036, #8902, #8924, #8866, #8861, #8810, #8761, #8544, @jerrylian-db; #8903, @smurching; #9080, #9079, #9078, #9076, #9075, #9074, #9071, #9063, #9062, #9032, #9031, #9027, #9023, #9022, #9020, #9005, #8994, #8979, #8983, #8984, #8982, #8970, #8962, #8969, #8968, #8959, #8960, #8958, #8956, #8955, #8954, #8949, #8950, #8952, #8948, #8946, #8947, #8943, #8944, #8916, #8917, #8933, #8929, #8932, #8927, #8930, #8925, #8921, #8873, #8915, #8909, #8908, #8911, #8910, #8907, #8906, #8898, #8893, #8889, #8892, #8891, #8887, #8875, #8876, #8882, #8874, #8868, #8872, #8869, #8828, #8852, #8857, #8853, #8854, #8848, #8850, #8840, #8835, #8832, #8831, #8830, #8829, #8839, #8833, #8838, #8819, #8814, #8825, #8818, #8787, #8775, #8749, #8766, #8756, #8753, #8751, #8748, #8744, #8731, #8717, #8730, #8691, #8720, #8723, #8719, #8688, #8721, #8715, #8716, #8718, #8696, #8698, #8692, #8693, #8690, @harupy; #9030, @AlimurtuzaCodes; #9029, #9025, #9021, #9013, @viktoriussuwandi; #9010, @Bncer; #9011, @Pecunia201; #9007, #9003, @EdAbati; #9002, @prithvikannan; #8991, #8867, @AveshCSingh; #8951, #8896, #8888, #8849, @gabrielfu; #8913, #8885, #8871, #8870, #8788, #8772, #8771, @serena-ruan; #8879, @maciejskorski; #7752, @arunkumarkota; #9083, #9081, #8765, #8742, #8685, #8682, #8683, @dbczumar; #8791, @mhattingpete; #8739, @yunpark93

2.4.2 (2023-07-10)

MLflow 2.4.2 is a patch release containing the following bug fixes and changes:

Bug fixes:

  • [Models] Add compatibility for legacy transformers serialization (#8964, @BenWilson2)
  • [Models] Fix downloading MLmodel files from alias-based models:/ URIs (#8764, @smurching)
  • [Models] Fix reading model flavor config from URI for models in UC (#8728, @smurching)
  • [Models] Support feature_deps in ModelVersion creation for UC (#8867, #8815, @AveshCSingh)
  • [Models] Add support for listing artifacts in UC model registry artifact repo (#8803, @smurching)
  • [Core] Include resources for recipes in mlflow-skinny (#8895, @harupy)
  • [UI] Enable datasets tracking UI (#8886, @harupy)
  • [Artifacts] Use MLFLOW_ENABLE_MULTIPART_DOWNLOAD in DatabricksArtifactRepository (#8884, @harupy)

Documentation updates:

  • [Examples / Docs] Add question-answering and summarization examples and docs with LLMs (#8695, @dbczumar)
  • [Examples / Docs] Add johnsnowlabs flavor example and doc (#8689, @C-K-Loan)

Small bug fixes and documentation updates:

#8966, @BenWilson2; #8881, @harupy; #8846, #8760, @smurching

2.4.1 (2023-06-09)

MLflow 2.4.1 is a patch release containing the following features, bug fixes and changes:

Features:

  • [Tracking] Extend SearchRuns to support datasets (#8622, @prithvikannan)
  • [Models] Add an mlflow.johnsnowlabs flavor for the johnsnowlabs package (#8556, @C-K-Loan)
  • [Models] Add a warning for duplicate pip requirements specified in save_model and log_model for the transformers flavor (#8678, @BenWilson2)

Bug fixes:

  • [Security] Improve robustness to LFI attacks (#8648, @serena-ruan)
    • If you are using mlflow server or mlflow ui, we recommend upgrading to MLflow 2.4.1 as soon as possible.
  • [Models] Fix an issue with transformers serialization for ModelCards that contain invalid characters (#8652, @BenWilson2)
  • [Models] Fix connection pooling deadlocks that occurred during large file downloads (#8682, @dbczumar; #8660, @harupy)

Small bug fixes and documentation updates:

#8677, #8674, #8646, #8647, @dbczumar; #8654, #8653, #8660, #8650, #8642, #8636, #8599, #8637, #8608, #8633, #8623, #8628, #8619, @harupy; #8655, #8609, @BenWilson2; #8648, @serena-ruan; #8521, @ka1mar; #8638, @smurching; #8634, @PenHsuanWang

2.4.0 (2023-06-06)

MLflow 2.4.0 includes several major features and improvements

Features:

  • [Tracking] Introduce dataset tracking APIs: mlflow.data and mlflow.log_input() (#8186, @prithvikannan)
  • [Tracking] Add mlflow.log_table() and mlflow.load_table() APIs for logging evaluation tables (#8523, #8467, @sunishsheth2009)
  • [Tracking] Introduce mlflow.get_parent_run() fluent API (#8493, @annzhang-db)
  • [Tracking / Model Registry] Re-introduce faster artifact downloads on Databricks (#8352, @dbczumar; #8561, @harupy)
  • [UI] Add dataset tracking information to MLflow Tracking UI (#8602, @prithvikannan, @hubertzub-db)
  • [UI] Introduce Artifact View for comparing inputs, outputs, and metadata across models (#8602, @hubertzub-db)
  • [Models] Extend mlflow.evaluate() to support LLM tasks (#8484, @harupy)
  • [Models] Support logging subclasses of Chain and LLMChain in mlflow.langchain flavor (#8453, @liangz1)
  • [Models] Add support for LangChain Agents to the mlflow.langchain flavor (#8297, @sunishsheth2009)
  • [Models] Add a mlflow.sentence_transformers flavor for SentenceTransformers (#8479, @BenWilson2; #8547, @Loquats)
  • [Models] Add support for multi-GPU inference and efficient weight loading for mlflow.transformers flavor (#8448, @ankit-db)
  • [Models] Support the max_shard_size parameter in the mlflow.transformers flavor (#8567, @wenfeiy-db)
  • [Models] Add support for audio transcription pipelines in the mlflow.transformers flavor (#8464, @BenWilson2)
  • [Models] Add support for audio classification to mlflow.transformers flavor (#8492, @BenWilson2)
  • [Models] Add support for URI inputs in audio models logged with the mlflow.transformers flavor (#8495, @BenWilson2)
  • [Models] Add support for returning classifier scores in mlflow.transformers pyfunc outputs (#8512, @BenWilson2)
  • [Models] Support optional inputs in model signatures (#8438, @apurva-koti)
  • [Models] Introduce an mlflow.models.set_signature() API to set the signature of a logged model (#8476, @jerrylian-db)
  • [Models] Persist ONNX Runtime InferenceSession options when logging a model with mlflow.onnx.log_model() (#8433, @leqiao-1)

Bug fixes:

  • [Tracking] Terminate Spark callback server when Spark Autologging is disabled or Spark Session is shut down (#8508, @WeichenXu123)
  • [Tracking] Fix compatibility of mlflow server with Flask<2.0 (#8463, @kevingreer)
  • [Models] Convert mlflow.transformers pyfunc scalar string output to list of strings during batch inference (#8546, @BenWilson2)
  • [Models] Fix a bug causing outdated pyenv versions to be installed by mlflow models build-docker (#8488, @Hellzed)
  • [Model Registry] Remove aliases from storage when a Model Version is deleted (#8459, @arpitjasa-db)

Documentation updates:

  • [Docs] Publish a new MLOps Quickstart for model selection and deployment (#8462, @lobrien)
  • [Docs] Add MLflavors library to Community Model Flavors documentation (#8420, @benjaminbluhm)
  • [Docs] Add documentation for Registered Model Aliases (#8445, @arpitjasa-db)
  • [Docs] Fix errors in documented mlflow models CLI command examples (#8480, @vijethmoudgalya)

Small bug fixes and documentation updates:

#8611, #8587, @dbczumar; #8617, #8620, #8615, #8603, #8604, #8601, #8596, #8598, #8597, #8589, #8580, #8581, #8575, #8582, #8577, #8576, #8578, #8561, #8568, #8551, #8528, #8550, #8489, #8530, #8534, #8533, #8532, #8524, #8520, #8517, #8516, #8515, #8514, #8506, #8503, #8500, #8504, #8496, #8486, #8485, #8468, #8471, #8473, #8470, #8458, #8447, #8446, #8434, @harupy; #8607, #8538, #8513, #8452, #8466, #8465, @serena-ruan; #8586, #8595, @prithvikannan; #8593, #8541, @kriscon-db; #8592, #8566, @annzhang-db; #8588, #8565, #8559, #8537, @BenWilson2; #8545, @apurva-koti; #8564, @DavidSpek; #8436, #8490, @jerrylian-db; #8505, @eliaskoromilas; #8483, @WeichenXu123; #8472, @leqiao-1; #8429, @jinzhang21; #8581, #8548, #8499, @gabrielfu;

2.3.2 (2023-05-12)

MLflow 2.3.2 is a patch release containing the following features, bug fixes and changes:

Features:

  • [Models] Add GPU support for transformers models pyfunc inference and serving (#8375, @ankit-db)
  • [Models] Disable autologging functionality for non-relevant models when training a transformers model (#8405, @BenWilson2)
  • [Models] Add support for preserving and overriding torch_dtype values in transformers pipelines (#8421, @BenWilson2)
  • [Models] Add support for Feature Extraction pipelines in the transformers flavor (#8423, @BenWilson2)
  • [Tracking] Add basic HTTP auth support for users, registered models, and experiments permissions (#8286, @gabrielfu)

Bug Fixes:

  • [Models] Fix inferred schema issue with Text2TextGeneration pipelines in the transformers flavor (#8391, @BenWilson2)
  • [Models] Change MLflow dependency pinning in logged models from a range value to an exact major and minor version (#8422, @harupy)

Documentation updates:

  • [Examples] Add signature logging to all examples and documentation (#8410, #8401, #8400, #8387 @jerrylian-db)
  • [Examples] Add sentence-transformers examples to the transformers examples suite (#8425, @BenWilson2)
  • [Docs] Add a new MLflow Quickstart documentation page (#8171, @lobrien)
  • [Docs] Add a new introduction to MLflow page (#8365, @lobrien)
  • [Docs] Add a community model plugin example and documentation for trubrics (#8371, @jeffkayne)
  • [Docs] Add gluon pyfunc example to Model flavor documentation (#8403, @ericvincent18)
  • [Docs] Add statsmodels pyfunc example to Models flavor documentation (#8394, @ericvincent18)

Small bug fixes and documentation updates:

#8415, #8412, #8411, #8355, #8354, #8353, #8348, @harupy; #8374, #8367, #8350, @dbczumar; #8358 @mrkaye97; #8392, #8362, @smurching; #8427, #8408, #8399, #8381, @BenWilson2; #8395, #8390, @jerrylian-db; #8402, #8398, @WeichenXu123; #8377, #8363, @arpitjasa-db; #8385, @prithvikannan; #8418, @Jeukoh;

2.3.1 (2023-04-27)

MLflow 2.3.1 is a patch release containing the following bug fixes and changes:

Bug fixes:

  • [Security] Fix critical LFI attack vulnerability by disabling the ability to provide relative paths in registered model sources (#8281, @BenWilson2)
  • [Tracking] Fix an issue causing file and model uploads to hang on Databricks (#8348, @harupy)
  • [Tracking / Model Registry] Fix an issue causing file and model downloads to hang on Databricks (#8350, @dbczumar)
  • [Scoring] Fix regression in schema enforcement for model serving when using the inputs format for inference (#8326, @BenWilson2)
  • [Model Registry] Fix regression in model naming parsing where special characters were not accepted in model names (#8322, @arpitjasa-db)
  • [Recipes] Fix card rendering with the pandas profiler to handle columns containing all null values (#8263, @sunishsheth2009)

Documentation updates:

  • [Docs] Add an H2O pyfunc usage example to the models documentation (#8292, @ericvincent18)
  • [Examples] Add a TensorFlow Core 2.x API usage example (#8235, @dheerajnbhat)

Small bug fixes and documentation updates:

#8324, #8325, @smurching; #8313, @dipanjank; #8323, @liangz1; #8331, #8328, #8319, #8316, #8308, #8293, #8289, #8283, #8284, #8285, #8282, #8241, #8270, #8272, #8271, #8268, @harupy; #8312, #8294, #8295, #8279, #8267, @BenWilson2; #8290, @jinzhang21; #8257, @WeichenXu123; #8307, @arpitjasa-db

2.3.0 (2023-04-18)

MLflow 2.3.0 includes several major features and improvements

Features:

  • [Models] Introduce a new transformers named flavor (#8236, #8181, #8086, @BenWilson2)
  • [Models] Introduce a new openai named flavor (#8191, #8155, @harupy)
  • [Models] Introduce a new langchain named flavor (#8251, #8197, @liangz1, @sunishsheth2009)
  • [Models] Add support for Pytorch and Lightning 2.0 (#8072, @shrinath-suresh)
  • [Tracking] Add support for logging LLM input, output, and prompt artifacts (#8234, #8204, @sunishsheth2009)
  • [Tracking] Add support for HTTP Basic Auth in the MLflow tracking server (#8130, @gabrielfu)
  • [Tracking] Add search_model_versions to the fluent API (#8223, @mariusschlegel)
  • [Artifacts] Add support for parallelized artifact downloads (#8116, @apurva-koti)
  • [Artifacts] Add support for parallelized artifact uploads for AWS (#8003, @harupy)
  • [Artifacts] Add content type headers to artifact upload requests for the HttpArtifactRepository (#8048, @WillEngler)
  • [Model Registry] Add alias support for logged models within Model Registry (#8164, #8094, #8055 @arpitjasa-db)
  • [UI] Add support for custom domain git providers (#7933, @gusghrlrl101)
  • [Scoring] Add plugin support for customization of MLflow serving endpoints (#7757, @jmahlik)
  • [Scoring] Add support to MLflow serving that allows configuration of multiple inference workers (#8035, @M4nouel)
  • [Sagemaker] Add support for asynchronous inference configuration on Sagemaker (#8009, @thomasbell1985)
  • [Build] Remove shap as a core dependency of MLflow (#8199, @jmahlik)

Bug fixes:

  • [Models] Fix a bug with tensorflow autologging for models with multiple inputs (#8097, @jaume-ferrarons)
  • [Recipes] Fix a bug with Pandas 2.0 updates for profiler rendering of datetime types (#7925, @sunishsheth2009)
  • [Tracking] Prevent exceptions from being raised if a parameter is logged with an existing key whose value is identical to the logged parameter (#8038, @AdamStelmaszczyk)
  • [Tracking] Fix an issue with deleting experiments in the FileStore backend (#8178, @mariusschlegel)
  • [Tracking] Fix a UI bug where the "Source Run" field in the Model Version page points to an incorrect set of artifacts (#8156, @WeichenXu123)
  • [Tracking] Fix a bug wherein renaming a run reverts its current lifecycle status to UNFINISHED (#8154, @WeichenXu123)
  • [Tracking] Fix a bug where a file URI could be used as a model version source (#8126, @harupy)
  • [Projects] Fix an issue with MLflow projects that have submodules contained within a project (#8050, @kota-iizuka)
  • [Examples] Fix lightning hyperparameter tuning examples (#8039, @BenWilson2)
  • [Server-infra] Fix bug with Cache-Control headers for static server files (#8016, @jmahlik)

Documentation updates:

  • [Examples] Add a new and thorough example for the creation of custom model flavors (#7867, @benjaminbluhm)

Small bug fixes and documentation updates:

#8262, #8252, #8250, #8228, #8221, #8203, #8134, #8040, #7994, #7934, @BenWilson2; #8258, #8255, #8253, #8248, #8247, #8245, #8243, #8246, #8244, #8242, #8240, #8229, #8198, #8192, #8112, #8165, #8158, #8152, #8148, #8144, #8143, #8120, #8107, #8105, #8102, #8088, #8089, #8096, #8075, #8073, #8076, #8063, #8064, #8033, #8024, #8023, #8021, #8015, #8005, #7982, #8002, #7987, #7981, #7968, #7931, #7930, #7929, #7917, #7918, #7916, #7914, #7913, @harupy; #7955, @arjundc-db; #8219, #8110, #8093, #8087, #8091, #8092, #8029, #8028, #8031, @jerrylian-db; #8187, @apurva-koti; #8210, #8001, #8000, @arpitjasa-db; #8161, #8127, #8095, #8090, #8068, #8043, #7940, #7924, #7923, @dbczumar; #8147, @morelen17; #8106, @WeichenXu123; #8117, @eltociear; #8100, @laerciop; #8080, @elado; #8070, @grofte; #8066, @yukimori; #8027, #7998, @liangz1; #7999, @martlaf; #7964, @viditjain99; #7928, @alekseyolg; #7909, #7901, #7844, @smurching; #7971, @n30111; #8012, @mingyu89; #8137, @lobrien; #7992, @robmarkcole; #8263, @sunishsheth2009

2.2.2 (2023-03-14)

MLflow 2.2.2 is a patch release containing the following bug fixes:

  • [Model Registry] Allow source to be a local path within a run's artifact directory if a run_id is specified (#7993, @harupy)
  • [Model Registry] Fix a bug where a windows UNC path is considered a local path (#7988, @WeichenXu123)
  • [Model Registry] Disallow name to be a file path in FileStore.get_registered_model (#7965, @harupy)

2.2.1 (2023-03-02)

MLflow 2.2.1 is a patch release containing the following bug fixes:

  • [Model Registry] Fix a bug that caused too many results to be requested by default when calling MlflowClient.search_model_versions() (#7935, @dbczumar)
  • [Model Registry] Patch for GHSA-xg73-94fp-g449 (#7908, @harupy)
  • [Model Registry] Patch for GHSA-wp72-7hj9-5265 (#7965, @harupy)

2.2.0 (2023-02-28)

MLflow 2.2.0 includes several major features and improvements

Features:

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

Bug fixes:

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

Documentation updates:

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

Small bug fixes and documentation updates:

#7866, #7751, #7724, #7699, #7697, #7666, @alekseyolg; #7896, #7861, #7858, #7862, #7872, #7859, #7863, #7767, #7766, #7765, #7741, @smurching; #7895, #7877, @viditjain99; #7898, @midhun1998; #7891, #7892, #7886, #7882, #7883, #7875, #7874, #7871, #7868, #7854, #7847, #7845, #7838, #7830, #7837, #7836, #7834, #7831, #7828, #7825, #7826, #7824, #7823, #7778, #7780, #7776, #7775, #7773, #7772, #7769, #7756, #7768, #7764, #7685, #7726, #7722, #7720, #7423, #7712, #7710, #7713, #7688, #7663, #7674, #7673, #7672, #7662, #7653, #7646, #7615, #7614, #7586, #7601, #7598, #7602, #7599, #7577, #7585, #7583, #7584, @harupy; #7865, #7803, #7753, #7719, @dipanjank; #7796, @serena-ruan; #7849, @turbotimon; #7822, #7600, @WeichenXu123; #7811, @guyrosin; #7812, #7788, #7787, #7748, #7730, #7616, #7593, @dbczumar; #7793, @Joel-hanson; #7792, #7694, #7643, @BenWilson2; #7771, #7657, #7644, @nsenno-dbr; #7738, @wkrt7; #7740, @Ark-kun; #7739, #7733, @bali0019; #7723, @andrehp; #7691, #7582, @agoyot; #7721, @Eseeldur; #7709, @srowen; #7693, @ry3s; #7649, @funkypenguin; #7665, @benjaminbluhm; #7668, @eltociear; #7550, @danielhstahl; #7920, @arjundc-db

2.1.0 (2022-12-21)

MLflow 2.1.0 includes several major features and improvements

Features:

  • [Recipes] Introduce support for multi-class classification (#7458, @mshtelma)
  • [Recipes] Extend the pyfunc representation of classification models to output scores in addition to labels (#7474, @sunishsheth2009)
  • [UI] Add user ID and lifecycle stage quick search links to the Runs page (#7462, @jaeday)
  • [Tracking] Paginate the GetMetricHistory API (#7523, #7415, @BenWilson2)
  • [Tracking] Add Runs search aliases for Run name and start time that correspond to UI column names (#7492, @apurva-koti)
  • [Tracking] Add a /version endpoint to mlflow server for querying the server's MLflow version (#7273, @joncarter1)
  • [Model Registry] Add FileStore support for the Model Registry (#6605, @serena-ruan)
  • [Model Registry] Introduce an mlflow.search_registered_models() fluent API (#7428, @TSienki)
  • [Model Registry / Java] Add a getRegisteredModel() method to the Java client (#6602) (#7511, @drod331)
  • [Model Registry / R] Add an mlflow_set_model_version_tag() method to the R client (#7401, @leeweijie)
  • [Models] Introduce a metadata field to the MLmodel specification and log_model() methods (#7237, @jdonzallaz)
  • [Models] Extend Model.load() to support loading MLmodel specifications from remote locations (#7517, @dbczumar)
  • [Models] Pin the major version of MLflow in Models' requirements.txt and conda.yaml files (#7364, @BenWilson2)
  • [Scoring] Extend mlflow.pyfunc.spark_udf() to support StructType results (#7527, @WeichenXu123)
  • [Scoring] Extend TensorFlow and Keras Models to support multi-dimensional inputs with mlflow.pyfunc.spark_udf()(#7531, #7291, @WeichenXu123)
  • [Scoring] Support specifying deployment environment variables and tags when deploying models to SageMaker (#7433, @jhallard)

Bug fixes:

  • [Recipes] Fix a bug that prevented use of custom early_stop functions during model tuning (#7538, @sunishsheth2009)
  • [Recipes] Fix a bug in the logic used to create a Spark session during data ingestion (#7307, @WeichenXu123)
  • [Tracking] Make the metric names produced by mlflow.autolog() consistent with mlflow.evaluate() (#7418, @wenfeiy-db)
  • [Tracking] Fix an autologging bug that caused nested, redundant information to be logged for XGBoost and LightGBM models (#7404, @WeichenXu123)
  • [Tracking] Correctly classify SQLAlchemy OperationalErrors as retryable HTTP errors (#7240, @barrywhart)
  • [Artifacts] Correctly handle special characters in credentials when using FTP artifact storage (#7479, @HCTsai)
  • [Models] Address an issue that prevented MLeap models from being saved on Windows (#6966, @dbczumar)
  • [Scoring] Fix a permissions issue encountered when using NFS during model scoring with mlflow.pyfunc.spark_udf() (#7427, @WeichenXu123)

Documentation updates:

  • [Docs] Add more examples to the Runs search documentation page (#7487, @apurva-koti)
  • [Docs] Add documentation for Model flavors developed by the community (#7425, @mmerce)
  • [Docs] Add an example for logging and scoring ONNX Models (#7398, @Rusteam)
  • [Docs] Fix a typo in the model scoring REST API example for inputs with the dataframe_split format (#7540, @zhouyangyu)
  • [Docs] Fix a typo in the model scoring REST API example for inputs with the dataframe_records format (#7361, @dbczumar)

Small bug fixes and documentation updates:

#7571, #7543, #7529, #7435, #7399, @WeichenXu123; #7568, @xiaoye-hua; #7549, #7557, #7509, #7498, #7499, #7485, #7486, #7484, #7391, #7388, #7390, #7381, #7366, #7348, #7346, #7334, #7340, #7323, @BenWilson2; #7561, #7562, #7560, #7553, #7546, #7539, #7544, #7542, #7541, #7533, #7507, #7470, #7469, #7467, #7466, #7464, #7453, #7449, #7450, #7440, #7430, #7436, #7429, #7426, #7410, #7406, #7409, #7407, #7405, #7396, #7393, #7395, #7384, #7376, #7379, #7375, #7354, #7353, #7351, #7352, #7350, #7345, #6493, #7343, #7344, @harupy; #7494, @dependabot[bot]; #7526, @tobycheese; #7489, @liangz1; #7534, @Jingnan-Jia; #7496, @danielhstahl; #7504, #7503, #7459, #7454, #7447, @tsugumi-sys; #7461, @wkrt7; #7451, #7414, #7372, #7289, @sunishsheth2009; #7441, @ikrizanic; #7432, @Pochingto; #7386, @jhallard; #7370, #7373, #7371, #7336, #7341, #7342, @dbczumar; #7335, @prithvikannan

2.0.1 (2022-11-14)

The 2.0.1 version of MLflow is a major milestone release that focuses on simplifying the management of end-to-end MLOps workflows, providing new feature-rich functionality, and expanding upon the production-ready MLOps capabilities offered by MLflow. This release contains several important breaking changes from the 1.x API, additional major features and improvements.

Features:

  • [Recipes] MLflow Pipelines is now MLflow Recipes - a framework that enables data scientists to quickly develop high-quality models and deploy them to production
  • [Recipes] Add support for classification models to MLflow Recipes (#7082, @bbarnes52)
  • [UI] Introduce support for pinning runs within the experiments UI (#7177, @harupy)
  • [UI] Simplify the layout and provide customized displays of metrics, parameters, and tags within the experiments UI (#7177, @harupy)
  • [UI] Simplify run filtering and ordering of runs within the experiments UI (#7177, @harupy)
  • [Tracking] Update mlflow.pyfunc.get_model_dependencies() to download all referenced requirements files for specified models (#6733, @harupy)
  • [Tracking] Add support for selecting the Keras model save_format used by mlflow.tensorflow.autolog() (#7123, @balvisio)
  • [Models] Set mlflow.evaluate() status to stable as it is now a production-ready API
  • [Models] Simplify APIs for specifying custom metrics and custom artifacts during model evaluation with mlflow.evaluate() (#7142, @harupy)
  • [Models] Correctly infer the positive label for binary classification within mlflow.evaluate() (#7149, @dbczumar)
  • [Models] Enable automated signature logging for tensorflow and keras models when mlflow.tensorflow.autolog() is enabled (#6678, @BenWilson2)
  • [Models] Add support for native Keras and Tensorflow Core models within mlflow.tensorflow (#6530, @WeichenXu123)
  • [Models] Add support for defining the model_format used by mlflow.xgboost.save/log_model() (#7068, @AvikantSrivastava)
  • [Scoring] Overhaul the model scoring REST API to introduce format indicators for inputs and support multiple output fields (#6575, @tomasatdatabricks; #7254, @adriangonz)
  • [Scoring] Add support for ragged arrays in model signatures (#7135, @trangevi)
  • [Java] Add getModelVersion API to the java client (#6955, @wgottschalk)

Breaking Changes:

The following list of breaking changes are arranged by their order of significance within each category.

  • [Core] Support for Python 3.7 has been dropped. MLflow now requires Python >=3.8
  • [Recipes] mlflow.pipelines APIs have been replaced with mlflow.recipes
  • [Tracking / Registry] Remove /preview routes for Tracking and Model Registry REST APIs (#6667, @harupy)
  • [Tracking] Remove deprecated list APIs for experiments, models, and runs from Python, Java, R, and REST APIs (#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar)
  • [Tracking] Remove deprecated runs response field from Get Experiment REST API response (#6541, #6524 @dbczumar)
  • [Tracking] Remove deprecated MlflowClient.download_artifacts API (#6537, @WeichenXu123)
  • [Tracking] Change the behavior of environment variable handling for MLFLOW_EXPERIMENT_NAME such that the value is always used when creating an experiment (#6674, @BenWilson2)
  • [Tracking] Update mlflow server to run in --serve-artifacts mode by default (#6502, @harupy)
  • [Tracking] Update Experiment ID generation for the Filestore backend to enable threadsafe concurrency (#7070, @BenWilson2)
  • [Tracking] Remove dataset_name and on_data_{name | hash} suffixes from mlflow.evaluate() metric keys (#7042, @harupy)
  • [Models / Scoring / Projects] Change default environment manager to virtualenv instead of conda for model inference and project execution (#6459, #6489 @harupy)
  • [Models] Move Keras model logging APIs to the mlflow.tensorflow flavor and drop support for TensorFlow Estimators (#6530, @WeichenXu123)
  • [Models] Remove deprecated mlflow.sklearn.eval_and_log_metrics() API in favor of mlflow.evaluate() API (#6520, @dbczumar)
  • [Models] Require mlflow.evaluate() model inputs to be specified as URIs (#6670, @harupy)
  • [Models] Drop support for returning custom metrics and artifacts from the same function when using mlflow.evaluate(), in favor of custom_artifacts (#7142, @harupy)
  • [Models] Extend PyFuncModel spec to support conda and virtualenv subfields (#6684, @harupy)
  • [Scoring] Remove support for defining input formats using the Content-Type header (#6575, @tomasatdatabricks; #7254, @adriangonz)
  • [Scoring] Replace the --no-conda CLI option argument for native serving with --env-manager='local' (#6501, @harupy)
  • [Scoring] Remove public APIs for mlflow.sagemaker.deploy() and mlflow.sagemaker.delete() in favor of MLflow deployments APIs, such as mlflow deployments -t sagemaker (#6650, @dbczumar)
  • [Scoring] Rename input argument df to inputs in mlflow.deployments.predict() method (#6681, @BenWilson2)
  • [Projects] Replace the use_conda argument with the env_manager argument within the run CLI command for MLflow Projects (#6654, @harupy)
  • [Projects] Modify the MLflow Projects docker image build options by renaming --skip-image-build to --build-image with a default of False (#7011, @harupy)
  • [Integrations/Azure] Remove deprecated mlflow.azureml modules from MLflow in favor of the azure-mlflow deployment plugin (#6691, @BenWilson2)
  • [R] Remove conda integration with the R client (#6638, @harupy)

Bug fixes:

  • [Recipes] Fix rendering issue with profile cards polyfill (#7154, @hubertzub-db)
  • [Tracking] Set the MLflow Run name correctly when specified as part of the tags argument to mlflow.start_run() (#7228, @Cokral)
  • [Tracking] Fix an issue with conflicting MLflow Run name assignment if the mlflow.runName tag is set (#7138, @harupy)
  • [Scoring] Fix incorrect payload constructor error in SageMaker deployment client predict() API (#7193, @dbczumar)
  • [Scoring] Fix an issue where DataCaptureConfig information was not preserved when updating a Sagemaker deployment (#7281, @harupy)

Small bug fixes and documentation updates:

#7309, #7314, #7288, #7276, #7244, #7207, #7175, #7107, @sunishsheth2009; #7261, #7313, #7311, #7249, #7278, #7260, #7284, #7283, #7263, #7266, #7264, #7267, #7265, #7250, #7259, #7247, #7242, #7143, #7214, #7226, #7230, #7227, #7229, #7225, #7224, #7223, #7210, #7192, #7197, #7196, #7204, #7198, #7191, #7189, #7184, #7182, #7170, #7183, #7131, #7165, #7151, #7164, #7168, #7150, #7128, #7028, #7118, #7117, #7102, #7072, #7103, #7101, #7100, #7099, #7098, #7041, #7040, #6978, #6768, #6719, #6669, #6658, #6656, #6655, #6538, #6507, #6504 @harupy; #7310, #7308, #7300, #7290, #7239, #7220, #7127, #7091, #6713 @BenWilson2; #7332, #7299, #7271, #7209, #7180, #7179, #7158, #7147, #7114, @prithvikannan; #7275, #7245, #7134, #7059, @jinzhang21; #7306, #7298, #7287, #7272, #7258, #7236, @ayushthe1; #7279, @tk1012; #7219, @rddefauw; #7333, #7218, #7208, #7188, #7190, #7176, #7137, #7136, #7130, #7124, #7079, #7052, #6541 @dbczumar; #6640, @WeichenXu123; #7200, @hubertzub-db; #7121, @Gonmeso; #6988, @alonisser; #7141, @pdifranc; #7086, @jerrylian-db; #7286, @shogohida