Глоссарий

Непрерывная интеграция (CI)

Усовершенствуй рабочие процессы AI/ML с помощью непрерывной интеграции. Автоматизируй тестирование, повышай качество кода и оптимизируй разработку моделей без лишних усилий.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Непрерывная интеграция (Continuous Integration, CI) - это фундаментальная практика в современной разработке программного обеспечения, которая приобретает все большее значение в областях искусственного интеллекта (AI) и машинного обучения (ML). Она подразумевает частое объединение изменений кода от нескольких авторов в центральный репозиторий, после чего запускаются автоматические сборки и тесты. Основная цель CI - раннее обнаружение проблем интеграции, повышение качества кода и оптимизация рабочего процесса разработки. Такая автоматизация и быстрый цикл обратной связи особенно полезны для сложных проектов, таких как проекты, связанные с обучением и развертыванием Ultralytics YOLO моделей для задач компьютерного зрения.

Почему непрерывная интеграция важна для AI/ML?

Итеративный характер разработки AI/ML, включающий эксперименты с данными, моделями и параметрами (например, настройка гиперпараметров и увеличение данных), делает CI особенно ценным. Интеграция CI обеспечивает быструю обратную связь с изменениями, гарантируя, что новый код правильно интегрируется с существующей кодовой базой и что производительность модели не ухудшится неожиданно. Основные преимущества включают в себя:

  • Раннее обнаружение ошибок: Автоматизированные тесты быстро отлавливают ошибки после слияния изменений кода, что снижает затраты и усилия на их последующее исправление.
  • Улучшение качества кода: Последовательное тестирование и интеграция способствуют лучшей практике кодинга и поддерживаемым кодовым базам. Такие инструменты, как линеры и статические анализаторы, часто являются частью конвейера CI.
  • Ускоренные циклы разработки: Автоматизация сокращает усилия по ручному тестированию и позволяет разработчикам сосредоточиться на создании функций.
  • Последовательная работа модели: Конвейеры CI могут включать в себя шаги по оценке точности модели, прецизионности, запоминания и других значимых показателей, предотвращая регрессии. Часто это включает в себя проверку таких показателей, как F1-score или Mean Average Precision (mAP).
  • Улучшенная совместная работа: Частая интеграция сводит к минимуму конфликты при слиянии и позволяет команде работать над актуальной кодовой базой.

Как работает CI в проектах AI/ML

В типичном AI/ML-проекте, использующем CI, процесс часто начинается с того, что разработчик фиксирует изменения кода (включая скрипты модели, файлы конфигурации или даже новые шаги обработки данных) в общей системе контроля версий, такой как Git. Этот коммит автоматически запускает CI-конвейер, часто управляемый такими платформами, как Jenkins, GitLab CI/CD или GitHub Actions. Конвейер обычно выполняет несколько шагов:

  1. Сборка: Компилируй код и собирай необходимые артефакты (например, образы Docker).
  2. Юнит-тестирование: Выполняй небольшие изолированные тесты на отдельных компонентах кода.
  3. Интеграционное тестирование: Проверяет взаимодействие между различными частями системы.
  4. Проверка модели: Запускает тесты, специфичные для ML-модели, например, проверяет целостность данных, проверяет архитектуру модели или запускает вывод на небольшом тестовом наборе данных.
  5. Тестирование производительности: Оценивает показатели производительности модели(mAP, точность, задержка) в сравнении с заданными эталонами или предыдущими версиями. Это может включать в себя режимы бенчмаркинга.
  6. Отчетность: Уведомляет команду о результатах сборки и тестирования, часто интегрируясь с коммуникационными инструментами вроде Slack.

Ultralytics широко использует CI; ты можешь узнать больше о наших процессах в Ultralytics CI Guide.

Реальные применения непрерывной интеграции в AI/ML

Непрерывная интеграция используется в различных реальных AI/ML-приложениях для повышения эффективности и надежности.

  • Разработка системы обнаружения объектов: Компания разрабатывает систему обнаружения объектов, возможно, используя Ultralytics YOLO11, может использовать CI для автоматического тестирования новых изменений кода. Каждый коммит может запускать конвейер, который переобучает или проверяет модель на подмножестве данных (например, COCO128), проводит оценки для проверки mAP и скорости вывода, а также убеждается, что изменения не оказывают негативного влияния на производительность, прежде чем объединить их. Это помогает поддерживать качество модели для приложений в области автомобильного ИИ или безопасности.
  • Уточнение модели обработки естественного языка (NLP): Команда, работающая над моделью анализа настроения с использованием методов NLP, может внедрить CI. Каждое обновление кода (например, настройка извлечения признаков или архитектуры модели) автоматически запускает тесты. Эти тесты могут запускать обновленную модель на валидном наборе данных, сравнивая точность классификации настроения и F1-score с базовыми результатами. Таким образом, эффективность модели постоянно отслеживается и улучшается.

Непрерывная интеграция и непрерывная доставка/развертывание (CD)

Несмотря на тесную взаимосвязь, CI отличается от Continuous Delivery и Continuous Deployment (CD).

  • Непрерывная интеграция (Continuous Integration, CI): Ориентирована на частую интеграцию изменений кода и их автоматическое тестирование. На выходе получается проверенная сборка, готовая к дальнейшим действиям.
  • Непрерывная доставка (CD): Расширяет CI, автоматически подготавливая подтвержденные изменения кода к выпуску в стайлинговую или производственную среду. Развертывание в производство обычно запускается вручную. Подробнее о различиях ты можешь прочитать в этом руководстве Atlassian.
  • Непрерывное развертывание (CD): Сделай еще один шаг вперед, автоматически развертывая каждое подтвержденное изменение прямо в производство без ручного вмешательства.

Практики CI и CD являются основными компонентами Machine Learning Operations (MLOps), цель которой - упорядочить весь жизненный цикл машинного обучения от разработки до развертывания и мониторинга. Такие платформы, как Ultralytics HUB, могут помочь управлять частью этого жизненного цикла, включая обучение и развертывание моделей.

Читать полностью