Глоссарий

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

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

Непрерывная интеграция (CI) - это практика разработки программного обеспечения, при которой разработчики часто сливают изменения в коде в центральный репозиторий, после чего запускаются автоматические сборки и тесты. Основная цель CI - раннее обнаружение проблем интеграции, повышение качества кода и оптимизация рабочего процесса разработки. В контексте искусственного интеллекта (ИИ) и машинного обучения (МЛ) CI выходит за рамки традиционных проверок кода и включает в себя проверку данных, моделей и общей производительности конвейера, являясь важнейшим компонентом операций машинного обучения (MLOps).

Ключевые принципы непрерывной интеграции

Процесс CI построен на фундаменте автоматизации и частых итераций. Разработчики вносят небольшие и частые изменения в общий репозиторий с помощью системы контроля версий, например Git. Каждое изменение запускает автоматизированный рабочий процесс, или конвейер, который выполняет несколько ключевых шагов:

  • Автоматизированная сборка: Система автоматически компилирует код, чтобы обеспечить его корректную интеграцию. Для проектов ML это может включать настройку среды с помощью инструментов контейнеризации, таких как Docker.
  • Автоматизированное тестирование: Набор тестов для проверки новых изменений. Сюда входят модульные тесты для логики кода, интеграционные тесты для взаимодействия компонентов, а также специализированные тесты для ML, такие как проверка данных и оценка моделей.
  • Быстрый цикл обратной связи: Если на каком-либо этапе конвейера происходит сбой, команда разработчиков немедленно получает уведомление. Это позволяет им быстро решать проблемы, пока они не стали более сложными и не интегрировались в основную кодовую базу.

CI для машинного обучения (CI4ML)

Применение CI в проектах Machine Learning создает уникальные проблемы. Помимо кода, системы ML включают в себя данные и обученные модели, которые также должны быть версионированы и проверены. Эффективный конвейер CI для ML-проекта, например для модели Ultralytics YOLO, включает дополнительные шаги:

  • Валидация данных: Автоматическая проверка новых данных на корректность, соответствие схеме и потенциальную необъективность набора данных. Для этого можно использовать такие инструменты, как Great Expectations.
  • Тестирование модели: Проведение тестов для проверки снижения производительности. Это включает в себя сравнение показателей производительности новой модели с базовой версией на стандартном наборе данных для проверки.
  • Валидация конвейера обучения: Обеспечение воспроизводимости и эффективности самого процесса обучения моделей. Для этого можно использовать такие платформы, как Ultralytics HUB, которая упрощает управление наборами данных и рабочими процессами обучения.

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

  1. Разработка автономного вождения: Команда, работающая над моделью обнаружения объектов для автономных автомобилей, использует конвейер CI. Когда разработчик присылает код для улучшения способности модели обнаруживать пешеходов в ночное время, конвейер автоматически запускается. Он запускает модульные тесты, переобучает облегченную версию модели YOLO11 на тестовом наборе данных и оценивает ее mAP. Если точность не падает и все тесты пройдены, изменение утверждается для слияния. Для автоматизации этих рабочих процессов обычно используются такие популярные инструменты CI, как GitHub Actions или Jenkins.
  2. Анализ медицинских изображений: В систему, предназначенную для обнаружения опухолей на медицинских изображениях, специалист по исследованию данных может добавить новые дополненные данные для повышения надежности. Конвейер CI проверяет новый формат и распределение данных. Затем запускается прогон проверки с использованием предварительно обученной модели, чтобы убедиться, что предсказания модели на "золотом наборе данных" остаются последовательными, предотвращая неожиданное поведение в производстве. Этот процесс помогает поддерживать высокие стандарты надежности, необходимые для ИИ в здравоохранении.

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

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

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

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

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

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

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена