Узнайте, как Kubernetes оптимизирует задачи ИИ/ML благодаря масштабируемому развертыванию моделей, распределенному обучению и эффективному управлению ресурсами.
Kubernetes, часто сокращенно называемая K8s, - это система оркестровки контейнеров с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Изначально она была разработана инженерами Google , а теперь поддерживаемая Cloud Native Computing Foundation (CNCF), Kubernetes превратилась в отраслевой стандарт для управления отказоустойчивыми распределенными программными системами. В быстро развивающихся областях искусственный интеллект (ИИ) и машинного обучения (ML), он служит в качестве фундаментальным инфраструктурным слоем, позволяющим инженерным командам эффективно управлять полным жизненным циклом сложных моделей от экспериментальной разработки до крупномасштабного производства.
По своей сути Kubernetes управляет кластером вычислительных машин, известных как узлы, на которых выполняются контейнерные рабочие нагрузки. Он в значительной степени опирается на контейнеризацию -технологию которая упаковывает код вместе с его зависимостями, чтобы обеспечить стабильную работу приложений в различных средах. средах. Kubernetes вводит такие абстракции, как "капсулы", которые представляют собой наименьшие развертываемые единицы, и "развертывания", которые поддерживают желаемое состояние приложения. Отделяя программное обеспечение от от базового оборудования, это позволяет инженерам по компьютерному зрению сосредоточиться на производительности модели а не на обслуживании серверов, используя такие управляемые сервисы, как Amazon EKS или Google Kubernetes Engine (GKE).
Для Для операций машинного обучения (MLOps) Kubernetes незаменим, поскольку он решает важнейшую задачу масштабируемости. Современные рабочие нагрузки ИИ, особенно те, которые связанные с глубоким обучением, требуют значительных вычислительных ресурсов. Kubernetes облегчает распределенное обучение за счет интеллектуального планирования заданий обучения на нескольких узлах, оснащенных графическими процессорами (GPU). На этапе развертывания модели K8s обеспечивает высокую доступность API для выводов, автоматически увеличивая или уменьшая количество запущенных капсул в зависимости от требований трафика в реальном времени. K8s обеспечивает высокую доступность на этапе развертывания модели, автоматически масштабируя количество работающих капсул в зависимости от потребностей трафика в реальном времени, что оптимизирует производительность и стоимость.
Полезно понять, чем Kubernetes отличается от других распространенных инфраструктурных инструментов:
Экосистема Kubernetes очень обширна, включая такие инструменты, как Helm для управления пакетами и Prometheus для мониторинга состояния кластера. Для специализированных рабочих процессов ML платформы такие как Kubeflow, работающие поверх Kubernetes для оптимизации сквозных конвейеров. Заглядывая в будущее, можно сказать, что готовящаяся платформаUltralytics Platform призвана еще больше упростить эти процессы, предлагая комплексную среду для управления данными и обучения моделей, которая абстрагируясь от сложностей базовой инфраструктуры.
Чтобы развернуть модель на Kubernetes, вам сначала понадобится скрипт, выполняющий вывод. Этот фрагмент на Python демонстрирует загрузку модели YOLO11 , которая затем может быть упакована в контейнер Docker и запланирована в K8s.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")
# Print the detected class names
for result in results:
for cls_id in result.boxes.cls:
print(f"Detected: {result.names[int(cls_id)]}")