ray.air.integrations.mlflow.MLflowLoggerCallback#

class ray.air.integrations.mlflow.MLflowLoggerCallback(tracking_uri: str | None = None, *, registry_uri: str | None = None, experiment_name: str | None = None, tags: Dict | None = None, tracking_token: str | None = None, save_artifact: bool = False)[源代码]#

基类:LoggerCallback

MLflow 记录器,用于自动记录 Tune 结果和配置到 MLflow。

MLflow (https://mlflow.org) 跟踪是一个用于记录和查询实验的开源库。这个 Ray Tune LoggerCallback 将信息(配置参数、训练结果和指标以及工件)发送到 MLflow 以进行自动实验跟踪。

请记住,回调将在驱动程序上打开一个 MLflow 会话,而不是在可训练对象上。因此,在可训练对象内部调用 mlflow.log_figure() 等 MLflow 函数是不可能的,因为在可训练对象上没有 MLflow 会话。如需更精细的控制,请使用 ray.air.integrations.mlflow.setup_mlflow()

参数:
  • tracking_uri – 用于管理实验和运行的跟踪URI。这可以是本地文件路径或远程服务器。此参数直接传递给mlflow初始化。在多节点设置中使用Tune时,请确保将其设置为远程服务器而不是本地文件路径。

  • registry_uri – 直接传递给 mlflow 初始化的注册表 URI。

  • experiment_name – 用于此 Tune 运行的实验名称。如果具有该名称的实验已经存在于 MLflow 中,它将被重用。如果没有,将使用该名称创建一个新实验。

  • tags – 一个可选的字符串键值对字典,用于在运行时设置标签

  • tracking_token – 用于与 MLflow 进行身份验证的跟踪令牌。

  • save_artifact – 如果设置为 True,将自动将 Tune local_dir 的整个内容作为工件保存到 MlFlow 中相应的运行中。

示例:

from ray.air.integrations.mlflow import MLflowLoggerCallback

tags = { "user_name" : "John",
         "git_commit_hash" : "abc123"}

tune.run(
    train_fn,
    config={
        # define search space here
        "parameter_1": tune.choice([1, 2, 3]),
        "parameter_2": tune.choice([4, 5, 6]),
    },
    callbacks=[MLflowLoggerCallback(
        experiment_name="experiment1",
        tags=tags,
        save_artifact=True)])

方法

get_state

获取回调的状态。

log_trial_restore

处理试验恢复时的日志记录。

log_trial_save

处理试验保存检查点时的日志记录。

on_checkpoint

在Tune保存检查点后调用。

on_experiment_end

在实验结束后且所有试验均已完成时调用。

on_step_begin

在每个调优循环步骤开始时调用。

on_step_end

在每个调优循环步骤结束时调用。

on_trial_recover

在一个试验实例失败(出错)后调用,但该试验已安排重试。

set_state

设置回调的状态。