«Сколько нужно видеокарт, чтобы запустить 70B?» Кажется, что это задачка на деление: просто взять размер модели, разделить на память одной карты и округлить вверх. Сервис, собранный по такому расчёту, прекрасно отвечает одному тестировщику. А потом приходят первые десять пользователей с большими документами, и он встаёт.

Модель только один из жильцов видеопамяти. Рядом с ней живёт KV-кеш каждого диалога, о нём чуть ниже. За пределами GPU есть ещё сеть между картами и серверами, процессор, который раздаёт запросы, и диски, с которых всё это загружается. А за последние два года добавились стойки больше чем на сотню киловатт и модели с триллионом параметров, из которых на каждый токен работает малая часть.

Считаем память на пальцах

В формате BF16 каждый параметр занимает два байта. Для модели на 70 млрд параметров это 140 ГБ, и это только веса. Вот сколько памяти у ускорителей, которые уже стоят или вот-вот появятся в дата-центрах:

Ускоритель

Память на GPU

Скорость памяти

Останется после весов 70B в BF16

NVIDIA H100

80 ГБ HBM3

3,35 ТБ/с

веса не поместятся

NVIDIA H200

141 ГБ HBM3e

4,8 ТБ/с

впритык, под кеш почти ничего

NVIDIA B200

180 ГБ HBM3e

около 8 ТБ/с

около 40 ГБ

NVIDIA B300

288 ГБ HBM3e

около 8 ТБ/с

около 148 ГБ

AMD MI355X

288 ГБ HBM3e

8 ТБ/с

около 148 ГБ

NVIDIA Rubin

288 ГБ HBM4

до 22 ТБ/с

около 148 ГБ

Прикидка грубая, ведь движок инференса и служебные буферы тоже занимают память. Но порядок величин виден сразу. Скорость памяти пригодится чуть позже, когда дойдём до генерации ответа.

Теперь добавим пользователей. Чтобы на каждом шаге не перечитывать весь диалог, модель хранит ключи и значения для каждого уже обработанного токена. Это и есть KV-кеш, и его размер считается прямо по конфигурации модели. У Llama 3.1 70B 80 слоёв, 8 «голов» для ключей и значений и размерность головы 128. Ключи и значения хранятся отдельно, каждое число занимает 2 байта. Перемножаем: 2 × 80 × 8 × 128 × 2 байта, получается около 320 КБ на один токен.

Сервер NVIDIA DGX H100/H200 с фронтальной панелью и элементами управления: https://nvidianews.nvidia.com/news/nvidia-supercharges-hopper-the-worlds-leading-ai-computing-platform
Сервер NVIDIA DGX H100/H200 с фронтальной панелью и элементами управления: https://nvidianews.nvidia.com/news/nvidia-supercharges-hopper-the-worlds-leading-ai-computing-platform

Треть мегабайта звучит безобидно. Но один диалог на полный контекст в 128 тысяч токенов занимает уже около 43 ГБ. А десять человек, каждый из которых загрузил документ на 32 тысячи токенов, займут около 107 ГБ, это три четверти от объёма самих весов.

Веса занимают фиксированный объём, а кеш растёт с каждым новым диалогом, и под нагрузкой память съедает именно он. Вычислительные блоки GPU в этот момент могут быть заняты наполовину, а новые запросы уже стоят в очереди.

Веса можно ужать. В FP8 та же 70B займёт около 70 ГБ, но качество после квантования придётся проверять на своих задачах. Можно взять модель поменьше. Если не подходит ни то, ни другое, модель делят между несколькими картами, и с этого момента в расчёт входит сеть.

 Техническая схема сервера NVIDIA DGX H200: фронтальная панель и внутренняя компоновка с восемью GPU NVIDIA H200, двумя процессорами Intel Xeon, системной памятью DDR5 и NVMe SSD. Справа указаны элементы управления и основные характеристики системы.
Техническая схема сервера NVIDIA DGX H200: фронтальная панель и внутренняя компоновка с восемью GPU NVIDIA H200, двумя процессорами Intel Xeon, системной памятью DDR5 и NVMe SSD. Справа указаны элементы управления и основные характеристики системы.

Один ответ, две разные нагрузки

Пока пользователь ждёт ответа, GPU работает в двух очень непохожих режимах. Сначала идёт prefill. Модель разом читает весь запрос и заполняет KV-кеш, вычислений тут много, зато они хорошо параллелятся. Потом начинается decode, и модель выдаёт ответ по одному токену. Каждый следующий токен зависит от предыдущего, считать на шаге нужно немного, а вот читать из памяти приходится все веса и весь накопленный кеш.

Поэтому и тормозить сервис может двумя способами. Если первое слово появляется через десять секунд, смотрите на очередь и prefill. Если первое слово пришло сразу, а дальше текст ползёт, значит, вы упираетесь в decode и скорость памяти из таблицы выше. MLCommons в своих тестах измеряет эти задержки отдельно: TTFT – время до первого токена, TPOT – время на каждый следующий.

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

Делим модель: внутри сервера и между серверами

Если веса не влезают в одну карту, модель режут. Есть два основных способа, и в реальных конфигурациях их часто совмещают. При tensor parallelism каждый слой делят между несколькими GPU, каждая карта считает свой кусок матрицы, а потом все обмениваются результатами. При pipeline parallelism карты выстраиваются в конвейер: первая считает начальные слои, вторая продолжает.

Бывает и так, что резать ничего не нужно. Если модель помещается в одну карту, можно поставить по копии на каждую и раздавать им разные запросы. Весь сервис обслужит больше людей, но конкретный ответ быстрее не станет.

Начнём с памяти, она обычно заканчивается первой.

 Схема сравнения двух способов работы LLM на нескольких GPU: сверху один запрос последовательно обрабатывается на GPU 1 и GPU 2, между которыми разделены слои модели; снизу два независимых запроса обрабатываются параллельно на двух GPU, каждый из которых хранит полную копию модели.
Схема сравнения двух способов работы LLM на нескольких GPU: сверху один запрос последовательно обрабатывается на GPU 1 и GPU 2, между которыми разделены слои модели; снизу два независимых запроса обрабатываются параллельно на двух GPU, каждый из которых хранит полную копию модели.

Больше всего от сети зависит tensor parallelism: там карты синхронизируются пару раз на каждом слое, у 70B это больше сотни обменов на один токен. Внутри сервера GPU соединены через NVLink, и у H100 это 900 ГБ/с суммарно в обе стороны, то есть 450 ГБ/с в каждую. Между серверами данные идут через сетевые адаптеры. В DGX H100 у каждого GPU свой адаптер InfiniBand на 400 Гбит/с, это около 50 ГБ/с в каждую сторону. В одинаковых единицах разница примерно девятикратная.

Блок-схема вычислительного модуля NVIDIA: GPU соединены с CPU, NVLink-коммутаторами, BlueField DPU и сетевыми адаптерами ConnectX
Блок-схема вычислительного модуля NVIDIA: GPU соединены с CPU, NVLink-коммутаторами, BlueField DPU и сетевыми адаптерами ConnectX

В реальной работе скорость обычно ниже, чем в спецификациях. DeepSeek в отчёте о V3 указывает для своего кластера H800 160 ГБ/с по NVLink против 50 ГБ/с по InfiniBand, и, по словам разработчиков, это замер в одну сторону. NVLink у H800 к тому же урезан, так что разрыв там около трёх раз.

С новыми поколениями разрыв не сократился. У Rubin NVLink 6 даёт 3,6 ТБ/с на GPU в обе стороны, то есть 1,8 ТБ/с в каждую. Сетевой адаптер ConnectX-9 рассчитан на 1,6 Тбит/с, это 200 ГБ/с. Снова примерно девять раз.

Аппаратный модуль NVIDIA Vera Rubin с GPU Rubin и сопутствующими вычислительными компонентами
Аппаратный модуль NVIDIA Vera Rubin с GPU Rubin и сопутствующими вычислительными компонентами

NVIDIA ещё в поколении Blackwell пошла в обход. Вместо того чтобы подтягивать сеть до NVLink, она растянула NVLink на всю стойку. В GB200 NVL72, а теперь и в Vera Rubin NVL72 семьдесят два GPU связаны между собой так же, как восемь карт внутри обычного сервера. Граница, за которой начинается медленная сеть, отодвинулась с 8 карт до 72. Нам кажется, что это самое важное изменение в железе за последние пару лет, важнее прироста терафлопс. Модель, которой раньше нужно было девять серверов и медленная сеть между ними, теперь целиком живёт внутри одной стойки.

Конфигурация стойки NVIDIA NVL72 с вычислительными узлами, девятью NVLink-коммутаторами, блоками питания и управляющими Ethernet-коммутаторами
Конфигурация стойки NVIDIA NVL72 с вычислительными узлами, девятью NVLink-коммутаторами, блоками питания и управляющими Ethernet-коммутаторами

Это стоит держать в голо Больше всего от сети зависит tensor parallelism ве, если вы арендуете GPU в облаке. Вместе с картой вы арендуете её место в чужой топологии. Две H100 в одном сервере с NVLink и две H100 в разных серверах ведут себя по-разному, хотя в прайсе строки могут выглядеть одинаково. Сеть между узлами тоже бывает разной: кроме InfiniBand, используют Ethernet с RDMA (RoCE), на такой сети Meta, например, обучала Llama 3 405B. Перед арендой под распределённую модель спросите у провайдера, как соединены карты внутри узла и что стоит между узлами.

Схема NVIDIA NVLink для конфигураций на 36 и 72 GPU с вычислительными модулями, NVLink-коммутаторами и межстоечными соединениями
Схема NVIDIA NVLink для конфигураций на 36 и 72 GPU с вычислительными модулями, NVLink-коммутаторами и межстоечными соединениями

MoE: память как у гиганта, вычисления как у середнячка

Пока мы считали плотную 70B, многие крупные открытые модели перешли на Mixture of Experts. Внутри такой модели много «экспертов», отдельных блоков, и на каждый токен включаются только некоторые из них. У DeepSeek-V3 671 млрд параметров, из которых на один токен работают 37 млрд. А в MLPerf Inference 6.1 компания Lambda в открытой категории запустила Kimi K2.6, MoE-модель с триллионом параметров.

Для инфраструктуры это неприятная асимметрия. Считать приходится как для модели на 37B, а хранить нужно все 671B, потому что заранее неизвестно, какой эксперт понадобится следующему токену. Экспертов раскладывают по разным GPU (это называют expert parallelism), и каждый токен отправляется туда, где лежит нужный ему эксперт. Обмен идёт постоянно и по схеме «все со всеми», так что сеть снова выходит на первый план. С MoE одной цифры в названии модели уже не хватает. По общему числу параметров видно, сколько понадобится памяти, а по числу активных – насколько быстро модель будет отвечать. Мы бы всегда уточняли обе.

Схема архитектуры DeepSeek-V3: блок DeepSeekMoE с shared experts, routed experts и роутером Top-K, а также механизм Multi-Head Latent Attention.
Схема архитектуры DeepSeek-V3: блок DeepSeekMoE с shared experts, routed experts и роутером Top-K, а также механизм Multi-Head Latent Attention.

В отчёте о V3 DeepSeek описывает свою рабочую конфигурацию. Для обработки входящих запросов (prefill) минимум 4 узла и 32 GPU, для генерации ответов – 40 узлов и 320 GPU. Сами веса в FP8 помещаются и в один сервер с восемью H200, но для потока пользователей DeepSeek разворачивает модель вот так.

Зачем серверу с GPU процессор, RAM и NVMe

Удобнее всего разбирать на примере DGX H100, потому что NVIDIA публикует его полный состав. Кроме восьми GPU там два 56-ядерных Xeon, 2 ТБ оперативной памяти и восемь NVMe по 3,84 ТБ под кеш данных. Оперативной памяти в три с лишним раза больше, чем видеопамяти, а на дисках почти 31 ТБ.

Внутренняя компоновка NVIDIA DGX H100/H200: два CPU, 2 ТБ системной памяти, сетевые модули ConnectX-7, PCIe и внутренние соединения сервера.
Внутренняя компоновка NVIDIA DGX H100/H200: два CPU, 2 ТБ системной памяти, сетевые модули ConnectX-7, PCIe и внутренние соединения сервера.

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

Диски нужны при запуске, чтобы загрузить веса в видеопамять. 140 ГБ – заметный объём, и чем чаще сервис переключает модели, тем чаще повторяется холодный старт. Но в последние год-два у RAM и NVMe нашлась работа поважнее. Они хранят KV-кеш, который не поместился в видеопамять.

Представьте, что пользователь вернулся к диалогу через десять минут. Или сто человек задают вопросы по одному и тому же длинному документу. Пересчитать кеш значит ещё раз прогнать prefill, и проще достать готовый кеш с уровня пониже. NVIDIA Dynamo умеет выгружать его из видеопамяти в RAM, а оттуда на локальный диск. На CES 2026 NVIDIA показала отдельную платформу хранения под такой кеш на NVMe с DPU BlueField-4, поставки обещаны во второй половине 2026 года.

Комментарии (4)


  1. ToxaBes
    02.10.2026 17:32

    Твое лицо, когда еще не отошел от CPU-серверов аезы, а тебя уже глушат рекламой GPU
    Твое лицо, когда еще не отошел от CPU-серверов аезы, а тебя уже глушат рекламой GPU

    Веса можно ужать. В FP8 та же 70B займёт около 70 ГБ, но качество после квантования придётся проверять на своих задачах

    Все будет отлично с качеством, разница в пару процентов. Вот занимаемый размер сократится существенно. А если еще квантануть V в FP8 внутри KV-кеша, то название статьи совсем потеряет всякий смысл.

    Я понимаю, что статья рекламная и рассчитана на неразбирающихся в теме клиентов, но подскажите, кто в здравом уме будет размещать модели на хостинге, где даже на самых дорогих тарифах хост стабильно падает в ребут раз в две недели? Я даже молчу о такой забавной вещи как персональные данные (которые будут кидать в модель) и требования РКН к хостингам по ним.


    1. AezaTyan Автор
      02.10.2026 17:32

      Да, квантование весов модели в FP8 может примерно вдвое сократить занимаемый ими объём памяти, а FP8 KV-cache также способен заметно уменьшить расход памяти. Но утверждать, что потеря качества всегда составляет «пару процентов», слишком обобщённо. В документации vLLM отдельно рекомендуется калибровка FP8 KV-cache для максимальной точности, а также отмечается, что некорректные коэффициенты масштабирования могут влиять на accuracy.

      https://docs.vllm.ai/en/latest/features/quantization/quantized_kvcache/

      При этом в статье нигде не утверждается, что KV-cache нельзя оптимизировать. Основная мысль в другом: реальный LLM-сервис нельзя рассчитать простой формулой «размер модели / объём VRAM». Даже после FP8 остаются веса модели, KV-cache, служебные буферы, параллельные запросы, особенности prefill/decode, пропускная способность памяти и обмен между GPU. Именно поэтому эти компоненты в статье рассматриваются отдельно.

      NVIDIA Dynamo, например, поддерживает выгрузку KV-cache из памяти GPU в оперативную память и хранилище. Это как раз хороший пример того, что даже с оптимизациями ёмкость KV-cache остаётся отдельной инфраструктурной задачей.

      https://docs.nvidia.com/dynamo/dev/cli/kv-cache-offloading/overview

      то касается утверждения о том, что сервер AÉZA «стабильно падает в ребут раз в две недели»: нам неизвестно о какой-либо системной проблеме такого характера, инфраструктура работает в штатном режиме. Если вы действительно сталкиваетесь с регулярными перезагрузками, пожалуйста, предоставьте номер тикета, ID сервера и, если есть, логи или другие подтверждения. Мы подробно проверим ситуацию, и если проблема действительно окажется на нашей стороне, предоставим компенсацию в соответствии с нашей обычной практикой поддержки. 


  1. ToxaBes
    02.10.2026 17:32

    Но утверждать, что потеря качества всегда составляет «пару процентов», слишком обобщённо.

    В работе Give Me BF16 or Give Me Death? в прошлом году авторы оценили FP8, INT8 и INT4 относительно BF16 на академических бенчмарках и реальных задачах для моделей размером от 8B до 405B, выполнив более 500 000 оценок.

    Работа показала, что FP8 практически не дает потерь на всех масштабах моделей.

    FP8 по сравнению с BF16 сохраняет 99,75% точности. Самый худший случай показал 98,44% (BBH, модель 70B), т. е. потеря около 1,5%. Это не очень обобщенно, а полностью реально.

    Основная мысль в другом: реальный LLM-сервис нельзя рассчитать простой формулой «размер модели / объём VRAM». 

    Основная мысль статьи, которую я прочитал: LLM не работает на одной карте.

    Читателя подводят к мысли, что нужно запускать 70B модель на более чем на одной дорогущей 80GB карте (те минимум удвоить расходы) ради +1.5% точности.

    О том что на самом деле модели запускают не более чем в FP8 и столько карт просто не нужно статья умалчивает, лишь вскользь упоминая о FP8.

    Что касается утверждения о том, что сервер AÉZA «стабильно падает в ребут раз в две недели»: нам неизвестно о какой-либо системной проблеме такого характера, инфраструктура работает в штатном режиме.

    Поэтому я от вас и ушел, описал личный опыт, сервера были THR-4, MSK-4, IC14 и IC9-2. Стабильно работал только самый слабый из них IC9-2.

    Если вы действительно сталкиваетесь с регулярными перезагрузками, пожалуйста, предоставьте номер тикета, ID сервера и, если есть, логи или другие подтверждения. 

    Хороша ложка к обеду. Ушла история, но осадочек остался.


  1. AezaTyan Автор
    02.10.2026 17:32

    @ToxaBes Спасибо, что нашли время так подробно изложить свою позицию по статье. Мы обязательно учтём эти замечания в дальнейшей работе, чтобы повысить качество и точность наших технических материалов, а также сделать тему более понятной для читателей и лучше раскрывать её практические аспекты.

    Что касается вашего опыта использования нашего сервиса, нам жаль, что он оставил у вас негативное впечатление. Мы постоянно работаем над повышением стабильности инфраструктуры, качества серверов и сервиса в целом.

    Ещё раз приносим извинения за то, что ваш опыт не оправдал ожиданий, и благодарим вас за обратную связь. Желаем вам всего наилучшего и успехов в дальнейшем.