Open source platform for the machine learning lifecycle
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 is a patch release.
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
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).
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!
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)mlflowdbfs
mounts for JohnSnowLabs flavor due to flakiness (#9872, @C-K-Loan)KeyError: 'loss'
bug for the Quickstart guideline (#10886, @yanmxa)#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.
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.
The MLflow tracking docs have been overhauled. We'd like your feedback on the new tracking docs!
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)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)#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