Mlflow integration callback (#8016)

* Add MLflow integration class

Add integration code for MLflow in integrations.py along with the code
that checks that MLflow is installed.

* Add MLflowCallback import

Add import of MLflowCallback in trainer.py

* Handle model argument

Allow the callback to handle model argument and store model config items as hyperparameters.

* Log parameters to MLflow in batches

MLflow cannot log more than a hundred parameters at once.
Code added to split the parameters into batches of 100 items and log the batches one by one.

* Fix style

* Add docs on MLflow callback

* Fix issue with unfinished runs

The "fluent" api used in MLflow integration allows only one run to be active at any given moment. If the Trainer is disposed off and a new one is created, but the training is not finished, it will refuse to log the results when the next trainer is created.

* Add MLflow integration class

Add integration code for MLflow in integrations.py along with the code
that checks that MLflow is installed.

* Add MLflowCallback import

Add import of MLflowCallback in trainer.py

* Handle model argument

Allow the callback to handle model argument and store model config items as hyperparameters.

* Log parameters to MLflow in batches

MLflow cannot log more than a hundred parameters at once.
Code added to split the parameters into batches of 100 items and log the batches one by one.

* Fix style

* Add docs on MLflow callback

* Fix issue with unfinished runs

The "fluent" api used in MLflow integration allows only one run to be active at any given moment. If the Trainer is disposed off and a new one is created, but the training is not finished, it will refuse to log the results when the next trainer is created.
This commit is contained in:
noise-field
2020-10-26 16:41:58 +03:00
committed by GitHub
parent 8be9cb0aef
commit c48b16b8da
3 changed files with 99 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ from .integrations import (
default_hp_search_backend,
hp_params,
is_comet_available,
is_mlflow_available,
is_optuna_available,
is_ray_available,
is_tensorboard_available,
@@ -139,6 +140,11 @@ if is_comet_available():
DEFAULT_CALLBACKS.append(CometCallback)
if is_mlflow_available():
from .integrations import MLflowCallback
DEFAULT_CALLBACKS.append(MLflowCallback)
if is_optuna_available():
import optuna