Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

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

Explore how [Continuous Integration (CI)](https://www.ultralytics.com/glossary/continuous-integration-ci) streamlines AI development. Learn to automate testing, validate data, and deploy [YOLO26](https://docs.ultralytics.com/models/yolo26/) models efficiently via the [Ultralytics Platform](https://platform.ultralytics.com).

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

Важность CI в машинном обучении

В то время как традиционные конвейеры CI сосредоточены на компиляции программного обеспечения и выполнении модульных тестов, рабочий процесс CI, ориентированный на ML, должен справляться с уникальными сложностями вероятностных систем. Изменение одного гиперпараметра или модификация скрипта предварительной обработки данных может радикально изменить поведение конечной модели. Поэтому надежная стратегия CI гарантирует, что каждое обновление кода или данных автоматически проверяется по установленным базовым показателям.

Этот процесс является важнейшим компонентом операций машинного обучения (MLOps), действуя как сеть безопасности, предотвращающая снижение производительности. Эффективные конвейеры CI для проектов ИИ обычно включают:

  • Проверка качества кода: использование инструментов статического анализа и линтеров для обеспечения соблюдения стандартов кодирования и выявления синтаксических ошибок перед выполнением.
  • Проверка данных: проверка того, что поступающие учебные данные соответствуют ожидаемым схемам и статистическим распределениям, предотвращение таких проблем, как поврежденные файлы изображений или отсутствующие аннотации.
  • Автоматическое тестирование: запуск модульных тестов на утилитарных функциях и интеграционных тестов, которые могут включать обучение небольшой модели в течение нескольких эпох для обеспечения сходимости.
  • Сравнительный анализ моделей: оценка модели по фиксированному набору валидационных данных для проверки, не упали ли ключевые показатели, такие как средняя точность (mAP), ниже допустимого порога.

Применение в реальном мире

Внедрение непрерывной интеграции имеет решающее значение для отраслей, в которых надежность и безопасность имеют первостепенное значение.

  • Системы автономного вождения: при разработке автономных транспортных средств инженеры постоянно усовершенствуют алгоритмы обнаружения пешеходов и полос движения. Конвейер CI позволяет команде автоматически тестировать новые модели обнаружения объектов с помощью обширной библиотеки сценариев регрессии, таких как вождение в сильный дождь или при слабом освещении, гарантируя, что обновление кода не снизит способность системы detect .
  • Медицинская диагностическая визуализация: для применения в здравоохранении, например для обнаружения опухолей при МРТ-сканировании, воспроизводимость является нормативным требованием. CI гарантирует, что каждая версия диагностического программного обеспечения прослеживаема и протестирована. Если разработчик оптимизирует механизм вывода для повышения скорости, система CI проверяет, что точность диагностики остается неизменной, прежде чем обновление будет внедрено в больницах.

CI против непрерывной доставки (CD) против MLOps

Важно отличать непрерывную интеграцию от смежных концепций в жизненном цикле разработки.

  • Непрерывная интеграция (CI): фокусируется на фазе интеграции — слиянии кода, автоматизированном тестировании и проверке сборок. Она отвечает на вопрос: «Нарушает ли этот новый код существующую функциональность?»
  • Непрерывная доставка (CD): следует за CI и фокусируется на фазе выпуска. Она автоматизирует шаги, необходимые для развертывания проверенной модели в производственной среде, такой как облачный сервер или пограничное устройство. Узнайте больше о развертывании моделей.
  • MLOps: это всеобъемлющая дисциплина, которая включает в себя CI, CD и непрерывный мониторинг. В то время как CI является конкретной практикой, MLOps представляет собой культуру и набор инструментов, используемых для управления всем жизненным циклом ИИ.

Инструменты и платформы для интеграции ИИ

Разработчики используют различные инструменты для организации этих конвейеров. Платформы общего назначения, такие как GitHub Actions или Jenkins, обычно используются для запуска рабочих процессов при фиксации кода. Однако для управления большими наборами данных и версиями моделей часто требуются специализированные инструменты.

Ultralytics выступает в качестве центрального узла, дополняющего рабочие процессы CI . Она позволяет командам управлять наборами данных, track эксперименты track и визуализировать показатели производительности. Когда конвейер CI успешно обучает новую модель YOLO26, результаты могут быть зарегистрированы непосредственно на платформе, что обеспечивает централизованный обзор состояния проекта и облегчает сотрудничество между специалистами по данным.

Пример автоматизированного тестирования

В конвейере CI часто необходимо проверять, что модель может загружаться и выполнять выводы правильно, без ошибок. Следующий скрипт 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 пакет для загрузки облегченной модели и проверки ее работы в соответствии с ожиданиями. В производственной среде CI это будет частью более крупного набора тестов, использующих такие фреймворки, как Pytest для обеспечения всестороннего охвата.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас