深圳Yolo 视觉
深圳
立即加入
词汇表

持续集成(CI)

通过持续集成增强AI/ML工作流程。自动执行测试,提高代码质量,并轻松简化模型开发。

持续集成(CI)是一种基本的软件开发实践,开发人员经常将他们的 代码更改合并到共享的中央存储库中。与定期整合大规模更新不同,CI 鼓励 小规模的定期提交,从而触发自动构建和测试序列。在充满活力的 人工智能(AI)机器学习(ML)领域,这种做法是 基石 机器学习运营 (MLOps) 的基石。它可以确保代码、数据或 超参数不会破坏现有系统或降低模型性能。 系统或降低模型性能。

机器学习中 CI 的核心原则

CI 的主要目标是尽早detect ,这一概念通常被称为 "快速失败"。 快速"。该流程主要依靠 Git 等版本控制系统来 管理代码库。当开发人员推送变更时,CI 服务器(如 GitHub ActionsGitLab CIJenkins 等 CI 服务器会自动 自动生成一个全新的环境。

对于 ML 项目,这种环境通常使用 容器化工具,如 Docker等容器化工具,以确保开发、测试和生产的一致性。CI 管道会执行一系列检查:

  • 代码质量:运行精简器和静态分析,以保持编码标准。
  • 单元测试:验证单个函数和类的行为是否符合预期。
  • 数据验证:确保 培训数据符合预期模式和质量标准。 质量标准。
  • 模型评估:根据验证数据集运行训练有素的 验证数据集,以确保 准确率不低于规定的阈值。

实施性能检查

ML 的 CI 的一个重要方面是防止 "无声故障",即代码运行时没有错误,但模型的 智能降低。要做到这一点 模型测试直接集成到 CI 工作流中。

下面的Python 代码段演示了 CI 脚本如何加载一个 YOLO11模型,并断言其性能指标符合特定标准,然后才允许合并代码。 特定标准,然后才允许合并代码。

from ultralytics import YOLO

# Load the model to be tested (e.g., a newly trained artifact)
model = YOLO("yolo11n.pt")

# Run validation on a standard dataset (e.g., coco8.yaml for quick CI checks)
results = model.val(data="coco8.yaml")

# Extract the mAP50-95 metric
map_score = results.box.map

# Assert performance meets the minimum requirement for the pipeline to pass
print(f"Current mAP: {map_score}")
if map_score < 0.30:
    raise ValueError("Model performance regression detected! mAP is too low.")

实际应用

在可靠性要求极高的行业中,持续集成的应用至关重要。

  • 自动驾驶:在开发自动驾驶汽车的过程中,安全至关重要。 自动驾驶汽车时,安全至关重要。 工程师使用 CI 管道自动测试 物体检测模型。 场景自动测试物体检测模型,例如在夜间或雨天识别行人。如果代码更改导致 平均精度(mAP)下降、 系统就会阻止更新,防止潜在危险软件进入车辆。
  • 医疗诊断:对于 人工智能在医疗保健领域的应用,特别是 肿瘤检测等任务、 一致性是关键。CI 流水线可确保图像预处理算法的更新不会无意中改变输入数据,从而使 输入数据 混淆诊断模型。通过在医学影像的 "黄金集 "上运行回归测试,该团队可确保临床准确性得以保持。 确保临床准确性。

持续集成与持续部署(CD)

虽然 CI/CD 经常被放在一起提及,但重要的是要将持续集成与持续部署区分开来。 持续部署

  • 持续集成(CI)侧重于开发周期。它验证新代码 与现有代码库正确集成,并通过所有自动化测试。它生成经过验证的工件 (如docker 映像或模型文件)。
  • 持续部署(CD)侧重于发布周期。它采用 CI 生成的工件,并将其自动部署到云服务器或边缘设备等生产环境中。

它们共同构成了一个精简的管道,可加速视觉人工智能产品的生命周期。 视觉人工智能产品的生命周期,让团队在保持质量和安全标准的同时 同时保持高标准的质量和安全性。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入