Nova AI: Kubernetes для задач искусственного интеллекта

Внедрение искусственного интеллекта в бизнес-процессы стало распространенной практикой, которая, однако, зачастую упирается в сложности развертывания и управления инфраструктурой. На недавней конференции, организованной компанией Orion Soft, команда разработки представила продукт компании ‒ платформу Nova AI. Она позиционируется как решение, которое превращает Kubernetes в среду для выполнения задач AI и машинного обучения.

Как показывает практика, до 90% практических задач сегодня связано с инференсом, т. е. процессом выполнения предсказаний уже обученной моделью. Будь то корпоративный копилот, интеллектуальный поиск по документации или чат-бот, везде требуется надежная, масштабируемая и простая в управлении платформа для обслуживания моделей. Kubernetes, будучи оркестратором контейнеров, идеально подходит для этой роли, обеспечивая масштабируемость, надежность и гибкость использования разнородного оборудования.

Одним из ключевых компонентов платформы является inference-бэкенд KeySurf, главная задача которого заключается в том, чтобы максимально ускорить вывод модели в продакшн. Его основное преимущество ‒ скорость развертывания. Модель можно задеплоить буквально за 2‒3 минуты. Это достигается за счет использования закэшированных весов и init-контейнеров, которые подготавливают все необходимое окружение. KeySurf из «коробки» поддерживает практически все популярные бэкенды для инференса, включая ONNX, Triton, VLLM, Hugging Face Transformers и PyTorch, а также предоставляет возможности для кастомизации и написания собственных адаптеров. Модель описывается в стандартном манифесте, и после его применения оператор разворачивает все нужные компоненты. В целом это хороший выбор для быстрого прототипирования и развертывания моделей, не требующих сложной распределенной логики.

Для более сложных и ресурсоемких задач есть фреймворк Ray для распределенного выполнения Python-задач, интегрированный в платформу как полноценный Kubernetes-оператор. По сути, он позволяет создавать «кластер внутри кластера». Фреймворк представлен тремя основными сущностями. RayCluster ‒ долгоживущий кластер для выполнения множества задач или обслуживания моделей, подходящий для инференса больших языковых моделей, которые требуют постоянной доступности. RayJob предназначен для коротко живущих задач, например, еженедельного парсинга данных: кластер создается на время выполнения задачи и автоматически удаляется, экономя ресурсы. RayService ‒ это сущность для управления долго живущими сервисами, которая гарантирует их высокую доступность и автоматический перезапуск в случае сбоев.

Среди сильных сторон Ray можно выделить возможности истинного распределения вычислений. В отличие от простой репликации модели, когда несколько ее копий работают на разных GPU для балансировки нагрузки, решение позволяет распределить саму модель. Это реализуется двумя основными способами. Тензорный параллелизм предполагает разделение тензоров модели между несколькими GPU внутри одного узла и требует высокой пропускной способности, например, с помощью NVLink. Параллелизм по слоям позволяет распределять слои модели между разными узлами кластера, что менее требовательно к пропускной способности сети и дает возможность задействовать GPU с разных серверов. Комбинируя эти два подхода, можно достичь оптимального баланса между производительностью и утилизацией ресурсов даже для самых объемных моделей. Ray в связке с VLLM автоматически оборачивает развернутую модель в OpenAI-совместимый API, что избавляет разработчиков от необходимости писать дополнительный интерфейс на FastAPI.

Для автоматизации используется Airflow. Этот инструмент позволяет описывать задачи в виде направленных ациклических графов и выполнять их по расписанию, условию или вручную. В платформе Airflow работает с двумя основными типами операторов. Python-оператор обеспечивает возможность выполнять простые Python-задачи, например, регулярное обновление векторной базы данных для RAG-системы. Для этого достаточно описать базовый пайплайн в виде функции, и она будет запущена в стандартизированном Pod’e. Kubernetes Pod-оператор решает более сложные задачи, требующие специфического окружения: GPU, дополнительные тома с данными, кастомные образы контейнеров. Со слов спикеров, оператор закрывает 99% потребностей в специализированных пайплайнах. В рамках вебинара был приведен пример применения. Компания регулярно выпускает новую версию документации. Airflow можно настроить так, чтобы он раз в неделю автоматически скачивал обновления, прогонял их через эмбеддер, обновлял векторную базу и тем самым поддерживал актуальность AI-помощника, обеспечивая пользователям релевантные ответы.

В ходе вебинара были затронуты и ключевые вопросы инфраструктуры. Например, изоляция GPU для разных команд достигается стандартными механизмами Kubernetes, такими как Resource Quotas, в сочетании с технологиями NVIDIA MIG и Time Slicing, которые позволяют «нарезать» физические GPU и распределять их по неймспейсам. Что касается требований к сети для распределенных моделей, то при использовании параллелизма по слоям требования к пропускной способности между узлами умеренные, и такая конфигурация успешно работает даже в сетях в 10 Гбит/с. Важно отметить, что для использования GPU в Kubernetes, включая MIG и Time Slicing, не требуются дополнительные лицензии NVIDIA, в отличие от сценариев виртуализации с vGPU. Мониторинг утилизации GPU осуществляется через DCGM Exporter.

Таким образом, Nova AI выглядит как целостная платформа, которая позволяет Data Scientist’ам и ML-инженерам сосредоточиться на основных задачах по созданию и внедрению интеллектуальных продуктов, а не на сложностях управления окружением.

 

Следите за нашими новостями в Телеграм-канале Connect


Поделиться:



Следите за нашими новостями в
Телеграм-канале Connect

Спецпроект

Цифровой девелопмент

Подробнее
Спецпроект

Машиностроительные предприятия инвестируют в ПО

Подробнее