GPU для LLM: VRAM, квантизация, выбор
Размер LLM определяет железо. Разбираем расчёт VRAM по числу параметров, квантизацию (Q4/Q5/Q8), и какой GPU реально нужен для inference 7B/13B/30B/70B моделей.
Обновлено: 2026-05-19
TL;DR
Размер LLM определяет железо. Грубое правило для inference:
VRAM_min ≈ params × bytes_per_param + KV_cache + 1-3 GB overhead
bytes_per_param: fp16 = 2, fp8 = 1, AWQ/GPTQ 4-bit = 0.5 (+overhead), GGUF Q4 ≈ 0.5-0.7.
KV cache для одного юзера на 4k context ≈ 0.5-2 GB (зависит от модели). Для batch-сервинга умножайте.
Под inference:
| Модель |
fp16 (1 GPU) |
AWQ 4-bit (1 GPU) |
| Phi-3.5 (3.8B) |
RTX 3060 12GB |
RTX 3050 8GB |
| LLaMA / Qwen 7B |
RTX 4090 24GB |
RTX 4060 Ti 16GB |
| LLaMA / Qwen 13B |
A100 40GB |
RTX 4090 24GB |
| Mistral Large 2 (123B) |
4× A100 80GB |
2× A100 80GB |
| LLaMA / Qwen 70B |
2× A100 80GB |
1× A100 80GB / 2× 4090 |
| DeepSeek V3 (671B MoE) |
8× H100 80GB |
4× H100 80GB |
Под обучение (fine-tuning) требования в 3-5 раз выше из-за gradients + optimizer state.
Что считается «GPU для LLM»
Под этим обычно подразумевают:
- Inference — модель уже обучена, вы её запускаете и шлёте запросы.
- Fine-tuning — дообучение под домен. LoRA — лёгкая. Full fine-tuning — тяжёлая.
- Pre-training — обучение с нуля. Это уже не для одного GPU, а для кластеров.
99% сценариев бизнеса — это inference. Под него и оптимизируется выбор.
Что влияет на VRAM
1. Размер модели
params × bytes_per_param:
- fp32 (full precision) — 4 байта на параметр. Уже не используется на современных GPU.
- fp16 / bf16 (half precision) — 2 байта. Стандарт для inference.
- fp8 — 1 байт. Поддержка с H100, RTX 4xxx.
- INT8 (квантизация) — 1 байт + overhead ~10%.
- AWQ / GPTQ 4-bit — ~0.5 байта + overhead ~10-15%.
- GGUF Q4_K_S — ~0.55 байта.
- GGUF Q3 — ~0.45 байта.
Пример: LLaMA 3.3 70B:
- fp16: 140 GB → 2× A100 80GB.
- AWQ 4-bit: ~40 GB → 1× A100 40GB или 2× RTX 4090.
- GGUF Q3: ~32 GB → 1× A100 40GB или 2× RTX 4090.
2. KV cache
Промежуточный state attention для текущего контекста. Растёт линейно с длиной контекста и линейно с количеством одновременных запросов.
Грубая формула для одного запроса:
KV_cache = 2 (key + value) × num_layers × num_kv_heads × head_dim × seq_len × bytes
Для LLaMA 70B (80 layers, 8 kv heads, head_dim=128, fp16):
- 4k context: ~1 GB
- 8k context: ~2 GB
- 32k context: ~8 GB
- 128k context: ~32 GB
Если у вас 100 одновременных запросов в среднем по 4k каждый — это 100 GB KV cache. На 80 GB GPU это требует swap или сокращения concurrency.
GQA (Grouped Query Attention) у современных моделей радикально снижает KV cache vs «классического» MHA — в 4-8 раз.
3. Activations overhead
PyTorch/CUDA рантайм, временные тензоры, оптимизатор графа. Обычно 1-3 GB. Не зависит от размера модели сильно.
Сценарии и рекомендации
Маленький стартап, прототип
Запрос: 1-10 пользователей в день, чат-бот на open-source LLM.
Выбор: managed-API через Together / Fireworks / gpupool с LLaMA 70B AWQ. Цена ~$0.88/1M tokens. Платите за реальное использование, нет CAPEX.
Своя GPU имеет смысл от ~$100/мес spend на API.
Средняя компания, internal-tool
Запрос: 100 одновременных пользователей, LLaMA 70B, контекст 8k.
Выбор: 1× A100 80GB + AWQ или 2× RTX 4090 + AWQ.
- A100 — стабильно, NVLink, datacenter-friendly. Аренда от ~₽250k/мес или $1.5-2/час.
- 2× RTX 4090 — дешевле, но NVIDIA GeForce EULA technically запрещает datacenter use. Серая зона, для R&D OK, для прод-B2B рискованно.
Большая компания, прод-сервис
Запрос: 1000+ одновременных пользователей, low latency, RU-residency.
Выбор: 4-8× A100 80GB или 2× H100 80GB в датацентре в РФ (Selectel, MWS). vLLM с continuous batching + autoscale на k8s.
Цена: ₽1-3M/мес для baseline + бёрстовая компонента через managed-API.
Reasoning-задачи (DeepSeek R1, o1-like)
Запрос: сложное рассуждение, code generation, math.
Выбор: DeepSeek R1 (671B MoE, активно 37B) через managed-API. Self-host — только если у вас есть 8× H100 80GB и команда MLOps.
Через DeepSeek official API — $0.55/1M input, $2.19/1M output. Это в 5-10× дешевле OpenAI o1.
Edge / mobile inference
Запрос: запуск на десктопе пользователя, без сервера.
Выбор: Phi-3.5 (3.8B), LLaMA 3.2 3B, Qwen 2.5 3B через llama.cpp + GGUF Q4. Работает на RTX 3060/4060 (12 GB), даже на Apple Silicon M1/M2/M3 через Metal.
Для real-time UX — это лимит. Для async-задач (summarization при ночной обработке) — годится и на CPU.
Производительность
Throughput (tokens/sec на одном пользователе, single batch):
| GPU |
LLaMA 7B fp16 |
LLaMA 13B fp16 |
LLaMA 70B AWQ |
LLaMA 70B fp16 (multi-GPU) |
| RTX 3090 24GB |
30 tok/s |
18 tok/s |
10 tok/s |
- |
| RTX 4090 24GB |
50 tok/s |
30 tok/s |
20 tok/s |
- |
| A100 40GB |
50 tok/s |
30 tok/s |
- |
- |
| A100 80GB |
55 tok/s |
35 tok/s |
25 tok/s |
30 tok/s (2× NVLink) |
| H100 80GB |
90 tok/s |
60 tok/s |
45 tok/s |
55 tok/s (2× NVLink) |
| Groq LPU (cloud) |
- |
- |
- |
280 tok/s (специфика LPU) |
С vLLM continuous batching при 50+ одновременных пользователях aggregate throughput растёт в 5-10×, потому что GPU постоянно занят.
NVLink
Для multi-GPU inference большой модели NVLink критичен:
- 2× A100 через NVLink: ~600 GB/s.
- 2× A100 через PCIe 4.0: ~32 GB/s.
Разница в throughput для LLaMA 70B на 2 GPU — 2-3×. Если предлагают «2× A100», уточняйте — NVLink или PCIe.
Для RTX 4090 NVLink нет вообще (NVIDIA отключила). Это значит, 70B fp16 на 2× 4090 будет медленным.
AMD MI300X
192 GB HBM3, $7-10/час bare-metal — теоретически отличный выбор для больших моделей. Но:
- ROCm экосистема меньше CUDA. vLLM работает, но не все features.
- Меньше документации, меньше готовых Docker-образов.
- Часть моделей требует ручной конвертации.
Для R&D — интересно. Для production — пока риск, кроме случаев, когда у вас уже есть AMD-эксперт.
Когда self-host выгоднее API
Прикидка: A100 80GB через gpupool/Selectel — $1.5-2/час bare-metal.
- 1× A100 + LLaMA 70B AWQ + vLLM: ~50 tok/s aggregate при 30 одновременных юзерах = ~150M tokens/мес работы.
- Стоимость аренды: $1500/мес.
- Та же нагрузка на Together: 150M × $0.88/M = $132/мес.
Парадокс? Together выгоднее, потому что 1 A100 не утилизирована на 100%. Если поднять нагрузку до 1B tokens/мес — Together будет $880, своя — те же $1500. Уже близко.
Break-even примерно при 3-5B tokens/мес для open-source 70B.
Self-host оправдан, если:
- Регуляторика требует.
- Volume > break-even.
- Нужен fine-tuning без отправки данных третьим лицам.
Что почитать дальше
Частые вопросы
Как рассчитать VRAM для LLM?
Примерно: parameters × bytes_per_param + KV cache. fp16 = 2 bytes/param. 7B в fp16 ≈ 14 GB + 1-2 GB KV cache при context 4k. Q4 квантизация ≈ 4 GB на 7B.
На каком GPU LLaMA 70B?
fp16 — 2× A100 80GB или H100 80GB через NVLink. Q4 GGUF — 1× A100 40GB или RTX 4090 (тесно). Q5_K_M — 2× RTX 4090.
Достаточно ли RTX 4090 для 13B?
fp16 — впритык (26 GB нужно vs 24 GB). Q8 — комфортно. С коротким context — fp16 работает.
Что такое KV cache?
Промежуточные state трансформера для текущего контекста. Растёт линейно с длиной запроса. На 8k context для 7B модели — около 1-2 GB.