Узнайте, как Docker обеспечивает воспроизводимое развертывание ИИ. Научитесь упаковывать модели Ultralytics в контейнеры для беспроблемного масштабирования от облачных до пограничных устройств.
Docker — это платформа с открытым исходным кодом, которая позволяет разработчикам автоматизировать развертывание, масштабирование и управление приложениями с помощью контейнеризации. В контексте искусственного интеллекта и машинного обучения Docker действует как стандартизированная единица программного обеспечения, которая упаковывает код и все его зависимости, такие как библиотеки, системные инструменты и настройки, чтобы приложение быстро и надежно работало в разных вычислительных средах. Это устраняет распространенную проблему «на моем компьютере все работает», гарантируя, что нейронная сеть, обученная на ноутбуке исследователя, будет вести себя точно так же при развертывании на массивном облачном сервере или пограничном устройстве.
Современные операции машинного обучения (MLOps) в значительной степени зависят от воспроизводимости и переносимости. Проект искусственного интеллекта часто включает в себя сложный набор программного обеспечения, в том числе конкретные версии Python, CUDA для GPU и фреймворки глубокого обучения , такие как PyTorch или TensorFlow. Управление ими вручную в разных командах и инфраструктурах чревато ошибками.
Docker упрощает эту задачу, создавая легкие автономные контейнеры. В отличие от традиционных виртуальных машин (ВМ), которые требуют полноценной операционной системы для каждого экземпляра, контейнеры используют ядро ОС хост-машины, но работают в изолированных пользовательских пространствах. Это делает их значительно более ресурсоэффективными и быстрее запускаются, что критически важно при масштабировании инфраструктуры обслуживания моделей или выполнении распределенных задач обучения.
Docker повсеместно используется в жизненном цикле ИИ, от первоначальных экспериментов до окончательного развертывания.
Чтобы понять специфическую роль Docker, полезно отличать его от смежных технологий:
Следующий пример демонстрирует, как может выглядеть Python внутри контейнера Docker, предназначенного для компьютерного
зрения. Этот скрипт использует ultralytics пакет для загрузки модели и выполнения инференции. Контейнерная
среда гарантирует, что правильные зависимости (такие как opencv-python и torch) уже
присутствуют.
from ultralytics import YOLO
# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")
Чтобы начать работу с контейнеризацией, разработчики обычно определяют Dockerfile, который представляет собой текстовый документ,
содержащий все команды для сборки изображения. После сборки эти изображения могут храниться в реестрах, таких как
Docker Hub или
Каталог NVIDIA, который предлагает контейнеры, GPU.
Для тех, кто хочет оптимизировать процесс обучения и развертывания без ручного управления файлами Dockerfiles, Ultralytics предлагает интегрированные инструменты, которые справляются со сложностью облачных сред. Это позволяет пользователям сосредоточиться на улучшении точности модели, а не на настройке инфраструктуры. Кроме того, вы можете ознакомиться с нашим кратким руководством по Docker, чтобы узнать, как сразу запустить Ultralytics в контейнерах.