Changelog History
Page 3
-
v1.16.0 Changes
April 22, 2021MLflow 1.16.0 includes several major features and improvements:
๐ Features:
- โ Add
mlflow.pyspark.ml.autolog()
API for autologging ofpyspark.ml
estimators (#4228, @WeichenXu123) - Add
mlflow.catboost.log_model
,mlflow.catboost.save_model
,mlflow.catboost.load_model
APIs for CatBoost model persistence (#2417, @harupy) - 0๏ธโฃ Enable
mlflow.pyfunc.spark_udf
to use column names from model signature by default (#4236, @Loquats) - โ Add
datetime
data type for model signatures (#4241, @vperiyasamy) - Add
mlflow.sklearn.eval_and_log_metrics
API that computes and logs metrics for the given scikit-learn model and labeled dataset. (#4218, @alkispoly-db)
๐ Bug fixes and documentation updates:
- ๐ Fix a database migration error for PostgreSQL (#4211, @dolfinus)
- ๐ Fix autologging silent mode bugs (#4231, @dbczumar)
โก๏ธ Small bug fixes and doc updates (#4255, #4252, #4254, #4253, #4242, #4247, #4243, #4237, #4233, @harupy; #4225, @dmatrix; #4206, @mlflow-automation; #4207, @shrinath-suresh; #4264, @WeichenXu123; #3884, #3866, #3885, @ankan94; #4274, #4216, @dbczumar)
- โ Add
-
v1.15.0 Changes
March 26, 2021๐ MLflow 1.15.0 includes several features, bug fixes and improvements. Notably, it includes a number of improvements to MLflow autologging:
๐ Features:
- โ Add
silent=False
option to all autologging APIs, to allow suppressing MLflow warnings and logging statements during autologging setup and training (#4173, @dbczumar) - Add
disable_for_unsupported_versions=False
option to all autologging APIs, to disable autologging for versions of ML frameworks that have not been explicitly tested against the current version of the MLflow client (#4119, @WeichenXu123)
๐ Bug fixes:
- Autologged runs are now terminated when execution is interrupted via SIGINT (#4200, @dbczumar)
- The R
mlflow_get_experiment
API now returns the same tag structure asmlflow_list_experiments
andmlflow_get_run
(#4017, @lorenzwalthert) - ๐ Fix bug where
mlflow.tensorflow.autolog
would previously mutate the user-specified callbacks list when fittingtf.keras
models (#4195, @dbczumar) - ๐ Fix bug where SQL-backed MLflow tracking server initialization failed when using the MLflow skinny client (#4161, @eedeleon)
- Model version creation (e.g. via
mlflow.register_model
) now fails if the model version status is not READY (#4114, @ankit-db)
โก๏ธ Small bug fixes and doc updates (#4191, #4149, #4162, #4157, #4155, #4144, #4141, #4138, #4136, #4133, #3964, #4130, #4118, @harupy; #4152, @mlflow-automation; #4139, @WeichenXu123; #4193, @smurching; #4029, @architkulkarni; #4134, @xhochy; #4116, @wenleix; #4160, @wentinghu; #4203, #4184, #4167, @dbczumar)
- โ Add
-
v1.14.1 Changes
March 01, 2021๐ MLflow 1.14.1 is a patch release containing the following bug fix:
- ๐ Fix issues in handling flexible numpy datatypes in TensorSpec (#4147, @arjundc-db)
-
v1.14.0 Changes
February 18, 2021MLflow 1.14.0 includes several major features and improvements:
- ๐ MLflow's model inference APIs (
mlflow.pyfunc.predict
), built-in model serving tools (mlflow models serve
), and model signatures now support tensor inputs. In particular, MLflow now provides built-in support for scoring PyTorch, TensorFlow, Keras, ONNX, and Gluon models with tensor inputs. For more information, see https://mlflow.org/docs/latest/models.html#deploy-mlflow-models (#3808, #3894, #4084, #4068 @wentinghu; #4041 @tomasatdatabricks, #4099, @arjundc-db) - Add new
mlflow.shap.log_explainer
,mlflow.shap.load_explainer
APIs for logging and loadingshap.Explainer
instances (#3989, @vivekchettiar) - ๐ฆ The MLflow Python client is now available with a reduced dependency set via the
mlflow-skinny
PyPI package (#4049, @eedeleon) - โ Add new
RequestHeaderProvider
plugin interface for passing custom request headers with REST API requests made by the MLflow Python client (#4042, @jimmyxu-db) - 0๏ธโฃ
mlflow.keras.log_model
now saves models in the TensorFlow SavedModel format by default instead of the older Keras H5 format (#4043, @harupy) - ๐ฒ
mlflow_log_model
now supports logging MLeap models in R (#3819, @yitao-li) - Add
mlflow.pytorch.log_state_dict
,mlflow.pytorch.load_state_dict
for logging and loading PyTorch state dicts (#3705, @shrinath-suresh) mlflow gc
can now garbage-collect artifacts stored in S3 (#3958, @sklingel)
๐ Bug fixes and documentation updates:
- Enable autologging for TensorFlow estimators that extend
tensorflow.compat.v1.estimator.Estimator
(#4097, @mohamad-arabi) - ๐ Fix for universal autolog configs overriding integration-specific configs (#4093, @dbczumar)
- ๐ Allow
mlflow.models.infer_signature
to handle dataframes containingpandas.api.extensions.ExtensionDtype
(#4069, @caleboverman) - โช Fix bug where
mlflow_restore_run
doesn't propagate theclient
parameter tomlflow_get_run
(#4003, @yitao-li) - ๐ Fix bug where scoring on served model fails when request data contains a string that looks like URL and pandas version is later than 1.1.0 (#3921, @Secbone)
- Fix bug causing
mlflow_list_experiments
to fail listing experiments with tags (#3942, @lorenzwalthert) - ๐ Fix bug where metrics plots are computed from incorrect target values in scikit-learn autologging (#3993, @mtrencseni)
- โ Remove redundant / verbose Python event logging message in autologging (#3978, @dbczumar)
- Fix bug where
mlflow_load_model
doesn't load metadata associated to MLflow model flavor in R (#3872, @yitao-li) - Fix
mlflow.spark.log_model
,mlflow.spark.load_model
APIs on passthrough-enabled environments against ACL'd artifact locations (#3443, @smurching)
โก๏ธ Small bug fixes and doc updates (#4102, #4101, #4096, #4091, #4067, #4059, #4016, #4054, #4052, #4051, #4038, #3992, #3990, #3981, #3949, #3948, #3937, #3834, #3906, #3774, #3916, #3907, #3938, #3929, #3900, #3902, #3899, #3901, #3891, #3889, @harupy; #4014, #4001, @dmatrix; #4028, #3957, @dbczumar; #3816, @lorenzwalthert; #3939, @pauldj54; #3740, @jkthompson; #4070, #3946, @jimmyxu-db; #3836, @t-henri; #3982, @neo-anderson; #3972, #3687, #3922, @eedeleon; #4044, @WeichenXu123; #4063, @yitao-li; #3976, @whiteh; #4110, @tomasatdatabricks; #4050, @apurva-koti; #4100, #4084, @wentinghu; #3947, @vperiyasamy; #4021, @trangevi; #3773, @ankan94; #4090, @jinzhang21; #3918, @danielfrg)
- ๐ MLflow's model inference APIs (
-
v1.13.1 Changes
December 30, 2020๐ MLflow 1.13.1 is a patch release containing bug fixes and small changes:
- ๐ Fix bug causing Spark autologging to ignore configuration options specified by
mlflow.autolog()
(#3917, @dbczumar) - ๐ Fix bugs causing metrics to be dropped during TensorFlow autologging (#3913, #3914, @dbczumar)
- ๐ Fix incorrect value of optimizer name parameter in autologging PyTorch Lightning (#3901, @harupy)
- Fix model registry database
allow_null_for_run_id
migration failure affecting MySQL databases (#3836, @t-henri) - Fix failure in
transition_model_version_stage
when uncanonical stage name is passed (#3929, @harupy) - ๐ Fix an undefined variable error causing AzureML model deployment to fail (#3922, @eedeleon)
- Reclassify scikit-learn as a pip dependency in MLflow Model conda environments (#3896, @harupy)
- ๐ Fix experiment view crash and artifact view inconsistency caused by artifact URIs with redundant slashes (#3928, @dbczumar)
- ๐ Fix bug causing Spark autologging to ignore configuration options specified by
-
v1.13 Changes
December 22, 2020MLflow 1.13 includes several major features and improvements:
๐ Features:
๐ New fluent APIs for logging in-memory objects as artifacts:
- โ Add
mlflow.log_text
which logs text as an artifact (#3678, @harupy) - โ Add
mlflow.log_dict
which logs a dictionary as an artifact (#3685, @harupy) - โ Add
mlflow.log_figure
which logs a figure object as an artifact (#3707, @harupy) - โ Add
mlflow.log_image
which logs an image object as an artifact (#3728, @harupy)
โก๏ธ UI updates / fixes (#3867, @smurching):
- โ Add model version link in compact experiment table view
- โ Add logged/registered model links in experiment runs page view
- โจ Enhance artifact viewer for MLflow models
- ๐ป Model registry UI settings are now persisted across browser sessions
- โ Add model version
description
field to model version table
Autologging enhancements:
- ๐ Improve robustness of autologging integrations to exceptions (#3682, #3815, dbczumar; #3860, @mohamad-arabi; #3854, #3855, #3861, @harupy)
- โ Add
disable
configuration option for autologging (#3682, #3815, dbczumar; #3838, @mohamad-arabi; #3854, #3855, #3861, @harupy) - โ Add
exclusive
configuration option for autologging (#3851, @apurva-koti; #3869, @dbczumar) - โ Add
log_models
configuration option for autologging (#3663, @mohamad-arabi) - Set tags on autologged runs for easy identification (and add tags to start_run) (#3847, @dbczumar)
More features and improvements:
- ๐ Allow Keras models to be saved with
SavedModel
format (#3552, @skylarbpayne) - โ Add support for
statsmodels
flavor (#3304, @olbapjose) - โ Add support for nested-run in mlflow R client (#3765, @yitao-li)
- ๐ Deploying a model using
mlflow.azureml.deploy
now integrates better with the AzureML tracking/registry. (#3419, @trangevi) - โก๏ธ Update schema enforcement to handle integers with missing values (#3798, @tomasatdatabricks)
๐ Bug fixes and documentation updates:
- When running an MLflow Project on Databricks, the version of MLflow installed on the Databricks cluster will now match the version used to run the Project (#3880, @FlorisHoogenboom)
- ๐ Fix bug where metrics are not logged for single-epoch
tf.keras
training sessions (#3853, @dbczumar) - ๐ฒ Reject boolean types when logging MLflow metrics (#3822, @HCoban)
- ๐ Fix alignment of Keras /
tf.Keras
metric history entries wheninitial_epoch
is different from zero. (#3575, @garciparedes) - ๐ Fix bugs in autologging integrations for newer versions of TensorFlow and Keras (#3735, @dbczumar)
- โฌ๏ธ Drop global
filterwwarnings
module at import time (#3621, @jogo) - ๐ Fix bug that caused preexisting Python loggers to be disabled when using MLflow with the SQLAlchemyStore (#3653, @arthury1n)
- ๐ Fix
h5py
library incompatibility for exported Keras models (#3667, @tomasatdatabricks)
โก๏ธ Small changes, bug fixes and doc updates (#3887, #3882, #3845, #3833, #3830, #3828, #3826, #3825, #3800, #3809, #3807, #3786, #3794, #3731, #3776, #3760, #3771, #3754, #3750, #3749, #3747, #3736, #3701, #3699, #3698, #3658, #3675, @harupy; #3723, @mohamad-arabi; #3650, #3655, @shrinath-suresh; #3850, #3753, #3725, @dmatrix; ##3867, #3670, #3664, @smurching; #3681, @sueann; #3619, @andrewnitu; #3837, @javierluraschi; #3721, @szczeles; #3653, @arthury1n; #3883, #3874, #3870, #3877, #3878, #3815, #3859, #3844, #3703, @dbczumar; #3768, @wentinghu; #3784, @HCoban; #3643, #3649, @arjundc-db; #3864, @AveshCSingh, #3756, @yitao-li)
- โ Add
-
v1.12.1 Changes
November 19, 2020๐ MLflow 1.12.1 is a patch release containing bug fixes and small changes:
-
v1.12.0 Changes
November 10, 2020MLflow 1.12.0 includes several major features and improvements, in particular a number of improvements to autologging and MLflow's Pytorch integrations:
๐ Features:
PyTorch:
mlflow.pytorch.log_model
,mlflow.pytorch.load_model
now support logging/loading TorchScript models (#3557, @shrinath-suresh)- ๐
mlflow.pytorch.log_model
supports passingrequirements_file
&extra_files
arguments to log additional artifacts along with a model (#3436, @shrinath-suresh)
Autologging:
- โ Add universal
mlflow.autolog
which enables autologging for all supported integrations (#3561, #3590, @andrewnitu) - โ Add
mlflow.pytorch.autolog
API for automatic logging of metrics, params, and models from Pytorch Lightning training (#3601, @shrinath-suresh, #3636, @karthik-77). This API is also enabled bymlflow.autolog
. - ๐ฒ Scikit-learn, XGBoost, and LightGBM autologging now support logging model signatures and input examples (#3386, #3403, #3449, @andrewnitu)
- ๐ฒ
mlflow.sklearn.autolog
now supports logging metrics (e.g. accuracy) and plots (e.g. confusion matrix heat map) (#3423, #3327, @willzhan-db, @harupy)
More features and improvements:
- โ Add
mlflow.shap.log_explanation
for logging model explanations generated by SHAP (#3513, @harupy) log_model
andcreate_model_version
now supports anawait_creation_for
argument (#3376, @andychow-db)- Put preview paths before non-preview paths for backwards compatibility (#3648, @sueann)
- Clean up model registry endpoint and client method definitions (#3610, @sueann)
- ๐ MLflow deployments plugin now supports 'predict' CLI command (#3597, @shrinath-suresh)
- ๐ Support H2O for R (#3416, @yitao-li)
- Add
MLFLOW_S3_IGNORE_TLS
environment variable to enable skipping TLS verification of S3 endpoint (#3345, @dolfinus)
๐ Bug fixes and documentation updates:
- ๐ Ensure that results are synced across distributed processes if ddp enabled (no-op else) (#3651, @SeanNaren)
- โ Remove optimizer step override to ensure that all accelerator cases are covered by base module (#3635, @SeanNaren)
- ๐ Fix
AttributeError
in keras autologgging (#3611, @sephib) - Scikit-learn autologging: Exclude feature extraction / selection estimator (#3600, @dbczumar)
- Scikit-learn autologging: Fix behavior when a child and its parent are both patched (#3582, @dbczumar)
- ๐ Fix a bug where
lightgbm.Dataset(None)
fails after runningmlflow.lightgbm.autolog
(#3594, @harupy) - ๐ Fix a bug where
xgboost.DMatrix(None)
fails after runningmlflow.xgboost.autolog
(#3584, @harupy) - ๐ณ Pass
docker_args
in non-synchronous mlflow project runs (#3563, @alfozan) - Fix a bug of
FTPArtifactRepository.log_artifacts
withartifact_path
keyword argument (issue #3388) (#3391, @kzm4269) - Exclude preprocessing & imputation steps from scikit-learn autologging (#3491, @dbczumar)
- ๐ Fix duplicate stderr logging during artifact logging and project execution in the R client (#3145, @yitao-li)
- Don't call
atexit.register(_flush_queue)
in__main__
scope ofmlflow/tensorflow.py
(#3410, @harupy) - ๐ Fix for restarting terminated run not setting status correctly (#3329, @apurva-koti)
- ๐ Fix model version run_link URL for some Databricks regions (#3417, @sueann)
- Skip JSON validation when endpoint is not MLflow REST API (#3405, @harupy)
- ๐ Document
mlflow-torchserve
plugin (#3634, @karthik-77) - โ Add
mlflow-elasticsearchstore
to the doc (#3462, @AxelVivien25) - โ Add code snippets for fluent and MlflowClient APIs (#3385, #3437, #3489 #3573, @dmatrix)
- Document
mlflow-yarn
backend (#3373, @fhoering) - ๐ Fix a breakage in loading Tensorflow and Keras models (#3667, @tomasatdatabricks)
โก๏ธ Small bug fixes and doc updates:
#3607, #3616, #3534, #3598, #3542, #3568, #3349, #3554, #3544, #3541, #3533, #3535, #3516, #3512, #3497, #3522, #3521, #3492, #3502, #3434, #3422, #3394, #3387, #3294, #3324, #3654, @harupy; #3451, @jgc128; #3638, #3632, #3608, #3452, #3399, @shrinath-suresh; #3495, #3459, #3662, #3668, #3670 @smurching; #3488, @edgan8; #3639, @karthik-77; #3589, #3444, #3276, @lorenzwalthert; #3538, #3506, #3509, #3507, #3510, #3508, @rahulporuri; #3504, @sbrugman; #3486, #3466, @apurva-koti; #3477, @juntai-zheng; #3617, #3609, #3605, #3603, #3560, @dbczumar; #3411, @danielvdende; #3377, @willzhan-db; #3420, #3404, @andrewnitu; #3591, @mateiz; #3465, @abawchen; #3543, @emptalk; #3302, @bramrodenburg; #3468, @ghisvail; #3496, @extrospective; #3549, #3501, #3435, @yitao-li; #3243, @OlivierBondu; #3439, @andrewnitu; #3651, #3635 @SeanNaren, #3470, @ankit-db
-
v1.11.0 Changes
August 31, 2020MLflow 1.11.0 includes several major features and improvements:
๐ Features:
- ๐ New
mlflow.sklearn.autolog()
API for automatic logging of metrics, params, and models from scikit-learn model training (#3287, @harupy; #3323, #3358 @dbczumar) - ๐ Registered model & model version creation APIs now support specifying an initial
description
(#3271, @sueann) - ๐ฒ The R
mlflow_log_model
andmlflow_load_model
APIs now support XGBoost models (#3085, @lorenzwalthert) - โ New
mlflow.list_run_infos
fluent API for listing run metadata (#3183, @trangevi) - โ Added section for visualizing and comparing model schemas to model version and model-version-comparison UIs (#3209, @zhidongqu-db)
- โจ Enhanced support for using the model registry across Databricks workspaces: support for registering models to a Databricks workspace from outside the workspace (#3119, @sueann), tracking run-lineage of these models (#3128, #3164, @ankitmathur-db; #3187, @harupy), and calling
mlflow.<flavor>.load_model
against remote Databricks model registries (#3330, @sueann) - ๐ป UI support for setting/deleting registered model and model version tags (#3187, @harupy)
- ๐ป UI support for archiving existing staging/production versions of a model when transitioning a new model version to staging/production (#3134, @harupy)
๐ Bug fixes and documentation updates:
- ๐ Fixed parsing of MLflow project parameter values containing'=' (#3347, @dbczumar)
- ๐ Fixed a bug preventing listing of WASBS artifacts on the latest version of Azure Blob Storage (12.4.0) (#3348, @dbczumar)
- ๐ Fixed a bug where artifact locations become malformed when using an SFTP file store in Windows (#3168, @harupy)
- ๐ Fixed bug where
list_artifacts
returned incorrect results on GCS, preventing e.g. loading SparkML models from GCS (#3242, @santosh1994) - Writing and reading artifacts via
MlflowClient
to a DBFS location in a Databricks tracking server specified through thetracking_uri
parameter during the initialization ofMlflowClient
now works properly (#3220, @sueann) - ๐ Fixed bug where
FTPArtifactRepository
returned artifact locations as absolute paths, rather than paths relative to the artifact repository root (#3210, @shaneing), and bug where callinglog_artifacts
against an FTP artifact location copied the logged directory itself into the FTP location, rather than the contents of the directory. - ๐ Fixed bug where Databricks project execution failed due to passing of GET request params as part of the request body rather than as query parameters (#2947, @cdemonchy-pro)
- ๐ Fix bug where artifact viewer did not correctly render PDFs in MLflow 1.10 (#3172, @ankitmathur-db)
- ๐ Fixed parsing of
order_by
arguments to MLflow search APIs when ordering by fields whose names contain spaces (#3118, @jdlesage) - ๐ Fixed bug where MLflow model schema enforcement raised exceptions when validating string columns using pandas >= 1.0 (#3130, @harupy)
- ๐ Fixed bug where
mlflow.spark.log_model
did not save model signature and input examples (#3151, @harupy) - ๐ Fixed bug in runs UI where tags table did not reflect deletion of tags. (#3135, @ParseDark)
- โ Added example illustrating the use of RAPIDS with MLFlow (#3028, @drobison00)
โก๏ธ Small bug fixes and doc updates (#3326, #3344, #3314, #3289, #3225, #3288, #3279, #3265, #3263, #3260, #3255, #3267, #3266, #3264, #3256, #3253, #3231, #3245, #3191, #3238, #3192, #3188, #3189, #3180, #3178, #3166, #3181, #3142, #3165, #2960, #3129, #3244, #3359 @harupy; #3236, #3141, @AveshCSingh; #3295, #3163, @arjundc-db; #3241, #3200, @zhidongqu-db; #3338, #3275, @sueann; #3020, @magnus-m; #3322, #3219, @dmatrix; #3341, #3179, #3355, #3360, #3363 @smurching; #3124, @jdlesage; #3232, #3146, @ankitmathur-db; #3140, @andreakress; #3174, #3133, @mlflow-automation; #3062, @cafeal; #3193, @tomasatdatabricks; 3115, @fhoering; #3328, @apurva-koti; #3046, @OlivierBondu; #3194, #3158, @dmatrix; #3250, @shivp950; #3259, @simonhessner; #3357 @dbczumar)
- ๐ New
-
v1.10.0 Changes
July 20, 2020๐ MLflow 1.10.0 includes several major features and improvements, in particular the release of several new model registry Python client APIs.
๐ Features:
MlflowClient.transition_model_version_stage
now supports anarchive_existing_versions
argument for archiving existing staging or production model versions when transitioning a new model version to staging or production (#3095, @harupy)- Added
set_registry_uri
,get_registry_uri
APIs. Setting the model registry URI causes fluent APIs likemlflow.register_model
to communicate with the model registry at the specified URI (#3072, @sueann) - Added paginated
MlflowClient.search_registered_models
API (#2939, #3023, #3027 @ankitmathur-db; #2966, @mparkhe) - โ Added syntax highlighting when viewing text files (YAML etc) in the MLflow runs UI (#3041, @harupy)
- โ Added REST API and Python client support for setting and deleting tags on model versions and registered models,
via the
MlflowClient.create_registered_model
,MlflowClient.create_model_version
,MlflowClient.set_registered_model_tag
,MlflowClient.set_model_version_tag
,MlflowClient.delete_registered_model_tag
, andMlflowClient.delete_model_version_tag
APIs (#3094, @zhidongqu-db)
๐ Bug fixes and documentation updates:
- โ Removed usage of deprecated
aws ecr get-login
command inmlflow.sagemaker
(#3036, @mrugeles) - ๐ Fixed bug where artifacts could not be viewed and downloaded from the artifact UI when using Azure Blob Storage (#3014, @Trollgeir)
- Databricks credentials are now propagated to the project subprocess when running MLflow projects within a notebook (#3035, @smurching)
- โ Added docs explaining how to fetching an MLflow model from the model registry (#3000, @andychow-db)
โก๏ธ Small bug fixes and doc updates (#3112, #3102, #3089, #3103, #3096, #3090, #3049, #3080, #3070, #3078, #3083, #3051, #3050, #2875, #2982, #2949, #3121 @harupy; #3082, @ankitmathur-db; #3084, #3019, @smurching)