Модель на 7 миллиардов параметров занимает 14 ГБ в fp16 или 4 ГБ в 4-битной квантизации — разница в 3.5 раза при одинаковом наборе весов. Купить GPU-сервер, не посчитав VRAM заранее, — частая ошибка: карта либо простаивает наполовину, либо модель не влезает и падает с CUDA out of memory. Разберём, как посчитать нужный объём точно, а не на глаз.
Зачем считать VRAM заранее
Видеопамять — это единственный ресурс GPU, который нельзя расширить на лету, в отличие от оперативной памяти или диска. Если модель весит больше, чем есть VRAM, инференс либо не запустится, либо драйвер начнёт выгружать слои в системную RAM через --gpu-memory-utilization или аналог, и скорость упадёт в разы. Расчёт до покупки сервера экономит и деньги, и время на пересборку конфигурации.
Правило простое: считать нужно не только веса модели, но и контекст, батч и служебные буферы CUDA. Иногда именно контекст «съедает» половину карты на длинных диалогах.
Формула расчёта VRAM для инференса
Базовая оценка объёма памяти под веса:
VRAM_GB = (params_billion * bytes_per_param) * 1.2
Коэффициент 1.2 — запас на активации, KV-кэш и фрагментацию памяти. bytes_per_param зависит от точности: 2 байта для fp16/bf16, 1 байт для int8, 0.5 байта для int4. Для модели на 13 млрд параметров в fp16 получаем 13 * 2 * 1.2 ≈ 31.2 ГБ — уже не влезет в одну карту с 24 ГБ VRAM.
Отдельно добавьте KV-кэш: он растёт линейно с длиной контекста и числом одновременных запросов. Для 7B-модели с контекстом 8192 токена и одним диалогом кэш занимает примерно 1-2 ГБ, а при десяти параллельных сессиях — уже 10-20 ГБ.
Как квантизация меняет требования к памяти
Квантизация уменьшает точность весов, но резко снижает объём VRAM и почти не портит качество ответов при 8 и 4 битах. Ниже — ориентир для модели на 7 млрд параметров.
| Точность | Байт на параметр | VRAM под веса | Потеря качества |
|---|---|---|---|
| fp16 / bf16 | 2 | ~14 ГБ | нет |
| int8 | 1 | ~7 ГБ | минимальная |
| int4 (GGUF Q4) | 0.5 | ~3.5 ГБ | заметна на сложных задачах |
| int2 | 0.25 | ~1.8 ГБ | ощутимая |
Для запуска на CPU без GPU вообще стоит посмотреть квантизацию GGUF в llama.cpp — там та же формула работает уже для оперативной памяти, а не видеопамяти.
VRAM для дообучения отличается от инференса
Fine-tuning требует в 3-4 раза больше памяти, чем простой инференс той же модели, потому что нужно хранить градиенты и состояние оптимизатора. Полное дообучение 7B-модели в fp16 занимает около 60-70 ГБ VRAM — это уже несколько GPU. Метод LoRA снимает эту проблему: обучаются только небольшие адаптерные матрицы, а базовые веса остаются замороженными в 4-битной квантизации.
С LoRA и квантизацией QLoRA дообучение той же 7B-модели укладывается в 10-12 ГБ VRAM — доступно на одной карте среднего класса вместо кластера.
Сколько VRAM нужно популярным моделям
| Модель | fp16, инференс | int4, инференс |
|---|---|---|
| 7B (Mistral, Llama 3 8B) | 16 ГБ | 5 ГБ |
| 13-14B | 28 ГБ | 8 ГБ |
| 34B | 68 ГБ | 20 ГБ |
| 70B | 140 ГБ | 40 ГБ |
Значения включают запас на контекст 4096 токенов при одном пользователе; при росте нагрузки закладывайте дополнительно 10-20% на каждый параллельный поток запросов.
Какой GPU выбрать под бюджет
Для 7B-модели в 4-битной квантизации хватает карты с 8 ГБ VRAM — задача для Ollama на VDS с одной потребительской видеокартой. Для 13B в fp16 или чат-сервиса с несколькими одновременными пользователями нужна карта с 24 ГБ VRAM. Для 70B без квантизации разумной альтернативы кластеру из нескольких GPU нет — берите int4-версию и одну карту с 48 ГБ или разносите слои по двум картам через vLLM с tensor parallelism.
- До 8 ГБ VRAM — модели 7B в int4, личные и небольшие проекты.
- 16-24 ГБ VRAM — 7-13B в fp16 или 34B в int4.
- 48 ГБ и выше — 70B в int4 или fine-tuning средних моделей.
- Несколько GPU — 70B в fp16 или обучение с нуля.
Итог: как не ошибиться с расчётом
Перед заказом сервера посчитайте память по формуле, добавьте KV-кэш под реальную длину контекста и число параллельных запросов, а затем накиньте 15-20% запаса на фрагментацию. Дешевле взять карту с запасом по VRAM один раз, чем потом переносить модель и терять время на миграцию весов.
- Определите число параметров модели и целевую точность (fp16, int8, int4).
- Посчитайте базовый объём по формуле и добавьте KV-кэш под контекст.
- Для дообучения закладывайте в 3-4 раза больше памяти, чем для инференса, или используйте LoRA.
- Берите GPU с запасом 15-20% сверх расчёта — на фрагментацию и рост нагрузки.
Частые вопросы
Что произойдёт, если видеопамяти не хватит, — модель просто откажется запускаться?
Поведение зависит от инструмента запуска: часть фреймворков сразу падает с ошибкой нехватки памяти, а часть автоматически выгружает часть слоёв модели в оперативную память сервера и продолжает работу, но заметно медленнее. Такой режим годится для тестов и редких запросов, но для рабочего сервиса с живым трафиком лучше сразу подобрать карту с запасом по памяти.
Сильно ли квантизация ухудшает качество ответов на практике?
Квантизация почти не заметна на обычных диалогах и простых задачах, но на сложных рассуждениях, точных вычислениях и длинных цепочках логики разница в качестве становится ощутимой при самых агрессивных уровнях сжатия. Для большинства практических сценариев хостинга умеренная квантизация — разумный компромисс, а глубокое сжатие стоит проверять на собственных тестовых примерах перед продакшеном.
Нужно ли учитывать число одновременных пользователей чата при подборе видеокарты?
Да, число одновременных диалогов напрямую влияет на объём нужной памяти, потому что каждый активный запрос держит собственный кэш контекста поверх базовых весов модели. Если сервис рассчитан на несколько параллельных пользователей, карту нужно подбирать с запасом под это, а не только под единичный тестовый запрос в консоли при проверке перед покупкой сервера.
Можно ли запустить очень большую модель, если она не помещается в видеопамять одной карты?
Да, модель можно разнести по нескольким видеокартам, если на одной карте она целиком не помещается — для этого существуют режимы параллелизма, которые делят слои или тензоры модели между устройствами. Такой вариант сложнее в настройке и обычно уступает по скорости одной мощной карте, но остаётся рабочим способом запустить модель, которая иначе вообще не влезла бы.