跳转至内容

Ultralytics YOLO 的 MLflow 集成

MLflow 生态系统

简介

实验日志记录是 机器学习 工作流程的一个关键方面,它可以跟踪各种指标、参数和工件。它有助于提高模型的可重复性、调试问题和提高模型性能。以其实时对象检测功能而闻名的 Ultralytics YOLO 现在提供与 MLflow 的集成,MLflow 是一个用于完整机器学习生命周期管理的开源平台。

此文档页面是关于为您的 Ultralytics YOLO 项目设置和使用 MLflow 日志记录功能的综合指南。

什么是 MLflow?

MLflow 是由 Databricks 开发的开源平台,用于管理端到端的机器学习生命周期。它包括用于跟踪实验、将代码打包到可重现的运行中以及共享和部署模型的工具。MLflow 旨在与任何机器学习库和编程语言配合使用。

功能

  • 指标记录: 记录每个 epoch 结束时和训练结束时的指标。
  • 参数日志记录: 记录训练中使用的所有参数。
  • Artifacts 日志记录: 在训练结束时记录模型 artifacts,包括权重和配置文件。

设置和先决条件

确保已安装 MLflow。 如果没有,请使用 pip 安装:

pip install mlflow

确保在 Ultralytics 设置中启用了 MLflow 日志记录。通常,这由设置控制。 mlflow 键。请参见 设置 页面以获取更多信息。

更新 Ultralytics MLflow 设置

在 Python 环境中,调用 update 上的 settings 方法来更改您的设置:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

如果您喜欢使用命令行界面,以下命令将允许您修改您的设置:

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

如何使用

命令

  1. 设置项目名称: 您可以通过环境变量设置项目名称:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    或使用 project=<project> 训练 YOLO 模型时的参数,即 yolo train project=my_project.

  2. 设置运行名称: 与设置项目名称类似,您可以通过环境变量设置运行名称:

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    或使用 name=<name> 训练 YOLO 模型时的参数,即 yolo train project=my_project name=my_name.

  3. 启动本地 MLflow 服务器:要开始跟踪,请使用:

    mlflow server --backend-store-uri runs/mlflow
    

    这将在以下位置启动本地服务器: http://127.0.0.1:5000 默认情况下,会将所有 mlflow 日志保存到“runs/mlflow”目录。要指定其他 URI,请设置 MLFLOW_TRACKING_URI 环境变量。

  4. 终止 MLflow 服务器实例:要停止所有正在运行的 MLflow 实例,请运行:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

日志记录

日志记录由以下对象负责 on_pretrain_routine_end, on_fit_epoch_endon_train_end 回调函数。这些函数在训练过程的各个阶段自动调用,并处理参数、指标和 artifacts 的日志记录。

实例

  1. 记录自定义指标:您可以通过修改以下内容来添加要记录的自定义指标 trainer.metrics 之前的字典 on_fit_epoch_end 被调用。

  2. 查看实验:要查看您的日志,请导航到您的 MLflow 服务器(通常 http://127.0.0.1:5000),然后选择你的实验并运行。 YOLO MLflow 实验

  3. 查看运行:Runs 是实验中的单个模型。点击 Run 可以查看 Run 详细信息,包括上传的 artifacts 和模型权重。 YOLO MLflow 运行

禁用 MLflow

要关闭 MLflow 日志记录:

yolo settings mlflow=False

结论

Ultralytics YOLO 的 MLflow 日志记录集成提供了一种简化的方式来跟踪您的机器学习实验。它可以帮助您有效地监控性能指标和管理工件,从而有助于稳健的模型开发和部署。有关更多详细信息,请访问 MLflow 官方文档

常见问题

如何设置带有 Ultralytics YOLO 的 MLflow 日志记录?

要设置 Ultralytics YOLO 的 MLflow 日志记录,首先需要确保已安装 MLflow。您可以使用 pip 安装它:

pip install mlflow

接下来,在 Ultralytics 设置中启用 MLflow 日志记录。这可以使用以下方式进行控制 mlflow 键。更多信息,请参见 设置指南.

更新 Ultralytics MLflow 设置

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

最后,启动一个本地 MLflow 服务器进行跟踪:

mlflow server --backend-store-uri runs/mlflow

使用 Ultralytics YOLO 时,我可以使用 MLflow 记录哪些指标和参数?

Ultralytics YOLO 与 MLflow 结合使用,支持记录整个训练过程中的各种指标、参数和工件:

  • 指标记录: 跟踪每个 epoch 结束时和训练完成后的指标。
  • 参数记录: 记录训练过程中使用的所有参数。
  • Artifacts 日志记录: 训练后保存模型 artifacts,如权重和配置文件。

有关更多详细信息,请访问 Ultralytics YOLO 跟踪文档

启用 MLflow 日志记录后,是否可以禁用它?

是的,您可以通过更新设置来禁用 Ultralytics YOLO 的 MLflow 日志记录。以下是使用 CLI 执行此操作的方法:

yolo settings mlflow=False

有关进一步的自定义和重置设置,请参阅设置指南

如何启动和停止用于 Ultralytics YOLO 跟踪的 MLflow 服务器?

要启动 MLflow 服务器以跟踪 Ultralytics YOLO 中的实验,请使用以下命令:

mlflow server --backend-store-uri runs/mlflow

此命令在以下位置启动本地服务器: http://127.0.0.1:5000 默认情况下。 如果您需要停止运行 MLflow 服务器实例,请使用以下 bash 命令:

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

有关更多命令选项,请参阅命令部分

将 MLflow 与 Ultralytics YOLO 集成以进行实验跟踪有哪些好处?

将 MLflow 与 Ultralytics YOLO 集成,为管理您的机器学习实验带来诸多好处:

  • 增强的实验跟踪: 轻松跟踪和比较不同的运行及其结果。
  • 提高模型可重复性: 通过记录所有参数和工件,确保您的实验可重现。
  • 性能监控: 可视化一段时间内的性能指标,以便做出数据驱动的决策来改进模型。
  • 精简的工作流程:自动执行日志记录过程,以便更多地关注模型开发,而不是手动跟踪。
  • 协同开发: 与团队成员分享实验结果,以实现更好的协作和知识共享。

要深入了解如何使用 Ultralytics YOLO 设置和利用 MLflow,请查阅Ultralytics YOLO 的 MLflow 集成文档。



📅 创建于 1 年前 ✏️ 更新于 4 个月前

评论