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

Kubernetes

Узнайте, как 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 важен для ИИ

Основная ценность Kubernetes в операциях машинного обучения (MLOps) заключается в его способности обрабатывать динамические рабочие нагрузки. Модели искусственного интеллекта часто требуют огромных вычислительных мощностей во время обучения и низкой задержки вывода во время развертывания.

  • Масштабируемость: Kubernetes использует автомасштабирование для автоматической настройки ресурсов. В случае внезапного всплеска трафика Horizontal Pod Autoscaler может увеличить количество подсистем вывода, чтобы сохранить масштабируемость без ручного вмешательства.
  • Оптимизация ресурсов: Эффективное распределение дорогостоящего оборудования имеет решающее значение. Kubernetes позволяет долевое GPU и аффинность узлов, гарантируя, что модели глубокого обучения потребляют ресурсы только тогда, когда активные задания требуют этого.
  • Устойчивое развертывание: Обеспечение высокой доступности во время развертывания модели имеет решающее значение. В случае сбоя узла Kubernetes автоматически перезапускает затронутые поды на исправных узлах, предотвращая простои критически важных API-сервисов.

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

Kubernetes является основой для многих крупномасштабных внедрений искусственного интеллекта в различных отраслях:

  1. Умное управление дорожным движением в городах: муниципалитет может использовать модели Ultralytics для анализа видеопотоков с тысяч перекрестков. С помощью Kubernetes система может динамически масштабировать ресурсы в часы пик, чтобы обрабатывать увеличенную нагрузку по обнаружению объектов, и уменьшать масштаб в ночное время для экономии затрат. Этот подход имеет основополагающее значение для современных систем управления дорожным движением.
  2. Персонализация электронной коммерции: Интернет-магазины используют сложные рекомендательные системы, построенные на микросервисах. Один сервис может заниматься генерацией кандидатов, а другой — переранжированием. Kubernetes координирует работу этих отдельных сервисов, позволяя командам обновлять нейронную сеть ранжирования независимо друг от друга, не нарушая работу всего магазина, что способствует непрерывной интеграции.

Различия между Kubernetes и Docker

Часто возникает путаница в отношении взаимосвязи между 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 с помощью многоразовых диаграмм.

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

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

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