-------------------
MLflow 1.12.0 includes several major features and improvements, in particular a number of improvements to autologging and MLflow's Pytorch integrations:
Features:
~~~~~~~~~
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 by ``mlflow.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)
PyTorch:
- ``mlflow.pytorch.log_model``, ``mlflow.pytorch.load_model`` now support logging/loading TorchScript models (3557, shrinath-suresh)
- ``mlflow.pytorch.log_model`` supports passing ``requirements_file`` & ``extra_files`` arguments to log additional artifacts along with a model (3436, shrinath-suresh)
More features and improvements:
- Add ``mlflow.shap.log_explanation`` for logging model explanations generated by SHAP (3513, harupy)
- ``log_model`` and ``create_model_version`` now supports an ``await_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 running ``mlflow.lightgbm.autolog`` (3594, harupy)
- Fix a bug where ``xgboost.DMatrix(None)`` fails after running ``mlflow.xgboost.autolog`` (3584, harupy)
- Pass ``docker_args`` in non-synchronous mlflow project runs (3563, alfozan)
- Fix a bug of ``FTPArtifactRepository.log_artifacts`` with ``artifact_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 of ``mlflow/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)