Статьи
Сколько видеопамяти нужно для ИИ-сервера
Эта статья даёт понятные ориентиры по выбору объёма видеопамяти (VRAM) для инференса и дообучения. Мы используем два рабочих способа расчёта — быстрый прикидочный и более точный инженерный — и сверяем их на реальном примере. Так вы избежите недокомплекта и не переплатите за «лишние» гигабайты.
Ключевая мысль
Потребление VRAM складывается из весов модели и памяти под контекст (KV-кэш), плюс служебные буферы. Веса занимают память один раз на GPU, а контекст растёт по длине окна и числу одновременных потоков. Всегда оставляйте резерв +20%.
Подход А. Быстрый прикидочный расчёт (с запасом)
Устойчивые усреднённые коэффициенты:
- Вес модели:
≈ 1,3 ГБ на 1 млрд параметров - Контекст на поток:
≈ 1,5 ГБ на 1000 токенов - Резерв:
+20%
Формула:VRAM ≈ Вес + (Контекст_на_1k × (Окно/1000) × Одновременные_потоки) × 1.2
Пример (7B, окно 4k, 5 потоков):
- Вес: 1,3 × 7 = 9,1 ГБ
- Контекст: 1,5 × 4 = 6 ГБ/поток → ×5 = 30 ГБ
- Итого: (9,1 + 30) × 1,2 = 46,9 ГБ → ориентир GPU 48 ГБ
Когда полезно: пресейл-оценки, быстрые пилоты, ситуации с неопределённой нагрузкой, где избыточность важнее экономии.
Подход Б. Инженерный кросс-чек (веса + KV-кэш)
Опирается на точность весов и реальный объём кэша внимания.
Веса модели (ориентиры)
- BF16/FP16: ~2 байта/параметр → 7B ≈ ~14 ГБ
- FP8 / INT8: ~1 байт/параметр → 7B ≈ ~7–9 ГБ
- INT4: ~0,5 байта/параметр → 7B ≈ ~4–6 ГБ
KV-кэш на поток в FP16 (на 1000 токенов)
- 7B: ~0,45–0,6 ГБ
- 13B: ~0,8–1,0 ГБ
- 34B: ~1,8–2,2 ГБ
- 65–70B: ~3,0–3,6 ГБ
Примечание: при FP8/INT8-KV эти значения уменьшаются примерно в 1,5–2×.
Формула:VRAM ≈ Веса + (KV_на_1k × (Окно/1000) × Одновременные_потоки) × 1.2
Тот же пример (7B, 4k, 5 потоков):
- Веса (BF16): ~14 ГБ
- KV-кэш: ~0,5 × 4 × 5 = ~10 ГБ
- Итого: (14 + 10) × 1,2 = ~28,8 ГБ → минимум 32 ГБ, комфортно 48 ГБ
- С INT8-весами: (8 + 10) × 1,2 = ~21,6 ГБ → подходит 24–32 ГБ
Когда полезно: продакшн-сметы, экономия бюджета, сравнение «толстого» GPU и узла с несколькими картами.
Как посчитать самому — пошагово
- Выберите формат весов: BF16/FP16 (обучение/дообучение) или INT8/INT4 (инференс-экономия).
- Оцените веса:
Параметры × байты_на_параметр. - Оцените KV-кэш: возьмите ориентир из таблицы выше и умножьте на
(Окно/1000) × Одновременные_потоки. - Посчитайте по обоим подходам и возьмите большее значение.
- Добавьте резерв +20% и небольшой запас на рост контекста/параллельности.
Быстрые ориентиры (инференс)
| Класс задачи | Режим | Комфортный объём VRAM на GPU |
|---|---|---|
| 7–13B, окно 4–8k, 1–8 потоков | INT8 | 24–32 ГБ |
| 7–13B, окно 4–8k, 1–8 потоков | BF16 | 48 ГБ |
| 30–34B | Квантовка | ~48 ГБ |
| 30–34B | BF16 | 80–96 ГБ |
| 65–70B | BF16 | 80–96+ ГБ или 2×48 ГБ с параллелизмом |
| Длинный контекст 64–128k | любое | 141–192 ГБ на GPU или 2–4×48–96 ГБ с NVLink/NVSwitch |
Дообучение (LoRA/QLoRA): для 7–13B удобно иметь 48 ГБ, для 30–70B — 80–96+ ГБ.
Что сильнее всего влияет на VRAM
- Длина контекста и одновременные потоки — KV-кэш растёт линейно.
- Формат весов/кэша — INT8/INT4 и FP8/INT8-KV сильно снижают потребление.
- Batch и параллелизм — увеличивают пиковые буферы (особенно без FlashAttention/gradient checkpointing).
- Offloading в RAM/NVMe — помогает «влезть», но повышает латентность и снижает скорость.
Рекомендации от MDM Electronics
- Универсальный инференс и пилоты: 48 ГБ на GPU — тянет 13–30B, 70B с квантовкой и умеренным контекстом.
- Обучение/дообучение и стабильные продакшн-нагрузки: 80–96+ ГБ.
- Очень длинный контекст и крупные модели: 141+ ГБ на карту или узлы с 2–4×48–96 ГБ и NVLink/NVSwitch.
Поможем рассчитать под ваш стек: подберём конфигурацию по конкретным моделям, окну контекста и SLA, проведём тесты, измерим VRAM-пики и настроим параллелизм так, чтобы вы платили только за то, что даёт скорость и качество.