深圳尤洛视觉
深圳
立即加入

使用 MLflow 集成记录 Ultralytics YOLO 实验

Abirami Vina

4 分钟阅读

2024年12月30日

探索 MLflow 的集成和日志记录如何提升您的 Ultralytics YOLO 实验,从而为计算机视觉应用实现卓越的跟踪。

您可以将计算机视觉项目视为一个拼图游戏。本质上,您通过拼凑拼图的各个部分来教导机器理解视觉数据,例如收集数据集、训练模型和部署模型。当一切都匹配时,您将获得一个可以有效地分析和理解图像和视频的系统。

但是,就像一个真正的难题一样,并非计算机视觉项目的每个部分都是直接的。诸如实验跟踪(记录您的设置、配置和数据)和日志记录(捕获结果和性能指标)之类的任务会花费大量时间和精力。虽然这些步骤是改进和完善计算机视觉模型的关键,但有时会让人感到瓶颈。

这就是 Ultralytics YOLO 模型及其与 MLflow 集成发挥作用的地方。 像 Ultralytics YOLO11 这样的模型支持广泛的计算机视觉任务,包括目标检测、实例分割和图像分类。 这些功能可以创建令人兴奋的计算机视觉应用程序。 选择依赖像 MLflow 集成这样的集成,可以让视觉工程师专注于模型本身,而不是陷入细节。 

特别是,MLflow 集成通过记录整个训练过程中的各种指标、参数和工件来简化流程。在本文中,我们将探讨 MLflow 集成的工作原理、优势以及如何使用它来简化您的 Ultralytics YOLO 工作流程。

什么是MLflow?

MLflow 是一个由 Databricks 开发的开源平台,旨在简化和管理整个机器学习生命周期。它涵盖了机器学习模型的开发、部署和维护过程。 

MLflow 包括以下关键组件:

  • 实验跟踪:此组件侧重于记录每次模型训练运行的重要细节,如模型设置、结果和文件。它可以帮助您比较模型,了解更改如何影响性能,并找到最佳模型。
  • 模型注册表:它就像一个用于存储模型的系统,您可以在其中跟踪不同的版本,并按测试、暂存和生产等阶段对它们进行组织。
  • 项目打包: MLflow 可以轻松地将您的机器学习项目(包括代码、设置和所需工具)捆绑在一起,以便可以在团队和环境中一致地共享和使用它们。
  • 模型部署:MLflow 提供了将训练好的模型快速部署到工作站或 AWS 和 Azure 等云平台上的工具,使它们可以立即投入实际使用。
__wf_reserved_inherit
图 1. MLflow 的组成部分。

MLflow 的组件使机器学习过程更易于管理,效率更高。通过这种集成,Ultralytics 可以使用 MLflow 的实验跟踪功能来记录训练 YOLO 模型时的参数、指标和工件。它可以轻松跟踪和比较不同的 YOLO 模型版本。

MLflow 集成简化了训练

既然我们已经了解了什么是 MLflow,接下来让我们深入了解 MLflow 集成的细节以及它提供的功能。 

MLflow 集成旨在通过自动跟踪和记录计算机视觉实验的重要方面,使训练过程更加高效和有组织。 它促进三种主要的日志记录类型:指标、参数和工件。

以下是每种日志记录类型的详细介绍:

  • 指标日志记录: 指标是衡量模型在训练期间性能的定量值。例如,在每个 epoch(完整遍历数据集)结束时,会跟踪诸如 准确率、精确率、召回率或损失等指标。
  • 参数记录: 参数是在模型训练开始之前定义的设置,例如学习率、批量大小(在一个训练步骤中处理的样本数)和epoch数。这些参数会显着影响模型的行为和性能。
  • 工件日志记录:工件是在训练期间生成的输出或文件。这包括诸如模型权重(模型在训练期间学习的数值)、配置文件(存储训练设置)和其他相关数据之类的基本文件。
__wf_reserved_inherit
图 2. MLflow 集成的关键日志记录功能。图片由作者提供。

MLflow 集成的工作原理

您可以查阅 Ultralytics 文档,获取有关启用 MLflow 集成的分步说明。设置完成后,该集成会自动跟踪和记录您的训练实验的关键细节,如上所述。这消除了手动跟踪的需要,并帮助您专注于改进您的模型。

通过 MLflow 集成,你所有的训练运行都存储在一个地方,从而更容易比较结果和评估不同的配置。通过比较记录的结果,你可以确定性能最佳的配置,并使用这些见解来增强你的模型。这确保了你的工作流程更高效、文档更完善且可重现。

具体来说,每个训练会话都组织成一个实验,该实验充当多个运行的容器。在实验中,您可以查看所有相关的运行,并排比较它们的性能,以及分析不同配置之间的趋势。 

例如,如果您正在使用 Ultralytics YOLOv8 测试各种学习率或批量大小,则所有相关的运行都将分组在同一实验下,以便于比较和分析,如下所示。

__wf_reserved_inherit
图 3. 您可以使用 MLflow 集成来查看实验。

同时,在单独的运行级别,MLflow 提供了对特定训练会话的详细见解。您可以查看诸如每个 epoch 的准确率、损失和精确率等指标,检查使用的训练参数(例如,批量大小和学习率),并访问生成的工件,如模型权重和配置文件。这些详细信息以有组织的形式存储,从而可以轻松地重新访问或重现任何运行。

选择 MLflow 集成:为何它如此出色

当您阅读Ultralytics 文档并探索可用的集成时,您可能会问自己:MLflow 集成有何独特之处?为什么我应该选择它来用于我的工作流程?

TensorBoard等集成也提供了用于跟踪指标和可视化结果的工具,因此了解使MLflow集成脱颖而出的独特品质非常重要。 

以下是 MLflow 可能是您的 YOLO 项目 的理想选择的原因:

  • 用户友好的界面: MLflow 仪表板可以轻松查看实验、比较运行和分析结果,帮助您快速确定性能最佳的配置。
  • 自定义指标记录: 除了标准指标外,视觉工程师还可以记录自定义指标,从而能够根据其项目需求进行更深入的分析。
  • 支持多语言工作流程: MLflow 与多种编程语言兼容,包括 Python、R 和 Java,有助于集成到各种机器学习管道中。

YOLO11 和 MLflow 集成的实际应用

为了更全面地了解何时可以使用MLflow集成,让我们考虑一个 医疗保健领域的AI应用,您需要在其中训练YOLO11来检测X射线或CT扫描图像中的肿瘤。 

在这种情况下,数据集将由带标注的医学图像组成。您需要尝试各种配置,例如调整学习率、批量大小和图像预处理技术,以实现最佳准确率。由于医疗保健领域的风险很高,精度和可靠性至关重要,因此手动跟踪每个实验可能会很快变得难以管理。

__wf_reserved_inherit
图 4. 使用 Ultralytics YOLO11 检测肿瘤。

MLflow 集成通过自动记录每个实验的参数、指标和工件来解决这一挑战。 例如,如果您修改学习率或应用新的增强策略,MLflow 会记录这些更改以及性能指标。 此外,MLflow 还会保存训练好的模型权重和配置,确保可以轻松地重现和部署成功的模型。 

这只是 MLflow 集成如何增强视觉 AI 应用中实验管理的一个例子。相同的功能适用于其他计算机视觉应用,包括:

  • 自动驾驶:YOLO11可用于实时检测和分类行人、车辆和交通标志,以提高自动驾驶系统的安全性和效率。
  • 零售分析:物体检测模型可以通过分析视频流中的店内活动来监控客户行为、跟踪产品摆放并优化库存。
  • 安全和监控: 可以训练模型来检测敏感区域的异常情况或监控实时活动,以提高安全性。

MLflow 集成的优势

MLflow 与 YOLO 模型 的集成使管理机器学习实验变得更加容易和高效。 通过自动化关键任务并保持一切井井有条,您可以专注于构建和改进模型。 以下是主要优势:

  • 可扩展以适应大型项目:该平台可以高效地处理多个实验和模型,使其适合大型团队和复杂的工作流程。
  • 详细的实验历史记录:该平台维护完整的实验历史记录,使您可以回顾过去的运行,分析以前的配置,并从早期的结果中学习。
  • 禁用和重置选项:MLflow日志记录可以在不需要时轻松禁用,并且设置可以重置为默认值,从而提供适应不同工作流程需求的灵活性。

主要要点

MLflow 集成使管理和优化 Ultralytics YOLO 实验变得更加容易和高效。 通过自动跟踪参数、指标和工件等关键细节,它简化了流程,并消除了手动实验管理的麻烦。 

无论您是从事肿瘤检测等医疗保健解决方案、改进自动驾驶系统,还是增强零售分析,此集成都有助于保持一切井井有条且可重现。凭借其直观的界面和灵活性,MLflow 使开发人员能够专注于构建更好的模型,并推动 Vision AI 应用的创新。

加入我们的社区,并查看我们的GitHub仓库,以了解关于人工智能的更多信息。您还可以在我们的解决方案页面上探索计算机视觉在制造业中的应用人工智能在自动驾驶汽车中的应用

让我们一起构建人工智能的未来!

开启您的机器学习未来之旅

免费开始
链接已复制到剪贴板