YOLO Vision 2026:

ClearML 集成#

ClearML MLOps experiment tracking platform

关于 ClearML#

ClearML 是一个旨在简化机器学习工作流程并节省工程时间的开源 MLOps 平台。

  • 🔨 在实验管理器中跟踪每次 YOLOv5 训练运行。
  • 🔧 使用集成的 ClearML 数据版本控制工具管理版本并访问你的自定义训练数据
  • 🔦 使用 ClearML Agent 远程训练和监控 YOLOv5 运行任务。
  • 🔬 使用 ClearML 超参数优化找到最佳 mAP。
  • 🔭 使用 ClearML Serving,通过几条命令将训练好的YOLOv5 模型转换为 API

根据需要使用这些工具,可以只从实验管理器开始,也可以将所有工具串联起来构建完整流程。

🦾 设置环境#

ClearML 需要与服务器通信,以跟踪你的实验和数据。你有两个选项:

然后安装 clearml Python 软件包,并将 SDK 连接到你的服务器:

pip install clearml

Settings → Workspace → Create new credentials(ClearML UI 右上角)中生成凭据,然后运行:

clearml-init

按照提示操作即可。设置完成。

🚀 使用 ClearML 训练 YOLOv5#

要启用实验跟踪,请先安装 ClearML pip 软件包(如果尚未安装):

pip install clearml

这将启用与 YOLOv5 训练脚本的集成。之后的每次训练运行都会被 ClearML 实验管理器捕获并存储。

要自定义项目名称和任务名称,请将 --project--name 传递给 train.py。默认值为 YOLOv5Training。ClearML 使用 / 作为子项目分隔符,因此请避免在自定义项目名称中使用 /

python train.py --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

或者使用自定义名称:

python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

每次运行都会捕获:

  • 源代码和未提交的更改
  • 已安装的软件包
  • 超参数
  • 模型检查点(使用 --save-period nn 个 epoch 保存一次)
  • 控制台输出
  • 标量(mAP_0.5、mAP_0.5:0.95、精确率、召回率、损失、学习率)
  • 机器详细信息、运行时和创建日期
  • 生成的图表,例如标签相关图和混淆矩阵
  • 每个epoch对应的带边界框图像
  • 每个 epoch 对应的 Mosaic 可视化结果
  • 每个 epoch 对应的验证图像

所有内容都会显示在 ClearML UI 中,因此你可以在一个地方监控训练。添加自定义列(例如 mAP_0.5)即可按性能最佳的模型排序,也可以选择多个实验并排比较。

继续阅读,了解超参数优化和远程执行。

🔗 数据集版本管理#

将数据与代码分开进行版本控制,可以轻松获取最新版本并确保完全可复现。此仓库接受数据集版本 ID,在数据缺失时自动获取数据,并将该 ID 记录为任务参数,这样你始终知道每个实验使用了哪个数据集。

准备数据集#

YOLOv5 仓库通过 YAML 配置文件支持许多数据集。默认情况下,数据集会下载到相对于仓库根目录的 ../datasets 文件夹中。下载 coco128 后,文件夹结构如下:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

只要保留此结构,任何数据集都可以使用。

接下来,将数据集的 YAML 文件复制到数据集根文件夹中——ClearML 会读取此文件,以正确使用数据集。你可以按照示例布局编写自己的 YAML,并确保其中定义了 pathtraintestvalncnames

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml  # <---- HERE
        |_ LICENSE
        |_ README.txt

上传数据集#

要将数据集注册为带版本的 ClearML 数据集,请切换到其根文件夹并运行:

cd ../datasets/coco128
clearml-data sync --project YOLOv5 --name coco128 --folder .

clearml-data sync 是以下命令序列的简写,你也可以显式运行这些命令:

# Add --parent <parent_dataset_id> to base this version on a previous one.
# Duplicate files are not re-uploaded.
clearml-data create --name coco128 --project YOLOv5
clearml-data add --files .
clearml-data close

在 ClearML 数据集上训练#

注册数据集后,通过 ID 将训练指向该数据集:

python train.py --img 640 --batch 16 --epochs 3 --data clearml://YOUR_DATASET_ID --weights yolov5s.pt --cache

👀 超参数优化#

实验和数据完成版本控制后,你可以在此基础上继续构建。由于每个被跟踪的实验都会捕获完整环境——代码、已安装的软件包和配置——因此运行结果完全可复现。ClearML 允许你克隆实验、修改其参数并自动重新运行,这是超参数优化(HPO)的基础。

要在本地运行 HPO,请使用随附的脚本。首先确保实验管理器中存在训练任务——脚本会克隆该任务并调整其超参数。

utils/loggers/clearml/hpo.py 中填写模板任务 ID,然后运行:

# Install Optuna or change the optimizer to RandomSearch.
pip install optuna
python utils/loggers/clearml/hpo.py

task.execute_locally() 切换为 task.execute(),即可将作业推送到 ClearML 队列,供远程代理获取。

包含 YOLOv5 指标的 ClearML HPO 仪表板

🤯 远程执行(高级)#

在本地运行 HPO 很方便,但你通常会希望在更强大的硬件上运行实验,例如本地部署的 GPU 机器或云实例。这正是 ClearML Agent 的作用:

每个被跟踪的实验都包含在另一台机器上复现该实验所需的一切内容(已安装的软件包、未提交的更改和配置)。ClearML agent 监听队列、获取传入任务、重建环境、运行作业,并将标量和图表流式传回实验管理器。

使用以下命令将任意机器——云 VM、本地 GPU 设备或笔记本电脑——转换为 ClearML agent:

clearml-agent daemon --queue QUEUES_TO_LISTEN_TO [--docker]

克隆、编辑和入队#

运行代理后,你可以直接从 UI 为其分配工作:

  • 🪄 右键点击实验并将其克隆。
  • 🎯 编辑其超参数。
  • ⏳ 右键点击克隆的任务,并将其加入目标队列。

远程执行任务#

你也可以通过编程方式标记正在运行的脚本以进行远程执行:在 ClearML logger 实例化后添加 task.execute_remotely()。将突出显示的行添加到 train.py

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE
        # data_dict is None unless the user selected a ClearML dataset, in which case ClearML fills it in.
        data_dict = loggers.clearml.data_dict
# ...

完成此更改后,运行训练脚本时会执行到该行,打包代码,并将其发送到队列。

自动扩缩容工作节点#

ClearML 自带自动扩缩容器,当队列中有待处理实验时,它们会在 AWS、GCP 或 Azure 中启动远程机器,将其转换为 ClearML agent,并在工作完成后关闭这些机器——因此你只需为实际运行中的计算资源付费。

观看下面的入门视频:

观看视频

了解更多#

如需了解有关将 ClearML 与 Ultralytics 模型集成的更多信息,请参阅我们的 ClearML 集成指南,并探索如何结合其他实验跟踪工具来增强你的 MLOps 工作流

评论