Сколько VRAM нужно для LLM
Самый частый вопрос при запуске LLM: «Хватит ли VRAM?». Модель, которая не помещается в память GPU, либо не запустится, либо будет работать крайне медленно, используя память CPU. Понимание того, сколько VRAM нужно — критично при выборе GPU-сервера.
Ошибка в расчёте приводит к двум проблемам: либо покупке слишком мощного GPU с переплатой, либо нехватке VRAM, когда модель не запускается или работает в 10-100 раз медленнее. Точный расчёт помогает выбрать оптимальную конфигурацию.
В этой статье — подробный расчёт VRAM для популярных размеров моделей, методы оптимизации, рекомендации по выбору GPU. Если нужно арендовать GPU-сервер — поможем.
📋 Содержание статьи
Формула расчёта
Базовая формула для инференса LLM:
Простая формула
- Параметры модели × размер точности (в байтах) = базовый размер;
- + 20-30% на KV-кеш и активации;
- = минимум VRAM для запуска.
Пример для 7B модели
- 7 миллиардов параметров × 2 байта (FP16) = 14 ГБ;
- 14 ГБ × 1.3 = ~18 ГБ VRAM;
- Итого: 16-24 ГБ VRAM достаточно с запасом.
Точность и размер
- FP32: 4 байта на параметр. 7B = 28 ГБ;
- FP16/BF16: 2 байта на параметр. 7B = 14 ГБ. Стандарт для обучения;
- INT8: 1 байт. 7B = 7 ГБ. Хорошо для инференса;
- INT4: 0.5 байта. 7B = 3.5 ГБ. Максимальная экономия.
Формула для обучения
При обучении требования выше: нужны градиенты, состояния оптимизатора, активации.
- Полное обучение FP16: ~16-20 байт на параметр;
- 7B модель: 112-140 ГБ VRAM;
- 13B модель: 208-260 ГБ VRAM;
- 70B модель: 1.1-1.4 ТБ VRAM (кластер).
Таблица VRAM
Расчёт VRAM для популярных размеров моделей:
Инференс
| Размер модели | FP16 | INT8 | INT4 |
|---|---|---|---|
| 7B | 16-24 ГБ | 8-12 ГБ | 6-8 ГБ |
| 13B | 32-48 ГБ | 16-24 ГБ | 10-14 ГБ |
| 30B | 70-80 ГБ | 35-45 ГБ | 20-25 ГБ |
| 70B | 160+ ГБ | 80-100 ГБ | 40-50 ГБ |
| 175B | 400+ ГБ | 200+ ГБ | 100+ ГБ |
Обучение (полное)
| Размер модели | FP16 (полное) | LoRA | QLoRA |
|---|---|---|---|
| 7B | 80-140 ГБ | 24-40 ГБ | 12-16 ГБ |
| 13B | 160-260 ГБ | 40-80 ГБ | 16-24 ГБ |
| 30B | 320+ ГБ | 80-120 ГБ | 24-48 ГБ |
| 70B | 640+ ГБ | 160-240 ГБ | 48-80 ГБ |
| 175B | 1.5+ ТБ | 400+ ГБ | 120+ ГБ |
Данные приблизительные. Точный расчёт зависит от архитектуры, длины контекста, batch size.
Инференс
Для инференса требования ниже, чем для обучения.
Что занимает память
- Веса модели: основная часть. В FP16 занимает 2 байта на параметр;
- KV-кеш: зависит от длины контекста и batch size;
- Активации: промежуточные данные при forward pass;
- Overhead фреймворка: PyTorch, CUDA, буферы.
Что влияет на требования
- Точность: FP16, INT8, INT4;
- Длина контекста: 2k, 8k, 32k, 128k. KV-кеш растёт линейно;
- Batch size: чем больше одновременных запросов, тем больше VRAM;
- Архитектура: GQA/MQA уменьшают KV-кеш в 4-8 раз;
- Оптимизация: PagedAttention в vLLM снижает фрагментацию.
Рекомендации
- Для инференса используйте INT8 или INT4 квантизацию;
- Для длинного контекста используйте GQA/MQA модели;
- Применяйте PagedAttention через vLLM;
- Не берите VRAM «впритык» — нужен запас 20-30%.
Обучение
Обучение требует в 4-8 раз больше VRAM, чем инференс.
Что занимает память при обучении
- Веса модели: 2 байта на параметр в FP16;
- Градиенты: ещё 2 байта на параметр;
- Состояния оптимизатора (AdamW): 8 байт на параметр (momentum + variance в FP32);
- Активации: зависят от batch size и длины последовательности. Могут занимать больше, чем сами веса;
- Итого: ~16 байт на параметр для полного обучения FP16 с AdamW.
Пример для 7B модели
- Веса: 7B × 2 = 14 ГБ;
- Градиенты: 7B × 2 = 14 ГБ;
- Оптимизатор: 7B × 8 = 56 ГБ;
- Активации: 10-40 ГБ в зависимости от batch size;
- Итого: 80-140 ГБ VRAM.
Для чего хватает разного объёма
- 24 ГБ (RTX 4090): QLoRA для 7B;
- 48 ГБ (L40S): LoRA для 7B, QLoRA для 13B;
- 80 ГБ (A100, H100): полное обучение 7B, LoRA для 30B;
- 8x80 ГБ (кластер H100): обучение 70B+.
KV-кеш
KV-кеш — часто недооценённый фактор. Для длинных контекстов и большого batch size он может занимать больше памяти, чем сама модель.
Формула расчёта
- KV-кеш = 2 × batch_size × seq_len × num_layers × hidden_size × bytes_per_element;
- Пример для 7B модели: 2 × 1 × 8192 × 32 × 4096 × 2 = 4 ГБ на одного пользователя;
- Для 100 пользователей: 400 ГБ KV-кеша — больше, чем вся модель.
Как уменьшить
- GQA (Grouped-Query Attention): уменьшает KV-кеш в 4-8 раз. Используется в Llama 3;
- MQA (Multi-Query Attention): ещё сильнее уменьшает, но качество ниже. Используется в Falcon, PaLM;
- PagedAttention: эффективное управление памятью, меньше фрагментации;
- KV-кеш в квантизации: FP8 для KV-кеша, экономия в 2 раза;
- Sliding window attention: ограничение контекста для экономии памяти;
- Prefix caching: переиспользование общего system prompt.
💡 Важно
При инференсе для многих пользователей KV-кеш становится главным потребителем памяти. Модели с GQA экономят в разы больше VRAM, чем модели без неё. Llama 3 использует GQA — это одна из причин её популярности.
Оптимизация
Если VRAM не хватает, есть методы оптимизации.
Для инференса
- Квантизация: INT8 — 2x экономия, INT4 — 4x экономия;
- PagedAttention (vLLM): снижает фрагментацию KV-кеша до 4 раз;
- Prefix caching: кеширует общий system prompt;
- Модели с GQA: Llama 3, Mistral, Qwen 2;
- Speculative decoding: draft-модель вместо большой модели.
Для обучения
- LoRA: обучение только небольшой части параметров. Экономия 90% VRAM;
- QLoRA: LoRA + квантизация. Обучение 7B на 16 ГБ VRAM;
- DeepSpeed ZeRO: распределение состояний оптимизатора между GPU. ZeRO-1, 2, 3;
- FSDP (Fully Sharded Data Parallel): аналог ZeRO от Meta;
- Gradient checkpointing: обмен вычислений на память. До 70% экономии активаций;
- Mixed precision: FP16/BF16 для активаций;
- Gradient accumulation: эмуляция большого batch size;
- Flash Attention: экономия памяти в 2-4 раза.
Комбинирование методов
Максимальная экономия достигается комбинацией:
- QLoRA + Flash Attention + gradient checkpointing — обучение 7B на 16 ГБ;
- INT4 + vLLM + PagedAttention — инференс 70B на одной A100 80 ГБ;
- DeepSpeed ZeRO-3 + LoRA — обучение 70B на 8x A100 40 ГБ.
Какой GPU выбрать
Для инференса
- 7B: RTX 4090 (24 ГБ), RTX 5090 (32 ГБ);
- 13B: L40S (48 ГБ), A100 40 ГБ;
- 30B: A100 80 ГБ, H100 80 ГБ;
- 70B: H100 80 ГБ, 2x A100 80 ГБ, 2x RTX 4090 с INT4;
- 175B: 4x H100 80 ГБ или 8x A100 80 ГБ.
Для обучения
- 7B (QLoRA): RTX 4090 (24 ГБ), A100 40 ГБ;
- 7B (LoRA): A100 80 ГБ, H100 80 ГБ;
- 7B (полное): H100 80 ГБ, 2x A100 80 ГБ;
- 13B (LoRA): 2x A100 80 ГБ;
- 70B (полное): 8x H100 80 ГБ с NVLink;
- 175B: 16+ H100 с NVLink.
Что важно помимо VRAM
- Пропускная способность памяти: H100 — 3.35 ТБ/с, A100 — 2 ТБ/с;
- NVLink: для мульти-GPU конфигураций;
- TFLOPS: чем выше, тем быстрее обучение;
- FP8: только H100, даёт 2x ускорение;
- Охлаждение: H100 требует хорошего охлаждения.
Примеры
Чат-бот на Llama 3 8B
Инференс 8B модели с контекстом 8k, batch size 32. Требования: ~40 ГБ VRAM. Решение: A100 80 ГБ, H100 80 ГБ, или 2x RTX 4090.
Суммаризация на Mistral 7B
Длинные тексты, batch size 4. Требования: 24 ГБ с INT4. Решение: RTX 4090 — отличный выбор.
Файнтюнинг Llama 3 8B (LoRA)
Обучение на своём датасете. Требования: 24-40 ГБ VRAM. Решение: 1x A100 40 ГБ или RTX 4090 с QLoRA.
Production Llama 3 70B
Инференс 70B модели с высокой нагрузкой. Требования: 80 ГБ с INT8, 160 ГБ с FP16. Решение: 2x H100 с NVLink или 1x H100 с FP8.
Наши рекомендации
📌 Что вы получаете, заказывая GPU у нас
- Расчёт VRAM — под модель и нагрузку
- Подбор GPU — с запасом 20-30%
- Квантизацию — INT8, INT4, FP8
- vLLM или TensorRT — для инференса
- LoRA/QLoRA — для обучения
- Мониторинг — метрики использования VRAM
📌 Итоговый вывод
VRAM — критичный ресурс для LLM.
Что нужно знать:
- Формула для инференса: параметры × 2 байта + 20-30%;
- Формула для обучения: ~16 байт на параметр для полного FP16;
- 7B инференс: 16-24 ГБ VRAM;
- 70B инференс: 80-100 ГБ VRAM (INT8);
- KV-кеш: растёт с длиной контекста и batch size;
- Оптимизация: LoRA, QLoRA, DeepSpeed ZeRO, квантизация, PagedAttention;
- Выбор GPU: RTX 4090 для 7B, A100 80 ГБ для 30B, H100 для 70B+.
Хотите подобрать GPU под LLM? Закажите консультацию в Lead Hub.
Также рекомендуем: как выбрать GPU, H100 или A100, bare metal или облако, оптимизация инференса, ошибки при выборе, GPU-хостинг.