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

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

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

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

Основные принципы CI в машинном обучении

Основная цель CI - detect ошибки как можно раньше, что часто называют "быстрым отказом". быстро". Этот процесс в значительной степени опирается на системы контроля версий, такие как Git, для управления кодовой базой. Когда разработчик вносит изменение, сервер CI, например GitHub Actions, GitLab CI или Jenkins - автоматически автоматически создает новое окружение.

Для проектов ML в этой среде часто используются инструменты контейнеризации, такие как Docker для обеспечения согласованности разработки, тестирования и производства. CI конвейер выполняет ряд проверок:

  • Качество кода: Выполнение линтеров и статического анализа для поддержания стандартов кодирования.
  • Юнит-тестирование: Проверка того, что отдельные функции и классы ведут себя так, как ожидается.
  • Валидация данных: Убедитесь, что соответствия учебных данных ожидаемой схеме и стандартам качества.
  • Оценка модели: Проверка обученной модели на проверочного набора данных, чтобы убедиться. точность не упала ниже определенного порога.

Реализация проверок производительности

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

Следующий фрагмент Python демонстрирует, как сценарий CI может загрузить файл YOLO11 модель и утверждать, что ее показатели производительности соответствуют определенному стандарту, прежде чем разрешить слияние кода.

from ultralytics import YOLO

# Load the model to be tested (e.g., a newly trained artifact)
model = YOLO("yolo11n.pt")

# Run validation on a standard dataset (e.g., coco8.yaml for quick CI checks)
results = model.val(data="coco8.yaml")

# Extract the mAP50-95 metric
map_score = results.box.map

# Assert performance meets the minimum requirement for the pipeline to pass
print(f"Current mAP: {map_score}")
if map_score < 0.30:
    raise ValueError("Model performance regression detected! mAP is too low.")

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

Применение непрерывной интеграции жизненно важно в отраслях, где надежность не является обязательным условием.

  • Автономное вождение: при разработке автономных автомобилей безопасность имеет первостепенное значение. Инженеры используют конвейеры CI для автоматического тестирования моделей обнаружения объектов в тысячах сценариев, таких как идентификация пешеходов ночью или во время дождя. Если изменение кода приводит к тому, что снижение средней точности (mAP), система блокирует обновление, предотвращая попадание потенциально опасного программного обеспечения в автомобиль.
  • Медицинская диагностика: Для ИИ в здравоохранении, в частности, в таких задачах, как обнаружение опухолей, последовательность является ключевым фактором. Конвейер CI гарантирует, что обновления алгоритмов предварительной обработки изображений не приведут к случайному изменению входные данные таким образом, чтобы сбить с толку диагностическую модель. Проводя регрессионные тесты на "золотом наборе" медицинских изображений, команда гарантирует сохранение клинической точности.

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

Несмотря на то, что CI/CD часто упоминаются вместе, важно отличать непрерывную интеграцию от Непрерывное развертывание.

  • Непрерывная интеграция (Continuous Integration, CI) сосредоточена на цикле разработки. Она проверяет, что новый код правильно интегрируется с существующей кодовой базой и проходит все автоматизированные тесты. В результате создается проверенный артефакт (например, образ докера или файл модели).
  • Непрерывное развертывание (CD) сосредоточено на цикле выпуска. Он берет артефакт, созданный CI и автоматически развертывает его в производственной среде, например на облачном сервере или пограничном устройстве.

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

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

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

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