Оптимизируйте пропускную способность ИИ-инфраструктуры с помощью GPU
В производственных средах Kubernetes несоответствие между требованиями моделей и размером GPU приводит к неэффективности. Легковесные модели автоматического распознавания речи (ASR) или текст-в-речь (TTS) могут требовать всего 10 ГБ видеопамяти, занимая при этом весь GPU в стандартных развертываниях Kubernetes. Поскольку планировщик связывает модель с одним или несколькими GPU и не может легко распределять ресурсы между моделями, дорогостоящие вычислительные ресурсы часто остаются недоиспользованными.
Решение этой проблемы заключается не только в снижении затрат, но и в оптимизации плотности кластера для обслуживания большего числа одновременно работающих пользователей на одном оборудовании высшего класса. В этом руководстве подробно описывается, как реализовать и протестировать стратегии разделения GPU, в частности, NVIDIA Multi-Instance GPU (MIG) и временное разделение, чтобы полностью использовать вычислительные ресурсы.
Используя производственный голосовой ИИ в качестве тестовой среды, мы показываем, как комбинировать модели для максимизации возврата на инвестиции в инфраструктуру, сохраняя при этом более 99% надежности и строгие гарантии задержки. По умолчанию плагин NVIDIA для Kubernetes отображает GPU как целочисленные ресурсы. Подразделение запрашивает nvidia.com/gpu: 1, и планировщик связывает его с физическим устройством.
Большие языковые модели (LLM), такие как NVIDIA Nemotron, Llama 3 или Qwen 7B/8B, требуют выделенных вычислений для поддержания низкого времени до первого токена и высокой пропускной способности. Однако вспомогательные модели в генеративной ИИ-цепочке, такие как модели встраивания, ASR, TTS или защитные механизмы, часто используют лишь часть ресурсов карты. Запуск этих легковесных моделей на выделенных GPU приводит к низкой загрузке и увеличению числа узлов, необходимых для запуска того же количества подов.
Для решения этой проблемы необходимо разорвать 1:1 связь между подами и GPU. Мы оценили две основные стратегии для разделения GPU, поддерживаемые NVIDIA GPU Operator: программное разделение и временное разделение. Временное разделение позволяет нескольким процессам NVIDIA CUDA совместно использовать GPU, чередуя выполнение. Это работает аналогично планировщику CPU: контекст A выполняется, приостанавливается, и выполняется контекст B. В дополнение к временной сегментации, NVIDIA Multi-Process Service (MPS) предлагает альтернативный подход, позволяющий нескольким процессам одновременно делить ресурсы GPU.
Однако в производственной среде оба метода делят один контекст выполнения, что ограничивает изоляцию. MIG физически разделяет GPU на отдельные экземпляры, каждый из которых имеет свою собственную память и кэш. Это обеспечивает строгую качество обслуживания. Консолидируя вспомогательные модели, такие как ASR и TTS, мы можем максимально использовать оборудование, сохраняя при этом отзывчивость и минимальные задержки. Наша гипотеза заключается в том, что консолидация этих рабочих нагрузок на одном GPU сохраняет задержку и колебания, освобождая вычислительные ресурсы для дополнительных экземпляров LLM.
Ускорьте производство токенов в AI-фабриках с NVIDIA Mission Control
Создайте белковые связывающие агенты с помощью Proteina-Complexa
Похожие статьи
Исследователи Meta представили гиперагенты для самообучающегося ИИ
Исследователи Meta представили гиперагенты, которые улучшают ИИ для не программируемых задач.
OpenAI обновляет SDK для агентов, чтобы помочь компаниям создавать более безопасные решения
OpenAI обновила SDK для агентов, добавив новые функции для бизнеса.
Оптимизация использования GPU для языковых моделей и снижение затрат
Оптимизация GPU для языковых моделей снижает затраты и повышает эффективность.