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

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

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

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

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

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

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

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

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

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

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

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

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

Будучи тесно связанной, CI отличается от непрерывной доставки и непрерывного развертывания (CD).

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

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

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

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

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