MLflow 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