探索机器学习的持续集成(CI)。学习如何自动化测试、验证数据,Ultralytics ,实现稳健的机器学习运维(MLOps)。
持续集成(CI)是现代软件工程中的基础实践,开发人员会频繁将代码变更合并到中央代码库,从而触发自动构建和测试流程。 在机器学习(ML)这一专业领域,CI不仅涵盖标准代码验证,更延伸至数据管道、模型架构及训练配置的验证。通过在生命周期早期检测集成错误、语法缺陷和性能退化,团队能够维护稳健的代码库,并加速实验性研究向生产级计算机视觉应用的转化。
传统持续集成管道侧重于软件编译和单元测试运行,而以机器学习为核心的持续集成工作流必须应对概率系统的独特复杂性。单个超参数的变更或数据预处理脚本的修改都可能极大改变最终模型的行为。因此,稳健的持续集成策略确保每次代码或数据更新都能自动对照既定基准进行验证。
该流程是机器学习运维(MLOps)的关键组成部分,如同安全网般防止性能下降。高效的AI项目持续集成(CI)管道通常包含:
在可靠性与安全性至关重要的行业中,实施持续集成至关重要。
区分持续集成与开发生命周期中相关概念至关重要。
开发者利用各种工具来协调这些管道。通用平台如GitHub Actions或Jenkins常用于在代码提交时触发工作流。然而,管理大型数据集和模型版本控制通常需要专用工具。
Ultralytics 作为中央枢纽,可与持续集成(CI)工作流协同运作。该平台支持团队管理数据集、track 实验并可视化性能指标。当CI管道成功训练出新的YOLO26模型时,训练结果可直接记录至平台,从而提供项目健康状况的集中视图,并促进数据科学家之间的协作。
在持续集成管道中,您通常需要验证模型能否正确加载并执行推理,且不出现错误。以下Python 脚本演示了一种简单的"基本功能检查",可在代码推送到仓库时自动运行。
from ultralytics import YOLO
# Load the YOLO26 model (using the nano version for speed in CI tests)
model = YOLO("yolo26n.pt")
# Perform inference on a dummy image or a standard test asset
# 'bus.jpg' is a standard asset included in the package
results = model("bus.jpg")
# Assert that detections were made to ensure the pipeline isn't broken
# If len(results[0].boxes) is 0, something might be wrong with the model or input
assert len(results[0].boxes) > 0, "CI Test Failed: No objects detected!"
print("CI Test Passed: Model loaded and inference successful.")
本脚本利用了 ultralytics 用于加载轻量级模型并验证其功能符合预期的测试包。在生产级持续集成环境中,这将作为更大测试套件的一部分,该套件会利用诸如
Pytest 确保全面覆盖。