Сколько VRAM модели действительно нужно.
Всё решают два числа: веса, которые фиксированы, и KV-кэш, который растёт вместе с обслуживаемым контекстом. Почти каждый неверный ответ появляется из-за попытки оценить второе через первое.
Коротко
- Weights
- Параметры в миллиардах × байт на параметр. 70B при 4-bit — это 35 GB.
- KV-кэш
- 2 × слои × KV-головы × размерность головы × байты, на токен. Никак не связано с числом параметров.
- Overhead
- Добавьте около 15 % на активации, контекст CUDA и фрагментацию аллокатора.
- Ловушка
- Квантование весов до 4-bit не квантует кэш. Он остаётся FP16 в любом распространённом стеке.
Формула
Здесь нет эмпирического правила, которое выдержит столкновение со второй моделью. Весь расчёт — это три строки, и их стоит выполнить, а не полагаться на множитель.
# 1. Weights
weights_gb = parameters_in_billions × bytes_per_parameter
# 2. KV cache, per token — then multiplied by the context you serve
bytes_per_tok = 2 × layers × kv_heads × head_dim × cache_bytes
cache_gb = bytes_per_tok × context_tokens × batch / 1024³
# 3. Everything else
total_gb = (weights_gb + cache_gb) × 1.15
2 здесь потому, что на токен приходится два тензора, K и V. bytes_per_parameter равен 2 для BF16, 1 для FP8, 0.5 для 4-bit. cache_bytes — это отдельное число, и именно эта отдельность чаще всего становится источником неверного ответа — см. ниже.
Веса
Простая половина. Она линейно зависит от числа параметров, и единственное, что нужно решить — точность.
| Модель | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) |
|---|---|---|---|
| Llama 3.1 8B | 16.0 GB | 8.0 GB | 4.0 GB |
| Qwen 3 32B | 64.0 GB | 32.0 GB | 16.0 GB |
| Llama 3.3 70B | 140.0 GB | 70.0 GB | 35.0 GB |
| Llama 3.1 405B | 810.0 GB | 405.0 GB | 202.5 GB |
Четырёхбитное квантование стоит качества, и насколько сильно — зависит от модели куда больше, чем от метода. Это оправданный компромисс, когда речь о разнице между одной картой и четырьмя; и плохой компромисс, когда вам и так хватает места.
KV-кэш
Сложная половина — та, что решает, хватит ли машины при 4k и окажется ли она бесполезной при 128k. Она зависит от числа слоёв и KV-голов, а не от размера модели.
| Модель | На токен | контекст 4k | контекст 8k | контекст 32k | контекст 128k |
|---|---|---|---|---|---|
| Llama 3.1 8B | 128 KB | 0.5 GB | 1.0 GB | 4.0 GB | 16.0 GB |
| Gemma 3 27B | 496 KB | 1.9 GB | 3.9 GB | 15.5 GB | 62.0 GB |
| Llama 3.3 70B | 320 KB | 1.3 GB | 2.5 GB | 10.0 GB | 40.0 GB |
| DeepSeek V3 671B-A37B (MoE) | 70 KB | 0.3 GB | 0.5 GB | 2.2 GB | 8.8 GB |
| Llama 3.1 405B | 504 KB | 2.0 GB | 3.9 GB | 15.8 GB | 63.0 GB |
Читайте последний столбец раньше первого. При контексте 4k кэш — это статистическая погрешность для каждой модели здесь; при 128k он больше, чем веса модели 70B в 4-bit. DeepSeek V3 — исключение, потому что её latent attention сжимает кэш по конструкции — именно поэтому она пригодна при длинном контексте, несмотря на то что это самая крупная модель в списке.
Где ошибаются в оценках
Оценивать кэш по числу параметров. Самая частая ошибка, та же, что показана выше. Модели 27B может понадобиться больше кэша, чем модели 70B.
Предположение, что 4-bit веса означают 4-bit кэш. Это не так. AWQ и GPTQ квантуют только веса; кэш остаётся FP16, пока вы явно не включите FP8 KV. Модель 70B при 4-bit и контексте 128k — это 35 GB весов и 40 GB кэша.
Рассчитывать только на один запрос. Кэш считается на каждую параллельную последовательность. Обслуживание восьми пользователей одновременно требует кэша в восемь раз больше — см. ниже.
Забыть про накладные расходы. Активации, контекст CUDA и фрагментация аллокатора — это реальные затраты. 15 % — намеренно осторожный запас; полностью его игнорировать — верный способ не загрузить модель, которая якобы «помещается».
Суммирование VRAM по всем картам. Четыре карты по 24 GB — это не одна карта на 96 GB. Тензорный параллелизм может разделить модель между ними, но тогда каждый слой синхронизируется через линк — см. руководство по NVLink.
Оценивать размер MoE по активным параметрам. DeepSeek V3 активирует 37B на токен, но в памяти нужно держать все 671B. Активные параметры определяют скорость; общее число параметров решает, загрузится ли модель вообще.
Разобранные примеры
Требуемая общая память — веса плюс кэш плюс накладные расходы — при контексте 8k и одном запросе. Это тот же расчёт, который конфигуратор проводит для каждой конфигурации в каталоге.
| Модель | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) | Самый маленький узел, который помещается |
|---|---|---|---|---|
| Llama 3.1 8B | 20 GB | 10 GB | 6 GB | NVIDIA L4 |
| Mistral Small 24B | 57 GB | 28 GB | 15 GB | NVIDIA L4 |
| Gemma 3 27B | 67 GB | 33 GB | 20 GB | NVIDIA L4 |
| Qwen 3 32B | 76 GB | 38 GB | 21 GB | NVIDIA L4 |
| Llama 3.3 70B | 164 GB | 82 GB | 43 GB | 2 × NVIDIA L4 |
| Mixtral 8×22B (MoE) | 326 GB | 163 GB | 83 GB | 4 × NVIDIA L4 |
| Qwen 3 235B-A22B (MoE) | 542 GB | 271 GB | 137 GB | 8 × NVIDIA L4 |
| DeepSeek V3 671B-A37B (MoE) | 1,544 GB | 772 GB | 386 GB | 8 × NVIDIA A100 PCIe |
| Llama 3.1 405B | 936 GB | 468 GB | 237 GB | 10 × NVIDIA L4 |
Последний столбец — самый дешёвый узел в нашем каталоге, вмещающий модель при 4-bit и контексте 8k, со скоростью генерации в один поток, которую допускает пропускная способность памяти. Цифры пропускной способности намеренно консервативны и откалиброваны по опубликованным измерениям — воспринимайте их как нижнюю границу, а не как обещание.
Обслуживание более одного запроса
Именно здесь машина, рассчитанная под демо, превращается в машину, неспособную обслуживать продукт. За веса платят один раз; за кэш — за каждую параллельную последовательность.
| Параллельные запросы | контекст 4k | контекст 8k | контекст 32k |
|---|---|---|---|
| 1 запрос | 42 GB | 43 GB | 52 GB |
| 4 запросов | 46 GB | 52 GB | 86 GB |
| 16 запросов | 63 GB | 86 GB | 224 GB |
| 64 запросов | 132 GB | 224 GB | 776 GB |
Llama 3.3 70B при 4-bit — это 35 GB весов, что бы вы ни делали. Всё, что выше 35 GB в этой таблице, — кэш. Именно поэтому «на ноутбуке всё работало» и «в продакшене всё упало» — это одна и та же модель на одной и той же карте.
--max-model-len реально обслуживаемым контекстом: vLLM резервирует кэш под заявленный максимум, так что заявленные 128k при обслуживании 8k впустую тратят в шестнадцать раз больше памяти, чем нужно.
Какая это машина
Три практических правила, которые следуют из всего сказанного выше, в порядке важности.
- Одна карта лучше нескольких, когда это возможно. Никакого шардинга, синхронизации между слоями, интерконнекта, о котором нужно думать. Если ваша модель при вашем контексте помещается на одну карту — берите именно её.
- Рассчитывайте под ваш реальный контекст и реальную параллельность, а не под заявленный максимум модели. Заявленный максимум — это возможность, а не обязательное требование.
- Если шардинг неизбежен, выбирайте NVLink. Разделение между четырьмя картами PCIe работает; разделение между четырьмя картами NVLink работает и заметно быстрее. Следующее руководство как раз о том, когда эта разница стоит своих денег.
Конфигуратор проводит этот расчёт в реальном времени по всем 41 конфигурациям: выберите модель, точность и длину контекста — и он покажет, какие узлы её вмещают, какие вмещают на одной карте, и сколько стоит каждый в месяц. Он использует формулу с этой страницы, так что если вы не согласны с нашей арифметикой, теперь вы можете указать, где именно.
Проверьте свою модель на каждой машине, которую мы сдаём.
Конфигуратор проделывает все эти вычисления по всем 41 конфигурациям ещё до того, как вы что-либо оплатите.
Другие руководства
- Расчёт · 7 мин
NVLink или PCIe: что нужно вашей задаче
Когда связь между картами определяет пропускную способность, когда она ничего не меняет и как понять, какой у вас случай, прежде чем платить за не тот узел.
Читать руководство - Расчёт · 9 мин
Выбор карты для моделей изображений и видео
Сколько VRAM нужно FLUX, SDXL, SD 3.5 и Wan 2.1, какая карта каталога держит каждую и почему дешёвая подходящая карта редко оказывается лучшим выбором.
Читать руководство - Расчёт · 10 мин
Выбор формата квантования
Во что обходятся AWQ, GPTQ, GGUF и FP8 по памяти, скорости и качеству — и почему формат с самыми лёгкими весами редко даёт самую маленькую модель.
Читать руководство