跳至内容

MLflow 集成用于Ultralytics YOLO

MLflow 生态系统

导言

实验日志是机器学习工作流的一个重要方面,它可以跟踪各种指标、参数和工件。它有助于增强模型的可重复性、调试问题并提高模型性能。 UltralyticsYOLO以实时对象检测功能著称的MLFlow,现在提供了与MLflow 的集成,MLflow 是一个用于完整机器学习生命周期管理的开源平台。

本文档页面全面介绍了如何为Ultralytics YOLO 项目设置和使用 MLflow 日志功能。

什么是 MLflow?

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

特点

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

设置和先决条件

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

pip install mlflow

确保在Ultralytics 设置中启用了 MLflow 日志。通常由以下设置控制 mflow 键。参见 设置 页面获取更多信息。

更新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 runs_dir='/path/to/runs'

# 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 回调函数。这些函数会在训练过程的各个阶段自动调用,并处理参数、指标和工件的日志记录。

实例

  1. 记录自定义指标:您可以通过修改 trainer.metrics 词典 on_fit_epoch_end 被称为

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

  3. 查看运行:运行是实验中的单个模型。点击运行可查看运行详情,包括上传的工件和模型权重。 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 runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

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

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

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

Ultralytics YOLO MLflow 支持在整个训练过程中记录各种指标、参数和工件:

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

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

启用 MLflow 日志后,是否可以将其禁用?

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

yolo settings mlflow=False

如需进一步自定义和重置设置,请参阅设置指南

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

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

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,请浏览MLflow Integration forUltralytics YOLO 文档。

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

评论