Глоссарий

Kubernetes

Узнай, как Kubernetes оптимизирует рабочие нагрузки AI/ML благодаря масштабируемому развертыванию моделей, распределенному обучению и эффективному управлению ресурсами.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Kubernetes, часто сокращенно называемая K8s, - это платформа с открытым исходным кодом, предназначенная для автоматизации развертывания, масштабирования и управления контейнерными приложениями. Изначально она была разработана Google а сейчас поддерживается Cloud Native Computing Foundation (CNCF), Kubernetes предоставляет надежный фреймворк для отказоустойчивого запуска распределенных систем. Для тех, кто работает в области искусственного интеллекта (AI) и машинного обучения (ML), Kubernetes предлагает мощные инструменты для управления сложным жизненным циклом моделей, от обучения до развертывания и вывода. Он помогает преодолеть разрыв между разработкой ML-моделей и их надежным запуском в производственных средах.

Основные понятия в упрощенном виде

Kubernetes занимается оркестровкой контейнеров, которые представляют собой легкие автономные пакеты, содержащие программное обеспечение и его зависимости. Ключевые понятия включают в себя:

  • Капсулы: Самые маленькие развертываемые единицы в Kubernetes, обычно содержащие один или несколько контейнеров, которые совместно используют ресурсы и сеть. Думай о Pod как об обертке вокруг твоего ML-приложения или контейнера сервера выводов.
  • Узлы: Рабочие машины (виртуальные или физические), на которых запускаются боды. Kubernetes управляет распределением Pod'ов по доступным Nodes.
  • Сервисы: Абстракция, определяющая логический набор подсистем и политику доступа к ним, часто предоставляющая стабильный IP-адрес или DNS-имя для динамических подсистем. Необходима для создания конечных точек ML-инференции.
  • Развертывания: Опиши желаемое состояние своего приложения, управляя ReplicaSets (группами одинаковых капсул) для обеспечения доступности и обработки обновлений. Полезно для развертывания новых версий моделей без простоев.

Понимание этих строительных блоков помогает в разработке масштабируемых и устойчивых систем ML.

Актуальность в области искусственного интеллекта и машинного обучения

Kubernetes стал краеугольным камнем современных Machine Learning Operations (MLOps) благодаря нескольким преимуществам:

  • Масштабируемость: Задачи ML, такие как обучение больших моделей или обслуживание запросов на вывод, часто имеют переменчивые требования к ресурсам. Kubernetes может автоматически масштабировать количество контейнеров (Pods) вверх или вниз в зависимости от нагрузки, обеспечивая эффективное использование таких ресурсов, как GPU.
  • Управление ресурсами: Оно позволяет осуществлять тонкий контроль над CPU и памятью для контейнеров, предотвращая нехватку ресурсов и обеспечивая производительность, что особенно важно при управлении дорогостоящими ресурсами GPU в нескольких экспериментах или сервисах.
  • Переносимость и согласованность: Kubernetes обеспечивает согласованную среду в различных инфраструктурах, будь то локальные серверы или различные облачные вычислительные платформы, такие как Amazon EKS, Google GKE или Azure AKS. Это упрощает перемещение рабочих процессов ML между разработкой, тестированием и производством. Часто ты можешь начать с установки Docker и масштабировать ее с помощью Kubernetes.
  • Автоматизация и оркестровка: Она автоматизирует такие сложные задачи, как обнаружение сервисов, балансировка нагрузки, самовосстановление (перезапуск вышедших из строя контейнеров) и управление конфигурацией, снижая ручную нагрузку на команды ML.

Реальные приложения AI/ML

  1. Распределенное обучение моделей: Обучение больших моделей глубокого обучения (DL), таких как сложные Ultralytics YOLO для обнаружения объектов, часто требует огромных вычислительных мощностей. Kubernetes может управлять кластером машин для распределенного обучения с помощью таких фреймворков, как Kubeflow, или встроенных интеграций с PyTorch или TensorFlow. Он занимается планированием заданий на обучение, управлением доступом к данным и эффективным распределением GPU между узлами.
  2. Масштабируемые сервисы вывода: Развертывание таких ML-моделей, как модели для выводов в реальном времени, требует высокой доступности и низкой задержки. Kubernetes может размещать серверы выводов (например, с помощью NVIDIA Triton Inference Server, который интегрируется с моделями Ultralytics - см. руководство поTriton ) за балансировщиком нагрузки. Он автоматически масштабирует количество бодов с серверами выводов в зависимости от входящего трафика, обеспечивая отзывчивость даже при пиковых нагрузках для таких задач, как классификация изображений или обработка естественного языка (NLP).

Kubernetes по сравнению с другими технологиями

  • Kubernetes против Docker: Docker - это инструмент для создания, доставки и запуска отдельных контейнеров(контейнеризация). Kubernetes - это оркестратор для контейнеров, управляющий потенциально тысячами контейнеров на множестве машин. Они работают вместе: обычно ты создаешь образы контейнеров с помощью Docker, а затем разворачиваешь и управляешь ими с помощью Kubernetes. Ознакомься с руководством Docker Quickstart, чтобы узнать об основах работы с контейнерами.
  • Kubernetes против бессерверных вычислений: Бессерверные платформы (например, AWS Lambda или Google Cloud Functions) полностью абстрагируются от управления серверами, фокусируясь на функциях, управляемых событиями. Kubernetes обеспечивает больший контроль над базовой инфраструктурой и лучше подходит для долгоиграющих приложений или сложных stateful-сервисов, хотя бессерверные фреймворки могут работать и на Kubernetes (например, Knative).

Инструменты и экосистема

Экосистема Kubernetes включает в себя множество инструментов, упрощающих управление:

  • Helm: Менеджер пакетов для Kubernetes, помогающий определять, устанавливать и обновлять сложные приложения.
  • Prometheus и Grafana: Популярные инструменты с открытым исходным кодом для мониторинга кластеров и приложений Kubernetes.
  • Интеграция с облачными провайдерами: Управляемые сервисы Kubernetes (EKS, GKE, AKS) упрощают настройку и обслуживание кластера.
  • ML-платформы: Такие инструменты, как Kubeflow, основаны на Kubernetes и обеспечивают специфические для ML рабочие процессы. Платформы вроде Ultralytics HUB направлены на упрощение конвейера развертывания, иногда абстрагируясь от сложностей Kubernetes для более легкого развертывания моделей.

Kubernetes обеспечивает мощную основу для создания, развертывания и управления масштабируемыми и надежными AI/ML-приложениями в различных средах, что делает его важнейшим навыком в ландшафте MLOps.

Читать полностью