
Сколько видеопамяти нужно для инференса LLM?
Как выбрать GPU для LLM с учётом размера модели
Сколько видеопамяти нужно для инференса LLM? Начните с готового примера. Для модели 8B в формате BF16 с четырьмя одновременными запросами по 4 096 токенов веса и кэш займут около 17 ГиБ. На карте с 16 ГиБ этого места уже не хватит. Карта с 24 ГиБ — кандидат для тестового запуска: часть оставшейся памяти займёт vLLM.
Что занимает память видеокарты
Веса — параметры модели, которые загружаются на видеокарту. Их объём зависит от размера модели и формата хранения. Например, веса модели 8B занимают примерно 14,9 ГиБ в BF16. При 4-битном хранении расчётный минимум составляет 3,7 ГиБ. Фактический размер 4-битной сборки обычно выше, поэтому перед арендой проверьте размер весов именно той версии, которую собираетесь запускать.
KV-кэш — рабочая память модели. Она хранит промежуточные данные по уже обработанным токенам, чтобы не вычислять их заново при каждом следующем токене ответа. Чем длиннее запрос с ответом и чем больше запросов обрабатываются одновременно, тем больше места нужно кэшу. Ещё часть видеопамяти занимает сам движок. Поэтому результат впритык к объёму карты — повод выбрать конфигурацию с запасом или уменьшить нагрузку.
Как читать таблицу и выбрать GPU
Ниже расчётные значения для моделей класса 8B, 32B и 70B. Выберите строку своей модели, возьмите объём весов в нужном формате и прибавьте кэш. В ячейках кэша первое число относится к одному запросу, второе — к четырём одновременным. Длина включает вход и ответ. Все числа в ГиБ. Кэш рассчитан для BF16, память движка в таблицу не включена.
| Класс | Веса BF16 | Веса 4 бита | KV 4 096 токенов 1 / 4 | KV 16 384 токена 1 / 4 |
|---|---|---|---|---|
| 8B | 14,9 | 3,7 | 0,50 / 2,00 | 2,00 / 8,00 |
| 32B | 59,6 | 14,9 | 1,00 / 4,00 | 4,00 / 16,00 |
| 70B | 130,4 | 32,6 | 1,25 / 5,00 | 5,00 / 20,00 |
Например, у 32B с 4-битными весами четыре коротких запроса дают около 18,9 ГиБ по таблице (14,9 + 4). При четырёх запросах по 16 384 токена сумма уже около 30,9 ГиБ (14,9 + 16). Для короткого сценария можно проверить карту на 24 ГиБ. Для длинного 24 ГиБ не хватит, а 48 ГиБ — кандидат для теста с запасом. В обоих случаях реальный размер весов и расход движка нужно проверить.
Что проверить до длительной аренды
До оплаты определите версию модели, максимальную длину запроса с ответом и число запросов в пике. На Qudata.ai подберите GPU с нужным объёмом видеопамяти и проверьте выбранную конфигурацию на коротком прогоне. Посмотрите в журнале, какой объём KV-кэша доступен, и подайте столько длинных запросов одновременно, сколько ожидаете в пике. Если памяти не хватает, уменьшите контекст или число одновременных запросов. Для перехода на другую GPU на Qudata.ai понадобится арендовать подходящий инстанс.
Как пересчитать для другой модели
Для весов умножьте число параметров на размер параметра и разделите на 2³⁰. BF16 и FP16 используют 2 байта на параметр, идеальная 4-битная упаковка — 0,5 байта. Для модели с полным вниманием объём KV-кэша в байтах можно оценить как 2 × число слоёв × число KV-голов × размерность головы × байты на элемент кэша × суммарное число токенов во всех активных запросах. Двойка учитывает ключи и значения.
В таблице взяты архитектуры Llama 3.1 8B, Qwen2.5 32B и Llama 3.1 70B с 32, 64 и 80 слоями. У каждой восемь KV-голов и размерность головы 128. Квантование весов само по себе размер элемента кэша не меняет. Если вы отдельно квантуете KV-кэш в vLLM, используйте в формуле размер элемента выбранного формата и проверьте качество ответов.