Узнайте, как Kubernetes автоматизирует развертывание и масштабирование моделей искусственного интеллекта. Научитесь настраивать Ultralytics на K8s для высокопроизводительного компьютерного зрения.
Kubernetes, часто называемый K8s, — это платформа с открытым исходным кодом, предназначенная для автоматизации развертывания, масштабирования и управления контейнерными приложениями. Первоначально разработанная Google в настоящее время поддерживаемая Cloud Native Computing Foundation (CNCF), Kubernetes стала стандартом для оркестрации программного обеспечения в облаке. В контексте искусственного интеллекта (ИИ) и машинного обучения (МО) он служит критически важным инфраструктурным уровнем, который позволяет инженерным командам управлять сложными рабочими процессами, от распределенного обучения до высоконадежного производственного вывода. Абстрагируя базовое оборудование, Kubernetes обеспечивает надежную и эффективную работу приложений, независимо от того, размещены ли они на локальных серверах или у поставщиков публичных облачных услуг.
В своей основе Kubernetes работает на кластерной архитектуре, которая состоит из набора рабочих машин, называемых узлами. Эти узлы выполняют контейнерные рабочие нагрузки, а управляющая плоскость управляет общим состоянием кластера. Наименьшей развертываемой единицей в Kubernetes является «под», который инкапсулирует один или несколько контейнеров, совместно использующих ресурсы хранения и сети. Эта абстракция жизненно важна для приложений компьютерного зрения, поскольку позволяет разработчикам упаковывать зависимости, такие как определенные CUDA для графических процессоров (GPU), — в единую среду. Крупные облачные сервисы, такие как Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS) и Google Engine (GKE), предоставляют управляемые версии этой архитектуры, упрощая задачу обслуживания для команд по обработке данных.
Основная ценность Kubernetes в операциях машинного обучения (MLOps) заключается в его способности обрабатывать динамические рабочие нагрузки. Модели искусственного интеллекта часто требуют огромных вычислительных мощностей во время обучения и низкой задержки вывода во время развертывания.
Kubernetes является основой для многих крупномасштабных внедрений искусственного интеллекта в различных отраслях:
Часто возникает путаница в отношении взаимосвязи между Kubernetes и Docker. Они не являются конкурентами, а скорее дополняющими друг друга технологиями. Docker — это инструмент для создания и запуска отдельных контейнеров (упаковка приложения), тогда как Kubernetes — это инструмент для управления парком этих контейнеров на нескольких машинах. Вы используете Docker для сборки весов модели и кода в образ, а затем используете Kubernetes, чтобы определить, где, когда и сколько копий этого образа запускается в производственной среде.
Чтобы развернуть модель на Kubernetes, разработчики обычно начинают с Python , который выступает в качестве точки входа для контейнера. Следующий код демонстрирует простую задачу инференса с использованием модели Ultralytics . Этот скрипт будет запускаться внутри под, обрабатывая входящие запросы.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")
Экосистема Kubernetes включает в себя широкий спектр инструментов, специально разработанных для работы с данными. Kubeflow — популярный набор инструментов, предназначенный для упрощения, переносимости и масштабируемости развертывания рабочих процессов машинного обучения в Kubernetes. Для мониторинга работоспособности кластера и метрик приложений инженеры часто полагаются на Prometheus. Чтобы еще больше упростить процесс обучения и развертывания моделей в этих средах, Ultralytics предлагает унифицированный интерфейс, который автоматизирует управление наборами данных и обучение моделей, позволяя пользователям экспортировать модели, готовые для облачных вычислительных кластеров. Кроме того, менеджеры пакетов , такие как Helm, помогают управлять сложными приложениями Kubernetes с помощью многоразовых диаграмм.