跳至内容

MLflow 集成用于Ultralytics YOLO

MLflow 生态系统

导言

Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.

本文档页面全面介绍了如何为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 支持在整个训练过程中记录各种指标、参数和工件:

  • Metrics Logging: Tracks metrics at the end of each epoch and upon training completion.
  • 参数记录:记录训练过程中使用的所有参数。
  • 工件日志:在训练后保存权重和配置文件等模型工件。

更多详细信息,请访问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 文档。

📅 Created 11 months ago ✏️ Updated 28 days ago

评论