深圳Yolo 视觉
深圳
立即加入

使用 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 模型时记录参数、指标和工件。这使得track 和比较不同的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集成与众不同的地方是什么?是什么让 MLflow 集成与众不同,为什么我的工作流程要选择它?

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

以下是 MLflow 成为YOLO 项目理想选择的原因:

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

YOLO11 和 MLflow 集成的实际应用

为了更全面地了解何时可以使用 MLflow 集成,让我们考虑一个医疗保健领域的人工智能应用,您需要训练YOLO11 来detect X 光或 CT 扫描图像中的肿瘤。 

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

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

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

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

  • 自动驾驶:YOLO11 可用于实时detect 和classify 行人、车辆和交通标志,以提高自动驾驶系统的安全性和效率。
  • 零售分析:物体检测模型可通过视频馈送对店内活动进行分析,从而监控顾客行为、track 产品摆放位置并优化库存。
  • 安全和监控:可对模型进行训练,以detect 异常情况或监控敏感区域的实时活动,从而提高安全性。

MLflow 集成的优势

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

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

主要要点

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

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

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

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

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

免费开始