Skip to main content

· One min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.26.1!

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

  • [Installation] Fix compatibility issue with protobuf >= 4.21.0 (#5945, @harupy)
  • [Models] Fix get_model_dependencies behavior for models: URIs containing artifact paths (#5921, @harupy)
  • [Models] Revert a problematic change to artifacts persistence in mlflow.pyfunc.log_model() that was introduced in MLflow 1.25.0 (#5891, @kyle-jarvis)
  • [Models] Close associated image files when EvaluationArtifact outputs from mlflow.evaluate() are garbage collected (#5900, @WeichenXu123)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· 3 min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.26.0!

MLflow 1.26.0 includes several major features and improvements:

Features:

  • [CLI] Add endpoint naming and options configuration to the deployment CLI (#5731, @trangevi)
  • [Build,Doc] Add development environment setup script for Linux and MacOS x86 Operating Systems (#5717, @BenWilson2)
  • [Tracking] Update mlflow.set_tracking_uri to add support for paths defined as pathlib.Path in addition to existing str path declarations (#5824, @cacharle)
  • [Scoring] Add custom timeout override option to the scoring server CLI to support high latency models (#5663, @sniafas)
  • [UI] Add sticky header to experiment run list table to support column name visibility when scrolling beyond page fold (#5818, @hubertzub-db)
  • [Artifacts] Add GCS support for MLflow garbage collection (#5811, @aditya-iyengar-rtl-de)
  • [Evaluate] Add pos_label argument for eval_and_log_metrics API to support accurate binary classifier evaluation metrics (#5807, @yxiong)
  • [UI] Add fields for latest, minimum and maximum metric values on metric display page (#5574, @adamreeve)
  • [Models] Add support for input_example and signature logging for pyspark ml flavor when using autologging (#5719, @bali0019)
  • [Models] Add virtualenv environment manager support for mlflow models docker-build CLI (#5728, @harupy)
  • [Models] Add support for wildcard module matching in log_model_allowlist for PySpark models (#5723, @serena-ruan)
  • [Projects] Add virtualenv environment manager support for MLflow projects (#5631, @harupy)
  • [Models] Add virtualenv environment manager support for MLflow Models (#5380, @harupy)
  • [Models] Add virtualenv environment manager support for mlflow.pyfunc.spark_udf (#5676, @WeichenXu123)
  • [Models] Add support for input_example and signature logging for tensorflow flavor when using autologging (#5510, @bali0019)
  • [Server-infra] Add JSON Schema Type Validation to enable raising 400 errors on malformed requests to REST API endpoints (#5458, @mrkaye97)
  • [Scoring] Introduce abstract endpoint interface for mlflow deployments (#5378, @trangevi)
  • [UI] Add End Time and Duration fields to run comparison page (#3378, @RealArpanBhattacharya)
  • [Serving] Add schema validation support when parsing input csv data for model serving (#5531, @vvijay-bolt)

Bug fixes and documentation updates:

  • [Models] Fix REPL ID propagation from datasource listener to publisher for Spark data sources (#5826, @dbczumar)
  • [UI] Update ag-grid and implement getRowId to improve performance in the runs table visualization (#5725, @adamreeve)
  • [Serving] Fix tf-serving parsing to support columnar-based formatting (#5825, @arjundc-db)
  • [Artifacts] Update log_artifact to support models larger than 2GB in HDFS (#5812, @hitchhicker)
  • [Models] Fix autologging to support lightgbm metric names with "@" symbols within their names (#5785, @mengchendd)
  • [Models] Pyfunc: Fix code directory resolution of subdirectories (#5806, @dbczumar)
  • [Server-Infra] Fix mlflow-R server starting failure on windows (#5767, @serena-ruan)
  • [Docs] Add documentation for virtualenv environment manager support for MLflow projects (#5727, @harupy)
  • [UI] Fix artifacts display sizing to support full width rendering in preview pane (#5606, @szczeles)
  • [Models] Fix local hostname issues when loading spark model by binding driver address to localhost (#5753, @WeichenXu123)
  • [Models] Fix autologging validation and batch_size calculations for tensorflow flavor (#5683, @MarkYHZhang)
  • [Artifacts] Fix SqlAlchemyStore.log_batch implementation to make it log data in batches (#5460, @erensahin)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· 2 min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.24.0!

MLflow 1.24.0 includes several major features and improvements:

Features:

  • [Tracking] Support uploading, downloading, and listing artifacts through the MLflow server via mlflow server --serve-artifacts (#5320, @BenWilson2, @harupy)
  • [Tracking] Add the registered_model_name argument to mlflow.autolog() for automatic model registration during autologging (#5395, @WeichenXu123)
  • [UI] Improve and restructure the Compare Runs page. Additions include "show diff only" toggles and scrollable tables (#5306, @WeichenXu123)
  • [Models] Introduce mlflow.pmdarima flavor for pmdarima models (#5373, @BenWilson2)
  • [Models] When loading an MLflow Model, print a warning if a mismatch is detected between the current environment and the Model's dependencies (#5368, @WeichenXu123)
  • [Models] Support computing custom scalar metrics during model evaluation with mlflow.evaluate() (#5389, @MarkYHZhang)
  • [Scoring] Add support for deploying and evaluating SageMaker models via the MLflow Deployments API <https://mlflow.org/docs/latest/models.html#deployment-to-custom-targets>_ (#4971, #5396, @jamestran201)

Bug fixes and documentation updates:

  • [Tracking / UI] Fix artifact listing and download failures that occurred when operating the MLflow server in --serve-artifacts mode (#5409, @dbczumar)
  • [Tracking] Support environment-variable-based authentication when making artifact requests to the MLflow server in --serve-artifacts mode (#5370, @TimNooren)
  • [Tracking] Fix bugs in hostname and path resolution when making artifacts requests to the MLflow server in --serve-artifacts mode (#5384, #5385, @mert-kirpici)
  • [Tracking] Fix an import error that occurred when mlflow.log_figure() was used without matplotlib.figure imported (#5406, @WeichenXu123)
  • [Tracking] Correctly log XGBoost metrics containing the @ symbol during autologging (#5403, @maxfriedrich)
  • [Tracking] Fix a SQL Server database error that occurred during Runs search (#5382, @dianacarvalho1)
  • [Tracking] When downloading artifacts from HDFS, store them in the user-specified destination directory (#5210, @DimaClaudiu)
  • [Tracking / Model Registry] Improve performance of large artifact and model downloads (#5359, @mehtayogita)
  • [Models] Fix fast.ai PyFunc inference behavior for models with 2D outputs (#5411, @santiagxf)
  • [Models] Record Spark model information to the active run when mlflow.spark.log_model() is called (#5355, @szczeles)
  • [Models] Restore onnxruntime execution providers when loading ONNX models with mlflow.pyfunc.load_model() (#5317, @ecm200)
  • [Projects] Increase Docker image push timeout when using Projects with Docker (#5363, @zanitete)
  • [Python] Fix a bug that prevented users from enabling DEBUG-level Python log outputs (#5362, @dbczumar)
  • [Docs] Add a developer guide explaining how to build custom plugins for mlflow.evaluate() (#5333, @WeichenXu123)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· One min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.23.1!

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

  • [Models] Fix a directory creation failure when loading PySpark ML models (#5299, @arjundc-db)
  • [Model Registry] Revert to using case-insensitive validation logic for stage names in models:/ URIs (#5312, @lichenran1234)
  • [Projects] Fix a race condition during Project tar file creation (#5303, @dbczumar)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· 2 min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.23.0!

MLflow 1.23.0 includes several major features and improvements:

Features:

  • [Models] Introduce an mlflow.evaluate() API for evaluating MLflow Models, providing performance and explainability insights. For an overview, see https://mlflow.org/docs/latest/models.html#model-evaluation (#5069, #5092, #5256, @WeichenXu123)
  • [Models] log_model() APIs now return information about the logged MLflow Model, including artifact location, flavors, and schema (#5230, @liangz1)
  • [Models] Introduce an mlflow.models.Model.load_input_example() Python API for loading MLflow Model input examples (#5212, @maitre-matt)
  • [Models] Add a UUID field to the MLflow Model specification. MLflow Models now have a unique identifier (#5149, #5167, @WeichenXu123)
  • [Models] Support passing SciPy CSC and CSR matrices as MLflow Model input examples (#5016, @WeichenXu123)
  • [Model Registry] Support specifying latest in model URI to get the latest version of a model regardless of the stage (#5027, @lichenran1234)
  • [Tracking] Add support for LightGBM scikit-learn models to mlflow.lightgbm.autolog() (#5130, #5200, #5271 @jwyyy)
  • [Tracking] Improve S3 artifact download speed by caching boto clients (#4695, @Samreay)
  • [UI] Automatically update metric plots for in-progress runs (#5017, @cedkoffeto, @harupy)

Bug fixes and documentation updates:

  • [Models] Fix a bug in MLflow Model schema enforcement where strings were incorrectly cast to Pandas objects (#5134, @stevenchen-db)
  • [Models] Fix a bug where keyword arguments passed to mlflow.pytorch.load_model() were not applied for scripted models (#5163, @schmidt-jake)
  • [Model Registry][r] Fix bug in R client mlflow_create_model_version() API that caused model source to be set incorrectly (#5185, @bramrodenburg)
  • [Projects] Fix parsing behavior for Project URIs containing quotes (#5117, @dinaldoap)
  • [Scoring] Use the correct 400-level error code for malformed MLflow Model Server requests (#5003, @abatomunkuev)
  • [Tracking] Fix a bug where mlflow.start_run() modified user-supplied tags dictionary (#5191, @matheusMoreno)
  • [UI] Fix a bug causing redundant scroll bars to be displayed on the Experiment Page (#5159, @sunishsheth2009)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· 2 min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.22.0!

MLflow 1.22.0 includes several major features and improvements:

Features:

Bug fixes and documentation updates:

  • [UI] Fix bug causing Metric Plot page to crash when metric values are too large (#4947, @ianshan0915)
  • [UI] Fix bug causing parallel coordinate curves to vanish (#5087, @harupy)
  • [UI] Remove Creator field from Model Version page if user information is absent (#5089, @jinzhang21)
  • [UI] Fix model loading instructions for non-pyfunc models in Artifact Viewer (#5006, @harupy)
  • [Models] Fix a bug that added mlflow to conda.yaml even if a hashed version was already present (#5058, @maitre-matt)
  • [Docs] Add Python documentation for metric, parameter, and tag key / value length limits (#4991, @westford14)
  • [Examples] Update Python version used in Prophet example to fix installation errors (#5101, @BenWilson2)
  • [Examples] Fix Kubernetes resources specification in MLflow Projects + Kubernetes example (#4948, @jianyuan)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· 3 min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.21.0!

MLflow 1.21.0 includes several major features and improvements:

Features:

  • [UI] Add a diff-only toggle to the runs table for filtering out columns with constant values (#4862, @marijncv)
  • [UI] Add a duration column to the runs table (#4840, @marijncv)
  • [UI] Display the default column sorting order in the runs table (#4847, @marijncv)
  • [UI] Add start_time and duration information to exported runs CSV (#4851, @marijncv)
  • [UI] Add lifecycle stage information to the run page (#4848, @marijncv)
  • [UI] Collapse run page sections by default for space efficiency, limit artifact previews to 50MB (#4917, @dbczumar)
  • [Tracking] Introduce autologging capabilities for PaddlePaddle model training (#4751, @jinminhao)
  • [Tracking] Add an optional tags field to the CreateExperiment API (#4788, @dbczumar; #4795, @apurva-koti)
  • [Tracking] Add support for deleting artifacts from SFTP stores via the mlflow gc CLI (#4670, @afaul)
  • [Tracking] Support AzureDefaultCredential for authenticating with Azure artifact storage backends (#4002, @marijncv)
  • [Models] Upgrade the fastai model flavor to support fastai V2 (>=2.4.1) (#4715, @jinzhang21)
  • [Models] Introduce an mlflow.prophet model flavor for Prophet time series models (#4773, @BenWilson2)
  • [Models] Introduce a CLI for publishing MLflow Models to the SageMaker Model Registry (#4669, @jinnig)
  • [Models] Print a warning when inferred model dependencies are not available on PyPI (#4891, @dbczumar)
  • [Models, Projects] Add MLFLOW_CONDA_CREATE_ENV_CMD for customizing Conda environment creation (#4746, @giacomov)

Bug fixes and documentation updates:

  • [UI] Fix an issue where column selections made in the runs table were persisted across experiments (#4926, @sunishsheth2009)
  • [UI] Fix an issue where the text null was displayed in the runs table column ordering dropdown (#4924, @harupy)
  • [UI] Fix a bug causing the metric plot view to display NaN values upon click (#4858, @arpitjasa-db)
  • [Tracking] Fix a model load failure for paths containing spaces or special characters on UNIX systems (#4890, @BenWilson2)
  • [Tracking] Correct a migration issue that impacted usage of MLflow Tracking with SQL Server (#4880, @marijncv)
  • [Tracking] Spark datasource autologging tags now respect the maximum allowable size for MLflow Tracking (#4809, @dbczumar)
  • [Model Registry] Add previously-missing certificate sources for Model Registry REST API requests (#4731, @ericgosno91)
  • [Model Registry] Throw an exception when users supply invalid Model Registry URIs for Databricks (#4877, @yunpark93)
  • [Scoring] Fix a schema enforcement error that incorrectly cast date-like strings to datetime objects (#4902, @wentinghu)
  • [Docs] Expand the documentation for the MLflow Skinny Client (#4113, @eedeleon)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· One min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.20.2!

MLflow 1.20.2 is a patch release containing the following features and bug fixes:

Features:

  • Enabled auto dependency inference in spark flavor in autologging (#4759, @harupy)

Bug fixes and documentation updates:

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· 2 min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.20.0!

Note: The MLflow R package for 1.20.0 is not yet available but will be in a week because CRAN's submission system will be offline until September 1st.

In addition to bug and documentation fixes, MLflow 1.20.0 includes the following features and improvements:

  • Autologging for scikit-learn now records post training metrics when scikit-learn evaluation APIs, such as sklearn.metrics.mean_squared_error, are called (#4491, #4628 #4638, @WeichenXu123)
  • Autologging for PySpark ML now records post training metrics when model evaluation APIs, such as Evaluator.evaluate(), are called (#4686, @WeichenXu123)
  • Add pip_requirements and extra_pip_requirements to mlflow.*.log_model and mlflow.*.save_model for directly specifying the pip requirements of the model to log / save (#4519, #4577, #4602, @harupy)
  • Added stdMetrics entries to the training metrics recorded during PySpark CrossValidator autologging (#4672, @WeichenXu123)
  • MLflow UI updates:
    1. Improved scalability of the parallel coordinates plot for run performance comparison,
    2. Added support for filtering runs based on their start time on the experiment page,
    3. Added a dropdown for runs table column sorting on the experiment page,
    4. Upgraded the AG Grid plugin, which is used for runs table loading on the experiment page, to version 25.0.0,
    5. Fixed a bug on the experiment page that caused the metrics section of the runs table to collapse when selecting columns from other table sections (#4712, @dbczumar)
  • Added support for distributed execution to autologging for PyTorch Lightning (#4717, @dbczumar)
  • Expanded R support for Model Registry functionality (#4527, @bramrodenburg)
  • Added model scoring server support for defining custom prediction response wrappers (#4611, @Ark-kun)
  • mlflow.*.log_model and mlflow.*.save_model now automatically infer the pip requirements of the model to log / save based on the current software environment (#4518, @harupy)
  • Introduced support for running Sagemaker Batch Transform jobs with MLflow Models (#4410, #4589, @YQ-Wang)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.

· One min read
MLflow maintainers

We are happy to announce the availability of MLflow 1.20.1!

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

  • Avoid calling importlib_metadata.packages_distributions upon mlflow.utils.requirements_utils import (#4741, @dbczumar)
  • Avoid depending on importlib_metadata==4.7.0 (#4740, @dbczumar)

For a comprehensive list of changes, see the release change log, and check out the latest documentation on mlflow.org.