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

Docker

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

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

Основные концепции Docker

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

  • Dockerfile: Это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке. строке для сборки образа. Для проекта искусственного интеллекта Dockerfile действует как рецепт, указывая базовую операционной системы, установки таких языков, как Pythonи настраивает необходимые фреймворки, такие как PyTorch или TensorFlow.
  • Образ Docker: Образ - это шаблон, доступный только для чтения, с инструкциями по созданию контейнера Docker. Он фиксирует состояние приложения в определенный момент. Разработчики часто используют оптимизированные базовые образы из реестров таких как NVIDIA NGC, чтобы использовать предустановленные драйверы для GPU ускорения.
  • Контейнер Docker: Контейнер - это запускаемый экземпляр образа. Он изолирует приложение от хост-системы, при этом совместно используя ядро операционной системы хоста. Такая изоляция гарантирует, что конфликты программного обеспечения минимизации конфликтов программного обеспечения, что является ключевым требованием для стабильного развертывания модели.

Docker в реальных приложениях для искусственного интеллекта

Docker незаменим для развертывания надежных компьютерного зрения (КВ).

  1. Развертывание краевого ИИ: При развертывании моделей на устройствах с ограниченными ресурсами, таких как NVIDIA Jetson, контейнеры Docker обеспечивают легкую среду, включающую такие специфические зависимости, как OpenCV и специфические для оборудования библиотеки. Например. Ultralytics YOLO11 модель, упакованная в контейнер Docker может быть легко передана на тысячи удаленных камер для обнаружения объектов, не заботясь о конфигурации отдельных устройств.
  2. Воспроизводимые исследования и обучение: В академических и промышленных исследованиях воспроизведение результатов является критически важно. Используя Docker, исследователи могут заморозить точную версию каждой библиотеки, используемой во время обучения модели. Это устраняет расхождения, вызванные обновлений программного обеспечения и позволяет другим людям проверять полученные результаты или развивать работу, способствуя лучшему сотрудничеству в области науке о данных.

Интеграция Docker с YOLO

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

from ultralytics import YOLO

# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")

# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")

# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")

Docker против виртуальных машин

Хотя обе технологии изолируют приложения, они функционируют по-разному.

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

Взаимосвязь с Kubernetes

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

Будущие разработки экосистемы Ultralytics , такие как готовящаяся платформа Ultralytics Platform, будут использовать эти принципы Принципы контейнеризации позволят оптимизировать процессы поиска, подготовки и развертывания данных, еще больше абстрагируясь от еще больше абстрагируясь от сложностей управления инфраструктурой.

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

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

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