术语表

持续集成 (CI)

利用持续集成增强 AI/ML 工作流程。自动测试,提高代码质量,毫不费力地简化模型开发。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

持续集成(CI)是现代软件开发的基本实践,在人工智能(AI)机器学习(ML)领域越来越重要。它包括经常将多个贡献者的代码变更合并到一个中央存储库中,然后运行自动构建和测试。CI 的主要目标是及早发现集成问题、提高代码质量并简化开发工作流程。这种自动化和快速反馈环路对复杂的项目尤其有益,比如那些涉及培训和部署的项目。 Ultralytics YOLO模型的计算机视觉任务。

为什么持续集成在人工智能/移动互联网中很重要?

人工智能/ML 开发的迭代性质涉及数据、模型和参数(如超参数调整数据增强)实验,这使得 CI 尤为重要。集成 CI 可以快速反馈变更,确保新代码与现有代码库正确集成,模型性能不会意外降低。主要优势包括

  • 早期错误检测:自动测试可在代码更改合并后迅速捕捉错误,从而降低后期修复错误的成本和工作量。
  • 提高代码质量:一致的测试和集成鼓励更好的编码实践和可维护的代码库。衬砌器和静态分析器等工具通常是 CI 管道的一部分。
  • 更快的开发周期:自动化可减少人工测试工作,让开发人员专注于构建功能。
  • 一致的模型性能:CI 管道可包括评估模型准确度精确度召回率和其他相关指标的步骤,以防止回归。这通常包括检查F1 分数平均精度 (mAP) 等指标。
  • 增强协作:频繁的整合可最大限度地减少合并冲突,使团队始终在最新的代码库上工作。

CI 如何在人工智能/移动语言项目中发挥作用

在使用 CI 的典型 AI/ML 项目中,流程通常始于开发人员将代码变更(包括模型脚本、配置文件甚至新的数据处理步骤)提交到Git 等共享版本控制系统。该提交会自动触发一个 CI 管道,通常由JenkinsGitLab CI/CDGitHub Actions 等平台管理。管道通常会执行几个步骤:

  1. 构建:编译代码并构建必要的工件(如 Docker 映像)。
  2. 单元测试:在单个代码组件上运行小型、孤立的测试。
  3. 集成测试:测试系统不同部分之间的交互。
  4. 模型验证:运行针对 ML 模型的测试,如检查数据的完整性、验证模型架构或在小型测试数据集上运行推理。
  5. 性能测试:根据预定义基准或以前的版本评估模型的性能指标(mAP准确度延迟)。这可能涉及基准模式
  6. 报告:通知团队构建和测试结果,通常与Slack 等通信工具集成。

Ultralytics 广泛使用 CI;您可以在《Ultralytics CI 指南》中进一步了解我们的流程。

持续集成在人工智能/移动语言中的实际应用

持续集成用于各种实际的人工智能/ML 应用程序,以提高效率和可靠性。

  • 物体探测系统开发:开发物体检测系统的公司,可能会使用 Ultralytics YOLO11来自动测试新的代码变更。每次提交都会触发一个管道,在数据子集(如COCO128)上重新训练或验证模型,运行评估以检查mAP和推理速度,并确保更改在合并前不会对性能产生负面影响。这有助于保持汽车人工智能安全应用的模型质量。
  • 自然语言处理 (NLP) 模型完善:使用NLP 技术研究情感分析模型的团队可以实施 CI。每次代码更新(如调整特征提取或模型架构)都会自动触发测试。这些测试可能会在验证数据集上运行更新后的模型,将其情感分类准确率F1 分数与基线结果进行比较。这可确保对模型的有效性进行持续监控和改进。

持续集成与持续交付/部署(CD)

虽然 CI 与持续交付和持续部署(CD)密切相关,但两者是不同的。

  • 持续集成(CI):侧重于频繁集成代码变更并自动测试它们。其输出结果是经过验证的构建,可用于进一步的步骤。
  • 持续交付(CD):通过自动准备经过验证的代码变更,将其发布到暂存或生产环境,从而扩展 CI。向生产环境的部署通常是手动触发的。您可以在这份Atlassian 指南中了解更多有关差异的信息。
  • 持续部署 (CD):更进一步,自动将每个经过验证的变更直接部署到生产中,无需人工干预。

CI 和 CD 实践是机器学习运营(MLOps)的核心组成部分,旨在简化从开发到部署监控的整个机器学习生命周期。Ultralytics HUB等平台可以帮助管理这一生命周期的各个环节,包括模型训练和部署。

阅读全部