Анатомия ИИ-инфраструктуры: почему одной видеокарты недостаточно для LLM

Habr AI · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Запуск больших языковых моделей требует учета не только веса параметров, но и динамического роста KV-кеша, который под нагрузкой может занимать больше памяти, чем сама модель. Ключевым фактором производительности становится скорость обмена данными между GPU, где новые архитектуры NVIDIA стирают границу между серверами, объединяя десятки ускорителей в единую топологию.

Понимание внутренней работы инференс-инфраструктуры критически важно для инженеров и архитекторов, чтобы корректно оценивать стоимость и производительность облачных GPU-сервисов. Ошибки в расчете требований к памяти и сети приводят к деградации качества обслуживания пользователей даже при наличии мощного железа.

Многие разработчики ошибочно полагают, что для запуска модели достаточно разделить ее размер на объем видеопамяти одной карты. Однако реальная картина значительно сложнее: в памяти GPU помимо весов модели постоянно растет KV-кеш, который хранит контекст каждого активного диалога. Например, у Llama 3.1 70B один токен занимает около 320 КБ кеша. При полном контексте в 128 тысяч токенов это превращается в 43 ГБ, а десять пользователей с длинными документами могут занять 107 ГБ, что сопоставимо с размером самих весов. Именно этот динамический компонент часто становится узким местом, заставляя новые запросы ждать в очереди, даже если вычислительные блоки GPU загружены не полностью.

Процесс генерации ответа состоит из двух фаз: prefill и decode. Первая фаза, когда модель обрабатывает весь входной текст, требует высокой пропускной способности и хорошо параллелится. Вторая фаза, генерация токенов по одному, ограничена скоростью чтения памяти, так как на каждом шаге нужно загружать все веса и накопленный кеш. Эти режимы конкурируют за ресурсы: длинный prefill нового запроса может замедлить генерацию у других пользователей. Поэтому в современных системах, таких как NVIDIA Dynamo, эти этапы часто разделяют по разным GPU, что требует высокой скорости передачи данных между ними.

Когда модель не помещается в одну карту, ее распределяют между несколькими устройствами. Tensor parallelism требует частой синхронизации результатов между GPU на каждом слое, что делает его крайне чувствительным к скорости сети. Внутри сервера карты соединены через NVLink с пропускной способностью до 900 ГБ/с, тогда как между серверами используется InfiniBand или Ethernet со скоростью в разы ниже. Разрыв в производительности может достигать девятикратного, что критично для распределенных вычислений.

NVIDIA изменила подход к решению этой проблемы, расширив область действия NVLink. В системах GB200 NVL72 и Vera Rubin NVL72 семьдесят два GPU связаны так же тесно, как восемь карт внутри обычного сервера. Это позволяет разместить модели, которые ранее требовали нескольких серверов и медленной межсерверной сети, в пределах одной стойки. Для арендаторов облачных ресурсов это означает, что топология соединения карт становится таким же важным параметром, как и сама мощность ускорителя.

Архитектура Mixture of Experts (MoE) добавляет еще один слой сложности. Модели вроде DeepSeek-V3 имеют сотни миллиардов параметров, но на каждый токен активируются лишь некоторые из них. Это создает асимметрию: вычисления идут как для средней модели, а память требуется как для гигантской. Эксперты распределяются по разным GPU, и постоянный обмен данными между ними делает сеть ключевым фактором производительности.

Наконец, нельзя игнорировать роль CPU, оперативной памяти и дисков. Они не только загружают веса при старте, но и служат буфером для KV-кеша, который не помещается в видеопамять. NVIDIA уже анонсировала специализированные платформы хранения кеша на NVMe с использованием DPU BlueField-4, что свидетельствует о том, что инфраструктура AI эволюционирует от простых наборов видеокарт к сложным, многоуровневым системам управления памятью и данными.