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

Контейнеризация

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

Контейнеризация - это процесс развертывания программного обеспечения, в ходе которого код приложения объединяется со всеми файлами и библиотеками. которые необходимы для его запуска на любой инфраструктуре. Инкапсулируя программное обеспечение и его зависимости в один легкий единый легкий блок, называемый контейнером, разработчики обеспечивают стабильную работу приложения независимо от конкретной вычислительной среды. В быстро развивающейся области машинного обучения (ML) контейнеризация стала стала краеугольным камнем современных MLOps-стратегий. Она решает пресловутую проблему "это работает на моей машине", изолируя среду выполнения, делая сложные рабочие процессы компьютерного зрения (CV) переносимыми, воспроизводимыми и легко масштабируемыми.

Роль контейнеризации в искусственном интеллекте

Для специалистов по исследованию данных и инженеров ML управление зависимостями, такими как конкретные версии Python, PyTorchи Драйверы CUDA могут быть сложными. Контейнеризация решает эту проблему, создавая неизменяемую среду.

  • Портативность: Контейнерный YOLO11 модель может легко перемещаться с локального ноутбука разработчика на высокопроизводительный локальный сервер или в публичное облако без необходимости изменения конфигурации. Такая гибкость необходима для гибридных стратегии облачных вычислений.
  • Эффективность: В отличие от традиционных виртуальных машин (ВМ), которые эмулируют весь аппаратный стек и операционную систему. операционной системы, контейнеры совместно используют ядро ОС хост-системы. Это делает их значительно более легкими и быстрее запускаются, оптимизируя использование ресурсов для обслуживания моделей.
  • Масштабируемость: Контейнеры легко реплицируются. При резком увеличении трафика приложения средства оркестровки инструменты могут мгновенно запустить дополнительные экземпляры контейнеров, чтобы справиться с нагрузкой, обеспечивая низкую задержку в выводах.

Основные технологии и концепции

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

  • Docker: наиболее широко распространенная платформа для разработки, доставки и запуска приложений в контейнерах. Ultralytics предоставляет полное Руководство по быстрому запуску Docker, чтобы помочь пользователям развернуть эффективное развертывание моделей обнаружения объектов. Docker придерживается отраслевых стандартов, установленных Open Container Initiative (OCI), что обеспечивает совместимость с различными платформах.
  • Kubernetes: В то время как Docker управляет отдельными контейнерами, Kubernetes - это система оркестровки для автоматизации развертывания, масштабирования и управления контейнерными приложениями. Она часто используется для управления большими кластерами GPU ресурсов для распределенного обучения.
  • Реестры контейнеров: Это репозитории, в которых хранятся и совместно используются образы контейнеров. Популярные примеры - Docker Hub и NVIDIA NGC Catalog, где хранится GPU программное обеспечение для искусственного интеллекта.

Контейнеризация против виртуальных машин

Важно различать контейнеры и Виртуальные машины. На виртуальной машине работает полная гостевой операционной системы с виртуальным доступом к ресурсам хоста через гипервизор. Это обеспечивает высокий уровень изоляции, но приводит к значительным накладным расходам. Контейнеры, напротив, виртуализируют операционную систему, позволяя несколько изолированных экземпляров пользовательского пространства работать на одном ядре. Это различие делает контейнеры предпочтительным предпочтительным выбором для микросервисов и приложений Edge AI, где ресурсы ограничены.

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

Контейнеризация применяется на различных этапах жизненного цикла ИИ - от исследований до производства.

1. Воспроизводимые исследовательские среды

В академических и промышленных исследованиях воспроизведение результатов имеет решающее значение. Определяя точную среду в образе контейнера образ, исследователи гарантируют, что их эксперименты по обучению моделей могут быть воспроизведены кем угодно, где угодно. Это исключает расхождения, вызванные различиями в версиях библиотек или конфигурациях систем. Например. команда, работающая над сегментацией изображений, может совместно использовать Docker-образ, содержащий их специфические инструменты обработки наборов данных и архитектуры моделей, что гарантирует согласованность результатов. результаты.

2. Развертывание на границе

Развертывание моделей глубокого обучения на граничных устройствах, таких как NVIDIA Jetson, требует высоко оптимизированных окружения. Контейнеры позволяют разработчикам упаковывать модели как YOLO11 только с необходимыми зависимостями во время выполнения. Этот оптимизированный пакет может быть развернут на тысячах удаленных устройств, обновляя возможности обнаружения объектов камерами наблюдения или автономных роботов по воздуху без ручного вмешательства. Подробнее об этом читайте в Примеры использования контейнеров AWS.

Пример: Сценарий вывода, готовый к использованию контейнера

При контейнеризации приложения обычно создается сценарий, который служит точкой входа. Следующий код на Python код демонстрирует простой рабочий процесс вывода с использованием ultralytics пакет. Этот сценарий может быть основным процессом, выполняемым внутри контейнера Docker, предназначенного для выводы в режиме реального времени.

from ultralytics import YOLO

# Load the YOLO11 model (ensure weights are present in the container)
model = YOLO("yolo11n.pt")

# Perform inference on an image URL
# In a container, this might process incoming video streams or API requests
results = model.predict(source="https://ultralytics.com/images/bus.jpg", save=True)

# Print detection results to verify operation
for result in results:
    print(f"Detected {len(result.boxes)} objects in the frame.")

Этот сценарий наглядно демонстрирует, насколько минимальным может быть объем кода, когда зависимостями занимается контейнерное окружение. Используя веса моделей, включенных в образ, контейнер превращается в самостоятельную интеллектуальную единицу, готовую к развертыванию. Для более подробного ознакомления с основами контейнеров в Документация по контейнерам Red Hat предлагает отличный вводный материал.

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

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

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