changelogs/v2.x.md
MLflow 2.22.1 includes several major features and improvements
Features:
Bug fixes:
Documentation updates:
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
MLflow 2.22.0 brings important bug fixes and improves the UI and tracking capabilities.
Features:
get_last_active_trace, which affects model serving/monitoring logic.Bug Fixes:
langchain_tracer + added unit tests.": " were being truncated.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
MLflow 2.21.3 includes a few bugi
Bug fixes:
Documentation updates:
Small bug fixes and documentation updates:
#15205, @mlflow-app[bot]; #15184, #15157, #15137, @TomeHirata; #15085, @B-Step62; #15118, @bbqiu; #15172, @harupy
MLflow 2.21.2 is a patch release that introduces minor features and bug fixes.
MLflow 2.21.1 is a patch release that introduces minor features and addresses some minor bugs.
Features:
--install-java option (#14868, @rgangopadhya)Bug fixes:
OTEL_EXPORTER_OTLP_PROTOCOL definition (#15008, @gabrielfu)Documentation updates:
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
We are excited to announce the release of MLflow 2.21.0! This release includes a number of significant features, enhancements, and bug fixes.
Features:
Bug fixes:
ExperimentViewRunsControlsActionsSelectTags doesn't set loading state to false when set-tag request fails. (#14907, @harupy)": " get truncated (#14896, @harupy)mlflow.doctor to fall back to mlflow-skinny when mlflow is not found (#14782, @harupy)Documentation updates:
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
MLflow 2.20.4 is a tiny patch release to include a bug fix:
log_trace at top level module (#14873, @yxtay)MLflow 2.20.3 is a patch release includes several major features and improvements
Features:
Bug fixes:
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
MLflow 2.20.2 is a patch release includes several bug fixes and features
Features:
Bug fixes:
Documentation updates:
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
MLflow 2.20.1 is a patch release includes several bug fixes and features:
Features:
Bug fixes:
Other small updates:
#14337, #14382, @B-Step62; #14356, @daniellok-db, #14354, @artjen, #14360, @TomuHirata,
We are excited to announce the release of MLflow 2.20.0! This release includes a number of significant features, enhancements, and bug fixes.
π‘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:
ChatAgent base class for defining custom python agent (#13797, @bbqiu)context parameter optional for calling PythonModel instance (#14059, @serena-ruan)ChatModel (#14068, @stevenchen-db)Bug fixes:
log_image (#14281, @TomeHirata)loaded_model variable (#14109, @yang-chengg)DatabricksSDKModelsArtifactRepository.list_artifacts is called on a file (#14027, @shichengzhou-db)Documentation updates:
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
We are excited to announce the release of MLflow 2.19.0! This release includes a number of significant features, enhancements, and bug fixes.
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:
update_current_trace API for adding tags to an active trace. (#13828, @B-Step62)trace.search_spans() method for searching spans within traces (#13984, @B-Step62)Bug fixes:
mlflow.end_run inside a MLflow run context manager (#13888, @WeichenXu123)Documentation updates:
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
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 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
ChatModelinterface for authoring custom GenAI applications, please ensure that you have read the future breaking changes section below.
π¦Ί 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)
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:
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.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.mlflow.models.rag_signatures will be deprecated, merging into unified ChatCompletionRequest, ChatCompletionResponse, and ChatCompletionChunks.Other Features:
spark_udf when running on Databricks Serverless runtime, Databricks connect, and prebuilt python environments (#13276, #13496, @WeichenXu123)model_config parameter for pyfunc.spark_udf for customization of batch inference payload submission (#13517, @WeichenXu123)Documents (#13242, @daniellok-db)resources definitions for Langchain model logging (#13315, @sunishsheth2009)dependencies for Agent definitions (#13246, @sunishsheth2009)Bug fixes:
gc command when deleting experiments with logged datasets (#13741, @daniellok-db)Langchain's pyfunc predict input conversion (#13652, @serena-ruan)Optional dataclasses that define a model's signature (#13440, @bbqiu)LangChain's autologging thread-safety behavior (#13672, @B-Step62)role and index as required for chat schema (#13279, @chenmoneygithub)Langchain models (#13610, @WeichenXu123)Documentation updates:
model_config when logging models as code (#13631, @sunishsheth2009)code_paths model logging feature (#13702, @TomeHirata)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
MLflow 2.17.2 includes several major features and improvements
Features:
Bug fixes:
Documentation updates:
Small bug fixes and documentation updates:
#13569, @serena-ruan; #13595, @BenWilson2; #13593, @mnijhuis-dnb;
MLflow 2.17.1 includes several major features and improvements
Features:
Bug fixes:
Documentation updates:
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
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.
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:
Workflows objects to be serialized when calling log_model() (#13277, #13305, #13336, @B-Step62)from_dict() function to ChatModel dataclasses (#13180, @daniellok-db)langchain.log_model() (#13315, @sunishsheth2009)set_retriever_schema (#13246, @sunishsheth2009)Bug fixes:
presigned_url_artifact requests being in the wrong format (#13366, @WeichenXu123)langchain-databricks partner package. (#13266, @B-Step62)Documentation updates:
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;
MLflow 2.16.2 includes several major features and improvements
Bug fixes:
MLflow 2.16.1 is a patch release that includes some minor feature improvements and addresses several bug fixes.
Features:
Bug fixes:
Model.get_tags_dict by eliminating the return of the internally-used config field (#13086, @harshilprajapati96)Documentation updates:
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
We are excited to announce the release of MLflow 2.16.0. This release includes many major features and improvements!
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:
pyfunc model wrappers (#12814, @serena-ruan)Bug fixes:
model-history tag to only essential fields (#12983, @harshilprajapati96)pkg_resources with importlib.metadata due to package deprecation (#12853, @harupy)Documentation updates:
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
MLflow 2.15.1 is a patch release that addresses several bug fixes.
Bug fixes:
mlflow.evaluate crash on binary classification with data subset only contains single class (#12825, @serena-ruan)Documentation updates:
Small bug fixes and documentation updates:
#12823, #12860, #12844, #12843, @B-Step62; #12863, #12828, @harupy; #12845, @djliden; #12820, @annzhang-db; #12831, @chenmoneygithub
We are excited to announce the release candidate for MLflow 2.15.0. This release includes many major features and improvements!
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)
Features:
parent_id as a parameter to the start_run fluent API for alternative control flows (#12721, @Flametaa)mlflow gc (#12451, @M4nouel)ChatModel interface for GenAI flavors (#12612, @WeichenXu123)iloc for accessing rows (#12410, @julcsii)Bug fixes:
.batch call due to thread unsafety (#12701, @B-Step62)log_model issue in MLflow >= 2.13 that causes databricks DLT py4j service crashing (#12514, @WeichenXu123)predict_stream for AgentExecutor and other non-Runnable chains (#12518, @B-Step62)Documentation updates:
fork vs spawn method when using multiprocessing for parallel runs (#12337, @B-Step62)extract_fields for mlflow.search_traces (#12319, @xq-yin)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;
MLflow 2.14.3 is a patch release that addresses bug fixes and additional documentation for released features
Features:
Bug fixes:
Documentation updates:
Small bug fixes and documentation updates:
#12556, #12628, @B-Step62; #12582, #12560, @harupy; #12553, @nojaf
MLflow 2.14.2 is a patch release that includes several important bug fixes and documentation enhancements.
Bug fixes:
llm/v1/xxx task definitions. (#12551, @B-Step62)log_model introduced in MLflow 2.13.0 that causes Databricks DLT service to crash in some situations (#12514, @WeichenXu123)predict_stream implementation for LangChain AgentExecutor and other non-Runnable chains (#12518, @B-Step62)predict_proba inference method in the sklearn flavor when loading an sklearn pipeline object as pyfunc (#12554, @WeichenXu123)Documentation updates:
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
MLflow 2.14.1 is a patch release that contains several bug fixes and documentation improvements
Bug fixes:
install_mlflow=False (#12388, @daniellok-db)Documentation updates:
Small bug fixes and documentation updates:
#12415, #12396, #12394, @harupy; #12403, #12382, @BenWilson2; #12397, @B-Step62
MLflow 2.14.0 includes several major features and improvements that we're very excited to announce!
Other Notable Features:
Bug fixes:
Documentation updates:
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
MLflow 2.13.2 is a patch release that includes several bug fixes and integration improvements to existing features.
Features:
urllib's connection number and max size (#12227, @chenmoneygithub)Bug fixes:
mlflow[gateway] as dependency when using mlflow.deployment module (#12264, @B-Step62)/ 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
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[langchain] extra that installs recommended versions of langchain with MLflow (#12182, @sunishsheth2009)Bug fixes:
getUserLocalTempDir and getUserNFSTempDir to replace getReplLocalTempDir and getReplNFSTempDir in databricks runtime (#12105, @WeichenXu123)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
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.
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:
Togetherai as a supported provider for the MLflow Deployments Server (#11557, @FotiosBistas)predict_stream API support for Python Models (#11791, @WeichenXu123)Bug fixes:
hasattr references in AttrDict usages (#11999, @BenWilson2)Documentation updates:
predict_stream API (#11976, @BenWilson2)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
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:
llm/v1/embeddings task in the Transformers flavor to unify the input and output structures for embedding models (#11795, @B-Step62)predict_stream() for custom pyfunc models capable of returning a stream response (#11791, #11895, @WeichenXu123)mlflow.evaluate for GenAI models (#11912, @apurva-koti)pyfunc models (#11832, #11825, #11804, @sunishsheth2009)LangChain and custom pyfunc models as code (#11855, #11842, @sunishsheth2009)Bug fixes:
params are specified (#11838, @WeichenXu123)spark_udf for inference fails due to a configuration issue (#11752, @WeichenXu123)Documentation updates:
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
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.
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)
Features:
predict_stream API for streamable output for Langchain models and the DatabricksDeploymentClient (#11490, #11580 @WeichenXu123)code_paths alias for code_path in pyfunc to be standardized to other flavor implementations (#11688, @BenWilson2)sentence-transformers flavor (#11635, @B-Step62)MapType support within model signatures when used with Spark udf inference (#11265, @WeichenXu123)ChatOpenAI and AzureChatOpenAI LLM interfaces within the LangChain flavor (#11644, @B-Step62)Image object for handling the logging and optimized compression of images (#11404, @jessechancy)UCVolumeDatasetSource (#11301, @chenmoneygithub)mlflow.Image files within tables (#11535, @jessechancy)chat & chat streaming for Anthropic within the MLflow deployments server (#11195, @gabrielfu)Security fixes:
Bug fixes:
% in model names to prevent URL mangling within the UI (#11474, @daniellok-db)LangChain loading functions to handle uncorrectable pickle-related exceptions that are thrown when loading a model in certain versions (#11582, @B-Step62)sklearn flavor to reintroduce support for custom prediction methods (#11577, @B-Step62)langchain flavor (#11485, @WeichenXu123)transformers models that contain custom code (#11412, @daniellok-db)transformers flavor that generates an inconsistent input example display within the MLflow UI (#11508, @B-Step62)keras autologging training dataset generator (#11383, @WeichenXu123)GetSampledHistoryBulkInterval API to produce more consistent results when displayed within the UI (#11475, @daniellok-db)langchain and lanchain_community within langchain models when logging (#11450, @sunishsheth2009)Documentation updates:
code_paths docstrings in API documentation (#11675, @BenWilson2)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
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.
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:
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:
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;
MLflow 2.11.1 is a patch release, containing fixes for some Databricks integrations and other various issues.
Bug fixes:
Small bug fixes and documentation updates:
#11336, #11335, @harupy; #11303, @B-Step62; #11319, @BenWilson2; #11306, @daniellok-db
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:
mlflow.pyfunc.predict, enhancing data compatibility and analysis options for batch inference (#10939, @ernestwong-db)mlflow.config.enable_async_logging for asynchronous logging, improving log handling and system performance (#11138, @chenmoneygithub)prompt) and embeddings (input) format inputs in the scoring server, increasing model interaction flexibility (#10958, @es94129)Bug Fixes:
load_context() is called when enforcing ChatModel outputs so that all required external references are included in the model object instance (#11150, @daniellok-db)torch.dtype as a string was not being applied correctly to the underlying transformers model (#11297, #11295, @harupy)mlflow.evaluate col_mapping bug for non-LLM/custom metrics, ensuring accurate evaluation and metric calculation (#11156, @sunishsheth2009)TensorInfo TypeError exception message issue, ensuring clarity and accuracy in error reporting for users (#10953, @leecs0503)RestException objects to be picklable, improving their usability in distributed computing scenarios where serialization is essential (#10936, @WeichenXu123)io.delta:delta-spark_2.12:3.0.0 dependency to the correct scala version, aligning dependencies with project requirements (#11149, @WeichenXu123)importlib.metadata.entry_points().get, enhancing compatibility and stability (#10752, @raphaelauv)mlflow.login(), streamlining the authentication process and improving security (#11039, @chenmoneygithub)Documentation Updates:
log_input, enriching the documentation with actionable advice and examples for effective data handling (#10956, @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;
MLflow 2.10.2 includes several major features and improvements
Small bug fixes and documentation updates:
#11065, @WeichenXu123
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:
predict() on a pyfunc-loaded Text2TextGeneration pipeline would fail for string and List[string] inputs. (#10960, @B-Step62)Documentation updates:
Small bug fixes and documentation updates:
#10930, #11005, @serena-ruan; #10927, @harupy
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:
Objects and Arrays support for model signatures (#9936, @serena-ruan)predict API to serve as a pre-logging validator of environment compatibility. (#10759, @B-Step62)pyfunc predict (#10758, @dbczumar)Futures objects (#10715, @chenmoneygithub)login() API (#10623, @henxing)dict inputs with the messages key (#10742, @daniellok-db, @B-Step62)Bug fixes:
mlflowdbfs mounts for JohnSnowLabs flavor due to flakiness (#9872, @C-K-Loan)Documentation updates:
KeyError: 'loss' bug for the Quickstart guideline (#10886, @yanmxa)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
MLflow 2.9.2 is a patch release, containing several critical security fixes and configuration updates to support extremely large model artifacts.
Features:
mlflow.deployments.openai API to simplify direct access to OpenAI services through the deployments API (#10473, @prithvikannan)Security fixes:
.. path traversal queries (#10653, @B-Step62)HTTPDatasetSource (#10647, @BenWilson2)Documentation updates:
Small bug fixes and documentation updates:
#10677, #10636, @serena-ruan; #10652, #10649, #10641, @harupy; #10643, #10632, @BenWilson2
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:
Small bug fixes and documentation updates:
#10625, @BenWilson2
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.
path in HttpArtifactRepository.list_artifacts (#10585, @harupy)filename in Content-Disposition header for HTTPDatasetSource (#10584, @harupy).Content-Type header to prevent POST XSS (#10526, @B-Step62)Features:
backoff_jitter when making HTTP requests (#10486, @ajinkyavbhandare)aggregate_results if the score type is numeric in make_metric API (#10490, @sunishsheth2009)torch_dtype for transformers models (#10586, @serena-ruan)ndcg_at_k to retriever evaluation (#10284, @liangz1)copy_model_version (#10308, @jerrylian-db)RunnableSequence, RunnableParallel, and RunnableBranch (#10521, #10611, @serena-ruan)Bug fixes:
Documentation updates:
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;
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:
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:
Azure OpenAI integration for mlflow.evaluate when using LLM judge metrics (#10291, @prithvikannan)Examples to optional for the make_genai_metric API (#10353, @prithvikannan)fastapi dependency when using mlflow.evaluate for LLM results (#10354, @prithvikannan)mlflow.login() API to catch invalid hostname configuration input errors (#10239, @chenmoneygithub)flush operation at the conclusion of logging system metrics (#10320, @chenmoneygithub)SHAP model explainability functionality within mlflow.shap.log_explanation so that duplicate or conflicting dependencies are not registered when logging (#10305, @BenWilson2)Documentation updates:
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
MLflow 2.8.0 includes several notable new features and improvements
Features:
completions in the OpenAI flavor (#9838, @santiagxf)copy_model_version client API for copying model versions across registered models (#9946, #10078, #10140, @jerrylian-db)xethub as an artifact store via a plugin extension (#9957, @Kelton8Z)Bug fixes:
Documentation updates:
mlflow.data.from_numpy() (#9885, @chenmoneygithub)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
MLflow 2.7.1 is a patch release containing the following features, bug fixes and changes:
Features:
set_limits and get_limits APIs for AI Gateway routes within Databricks (#9516, @zhe-db)Bug fixes:
R client that prevents models from being loaded (#9624, @BenWilson2)Small bug fixes and documentation updates:
#9640, @annzhang-db; #9622, @harupy
MLflow 2.7.0 includes several major features and improvements
Features:
MosaicML as a supported provider for the MLflow AI Gateway (#9459, @arpitjasa-db)transformers model as pyfunc (#9362, @serena-ruan)Tracking Server authentication (#9191, @barrywhart)R2 backend (#9490, @shichengzhou-db)Bug fixes:
AI Gateway credentials before each request (#9518, @dbczumar)search_routes would raise an exception when no routes have been defined on the AI Gateway server (#9387, @QuentinAmbard)pydantic 2.x for AI gateway (#9339, @harupy)AI Gateway that could render MLflow nonfunctional at import if dependencies were conflicting. (#9337, @BenWilson2)fuse mount paths on Databricks (#9545, @BenWilson2)Documentation updates:
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]
MLflow 2.6.0 includes several major features and improvements
Features:
save_kwargs for mlflow.log_figure to specify extra options when saving a figure (#9179, @stroblme)Bug fixes:
text_pair functionality for transformers TextClassification pipelines (#9215, @BenWilson2)sklearn.metrics.get_scorer_names in mlflow.sklearn.autolog to avoid duplicate logging (#9095, @WeichenXu123)Documentation updates:
sentence-transformers doc & example (#9047, @es94129)Deprecation:
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
MLflow 2.5.0 includes several major features and improvements:
Features:
Bug fixes:
mlflow server or mlflow ui on Windows, we recommend upgrading to MLflow 2.5.0 as soon as possible.Documentation updates:
Deprecation:
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
MLflow 2.4.2 is a patch release containing the following bug fixes and changes:
Bug fixes:
feature_deps in ModelVersion creation for UC (#8867, #8815, @AveshCSingh)MLFLOW_ENABLE_MULTIPART_DOWNLOAD in DatabricksArtifactRepository (#8884, @harupy)Documentation updates:
Small bug fixes and documentation updates:
#8966, @BenWilson2; #8881, @harupy; #8846, #8760, @smurching
MLflow 2.4.1 is a patch release containing the following features, bug fixes and changes:
Features:
mlflow.johnsnowlabs flavor for the johnsnowlabs package (#8556, @C-K-Loan)save_model and log_model for the transformers flavor (#8678, @BenWilson2)Bug fixes:
mlflow server or mlflow ui, we recommend upgrading to MLflow 2.4.1 as soon as possible.transformers serialization for ModelCards that contain invalid characters (#8652, @BenWilson2)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
MLflow 2.4.0 includes several major features and improvements
Features:
mlflow.data and mlflow.log_input() (#8186, @prithvikannan)mlflow.log_table() and mlflow.load_table() APIs for logging evaluation tables (#8523, #8467, @sunishsheth2009)mlflow.get_parent_run() fluent API (#8493, @annzhang-db)mlflow.evaluate() to support LLM tasks (#8484, @harupy)Chain and LLMChain in mlflow.langchain flavor (#8453, @liangz1)mlflow.langchain flavor (#8297, @sunishsheth2009)mlflow.sentence_transformers flavor for SentenceTransformers (#8479, @BenWilson2; #8547, @Loquats)mlflow.transformers flavor (#8448, @ankit-db)max_shard_size parameter in the mlflow.transformers flavor (#8567, @wenfeiy-db)mlflow.transformers flavor (#8464, @BenWilson2)mlflow.transformers flavor (#8492, @BenWilson2)mlflow.transformers flavor (#8495, @BenWilson2)mlflow.transformers pyfunc outputs (#8512, @BenWilson2)mlflow.models.set_signature() API to set the signature of a logged model (#8476, @jerrylian-db)mlflow.onnx.log_model() (#8433, @leqiao-1)Bug fixes:
mlflow server with Flask<2.0 (#8463, @kevingreer)mlflow.transformers pyfunc scalar string output to list of strings during batch inference (#8546, @BenWilson2)mlflow models build-docker (#8488, @Hellzed)Documentation updates:
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;
MLflow 2.3.2 is a patch release containing the following features, bug fixes and changes:
Features:
transformers models pyfunc inference and serving (#8375, @ankit-db)transformers model (#8405, @BenWilson2)torch_dtype values in transformers pipelines (#8421, @BenWilson2)Feature Extraction pipelines in the transformers flavor (#8423, @BenWilson2)Bug Fixes:
Text2TextGeneration pipelines in the transformers flavor (#8391, @BenWilson2)Documentation updates:
signature logging to all examples and documentation (#8410, #8401, #8400, #8387 @jerrylian-db)sentence-transformers examples to the transformers examples suite (#8425, @BenWilson2)trubrics (#8371, @jeffkayne)gluon pyfunc example to Model flavor documentation (#8403, @ericvincent18)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;
MLflow 2.3.1 is a patch release containing the following bug fixes and changes:
Bug fixes:
mlflow server or mlflow ui, we recommend upgrading to MLflow 2.3.1 as soon as possible. For more details, see https://github.com/mlflow/mlflow/security/advisories/GHSA-xg73-94fp-g449.inputs format for inference (#8326, @BenWilson2)Documentation updates:
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
MLflow 2.3.0 includes several major features and improvements
Features:
transformers named flavor (#8236, #8181, #8086, @BenWilson2)openai named flavor (#8191, #8155, @harupy)langchain named flavor (#8251, #8197, @liangz1, @sunishsheth2009)Pytorch and Lightning 2.0 (#8072, @shrinath-suresh)search_model_versions to the fluent API (#8223, @mariusschlegel)HttpArtifactRepository (#8048, @WillEngler)shap as a core dependency of MLflow (#8199, @jmahlik)Bug fixes:
tensorflow autologging for models with multiple inputs (#8097, @jaume-ferrarons)Pandas 2.0 updates for profiler rendering of datetime types (#7925, @sunishsheth2009)UNFINISHED (#8154, @WeichenXu123)lightning hyperparameter tuning examples (#8039, @BenWilson2)Documentation updates:
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
MLflow 2.2.2 is a patch release containing the following bug fixes:
source to be a local path within a run's artifact directory if a run_id is specified (#7993, @harupy)name to be a file path in FileStore.get_registered_model (#7965, @harupy)MLflow 2.2.1 is a patch release containing the following bug fixes:
MlflowClient.search_model_versions() (#7935, @dbczumar)MLflow 2.2.0 includes several major features and improvements
Features:
model_format when autologging XGBoost models (#7781, @guyrosin)MLFLOW_ARTIFACT_UPLOAD_DOWNLOAD_TIMEOUT environment variable to configure artifact operation timeouts (#7783, @wamartin-aml)Content-Type response headers for artifacts downloaded from mlflow server (#7827, @bali0019)searchModelVersions() API to the Java client (#7880, @gabrielfu)max_results, order_by and page_token arguments to MlflowClient.search_model_versions() (#7623, @serena-ruan)MLFLOW_DEFAULT_PREDICTION_DEVICE environment variable to set the device for pyfunc model inference (#7922, @ankit-db)Bug fixes:
inspect() is called (#7852, @sunishsheth2009)positive_class configuration in the transform step (#7626, @sunishsheth2009)mlflow.evaluate() (#7613, @sunishsheth2009)run_id and artifact_path keys to logged MLmodel files (#7651, @sunishsheth2009)mlflow server (#7908, @harupy)PYTHONOPTIMIZE=2 (#7791, @dbczumar)Documentation updates:
mlflow.lightgbm APIs (#7565, @canerturkseven)sktime (#7624, @benjaminbluhm)precision_recall_auc metric calculation in mlflow.evaluate() (#7701, @BenWilson2)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
MLflow 2.1.0 includes several major features and improvements
Features:
/version endpoint to mlflow server for querying the server's MLflow version (#7273, @joncarter1)mlflow.search_registered_models() fluent API (#7428, @TSienki)getRegisteredModel() method to the Java client (#6602) (#7511, @drod331)mlflow_set_model_version_tag() method to the R client (#7401, @leeweijie)metadata field to the MLmodel specification and log_model() methods (#7237, @jdonzallaz)Model.load() to support loading MLmodel specifications from remote locations (#7517, @dbczumar)requirements.txt and conda.yaml files (#7364, @BenWilson2)mlflow.pyfunc.spark_udf() to support StructType results (#7527, @WeichenXu123)mlflow.pyfunc.spark_udf()(#7531, #7291, @WeichenXu123)Bug fixes:
early_stop functions during model tuning (#7538, @sunishsheth2009)mlflow.autolog() consistent with mlflow.evaluate() (#7418, @wenfeiy-db)mlflow.pyfunc.spark_udf() (#7427, @WeichenXu123)Documentation updates:
dataframe_split format (#7540, @zhouyangyu)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
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:
mlflow.pyfunc.get_model_dependencies() to download all referenced requirements files for specified models (#6733, @harupy)save_format used by mlflow.tensorflow.autolog() (#7123, @balvisio)mlflow.evaluate() status to stable as it is now a production-ready APImlflow.evaluate() (#7142, @harupy)mlflow.evaluate() (#7149, @dbczumar)tensorflow and keras models when mlflow.tensorflow.autolog() is enabled (#6678, @BenWilson2)mlflow.tensorflow (#6530, @WeichenXu123)model_format used by mlflow.xgboost.save/log_model() (#7068, @AvikantSrivastava)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.
mlflow.pipelines APIs have been replaced with mlflow.recipes/preview routes for Tracking and Model Registry REST APIs (#6667, @harupy)list APIs for experiments, models, and runs from Python, Java, R, and REST APIs (#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar)runs response field from Get Experiment REST API response (#6541, #6524 @dbczumar)MlflowClient.download_artifacts API (#6537, @WeichenXu123)MLFLOW_EXPERIMENT_NAME such that the value is always used when creating an experiment (#6674, @BenWilson2)mlflow server to run in --serve-artifacts mode by default (#6502, @harupy)dataset_name and on_data_{name | hash} suffixes from mlflow.evaluate() metric keys (#7042, @harupy)virtualenv instead of conda for model inference and project execution (#6459, #6489 @harupy)mlflow.tensorflow flavor and drop support for TensorFlow Estimators (#6530, @WeichenXu123)mlflow.sklearn.eval_and_log_metrics() API in favor of mlflow.evaluate() API (#6520, @dbczumar)mlflow.evaluate() model inputs to be specified as URIs (#6670, @harupy)mlflow.evaluate(), in favor of custom_artifacts (#7142, @harupy)PyFuncModel spec to support conda and virtualenv subfields (#6684, @harupy)Content-Type header (#6575, @tomasatdatabricks; #7254, @adriangonz)--no-conda CLI option argument for native serving with --env-manager='local' (#6501, @harupy)mlflow.sagemaker.deploy() and mlflow.sagemaker.delete() in favor of MLflow deployments APIs, such as mlflow deployments -t sagemaker (#6650, @dbczumar)df to inputs in mlflow.deployments.predict() method (#6681, @BenWilson2)use_conda argument with the env_manager argument within the run CLI command for MLflow Projects (#6654, @harupy)--skip-image-build to --build-image with a default of False (#7011, @harupy)mlflow.azureml modules from MLflow in favor of the azure-mlflow deployment plugin (#6691, @BenWilson2)Bug fixes:
tags argument to mlflow.start_run() (#7228, @Cokral)mlflow.runName tag is set (#7138, @harupy)predict() API (#7193, @dbczumar)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