Перейти к содержанию

Сколько RAM и VRAM нужно для нейросети

Память для текстового инференса складывается из весов, KV-кеша и рабочих расходов. По одному числу параметров нельзя точно определить требуемый объём RAM или VRAM.

Обновлено Редакция GAW

Объём памяти LLM — бюджет конкретного запуска: одна и та же модель с разным контекстом и числом одновременных запросов требует разного количества памяти. Ниже оценивается инференс уже обученной текстовой модели, без обучения и состояния оптимизатора.

Коротко

  • Миллиард параметров — 109, а GiB — 230 байт.
  • Квантование весов и формат KV-кеша задаются независимо.
  • В простом full-attention кеше память линейно растёт с выделенным контекстом.
  • GQA использует число KV-heads, а не общее число голов внимания.
  • Результат расчёта нужно сопоставлять со свободной памятью и логами движка.
Из чего состоит бюджет памяти LLMВеса зависят от параметров и разрядности, KV-кеш — от архитектуры, контекста и параллельности. Рабочие буферы и память операционной системы учитываются отдельно.ВесаПараметры × биты / 8KV-кешСлои × головы × контекстРабочий запасБуферы, движок, аллокатор++Расчётная сумма ≠ измеренная VRAMОС и другие приложения требуют отдельной памяти
Три слагаемых бюджета; память ОС и соседних приложений учитывается дополнительно.

Веса: параметры и эффективная разрядность

MW=P⋅109⋅b/8M_W = P \cdot 10^9 \cdot b / 8

Здесь P — число параметров в миллиардах, b — эффективное число бит на параметр, результат — байты. Для условных 8 млрд параметров при 4,5 бит это 4 500 000 000 байт, около 4,19 GiB. При 16 бит — 16 000 000 000 байт, около 14,90 GiB. Это расчёт заданных условий, не характеристика конкретной модели.

Эффективная разрядность включает относящиеся к весам накладные данные. Если известен только ярлык квантования, сравните оценку с размером тензоров выбранного файла; не называйте её точным расходом. Для MoE учитываются все хранимые веса, а не только параметры активных экспертов.

KV-кеш: когда применима простая формула

Для одинаковых full-attention слоёв MHA/GQA, одинаковой размерности K и V и неквантованного кеша:

MKV=2⋅L⋅HKV⋅D⋅C⋅S⋅BM_{KV} = 2 \cdot L \cdot H_{KV} \cdot D \cdot C \cdot S \cdot B

L — слои; HKV — KV-heads; D — размерность головы; C — выделенные токены на последовательность; S — одновременные последовательности; B — байты элемента. Множитель 2 учитывает ключи и значения. FP16/BF16 здесь дают 2 байта, FP32 — 4. Число последовательностей не следует путать с размером пакета токенов при обработке промпта.

Учебная архитектураСлои / KV-heads / размерностьКонтекст / последовательности / форматKV-кеш
GQA, 32 головы внимания32 / 8 / 1284096 / 1 / FP160,50 GiB
MHA, 32 головы внимания32 / 32 / 1284096 / 1 / FP162,00 GiB
Та же GQA, два диалога32 / 8 / 1288192 / 2 / FP162,00 GiB

В vLLM описаны разные схемы выделения кеша для full attention, sliding window и гибридных моделей. Поэтому переносить таблицу на MLA, Mamba, смешанные слои или кеш с квантованием нельзя. Неизвестную часть бюджета нужно оставить неизвестной.

Рабочий запас и пример суммы

Для первого сравнения можно задать, а затем проверить экспериментом запас в процентах от весов. Это пользовательское допущение, не универсальная норма движка. Буферы вычислений, графы и поведение аллокатора зависят от настроек и могут не масштабироваться пропорционально весам.

При весах 4,5 млрд байт, заданном запасе 20 % и первом GQA-сценарии сумма равна примерно 4,19 + 0,84 + 0,50 = 5,53 GiB. В расчёте промежуточные байты не округляются. Память ОС, видеовывод и соседние программы сюда не входят. Проверьте сценарий в калькуляторе памяти LLM.

Как сверять с RAM и VRAM

  1. Запишите конфигурацию модели и фактический формат весов.
  2. Задайте контекст и параллельность явно; не полагайтесь на плавающие значения по умолчанию.
  3. Запустите короткий запрос и проверьте размещение. В Ollama для этого используется ollama ps.
  4. Сравните свободную память до запуска и после, сохранив условия. При CPU/GPU-разделении исследуйте обе области памяти.

Если модель работает на CPU вопреки ожиданиям, переходите к диагностике GPU. Если ещё не выбран способ запуска — к первому маршруту. Таблица выше не обещает, что конкретная видеокарта вместит модель или даст определённое число токенов в секунду.

Частые вопросы

Размер файла модели равен расходу VRAM?

Нет. Помимо весов нужны кеш и рабочие буферы. Часть данных может находиться в RAM, а VRAM занята также другими приложениями. Сравнивать файл с полной ёмкостью видеокарты недостаточно.

Можно ли сложить RAM и VRAM?

Для дискретной GPU это разные области памяти. Движок может делить модель между ними, но сумма объёмов не гарантирует размещение и скорость. В системах с общей памятью нельзя считать один физический объём дважды.

Почему Q4 не всегда означает ровно четыре бита на параметр?

Блоки квантования содержат служебные коэффициенты, а отдельные тензоры могут храниться с другой точностью. Для предварительного бюджета нужна эффективная разрядность конкретного представления, а не только имя схемы.

Источники

  1. llama.cpp: выделение KV-кеша — Прочитано 08.11.2026; размеры K/V и типы тензоров, ветка master
  2. vLLM: Hybrid KV Cache Manager — Прочитано 08.11.2026; full attention, sliding window и гибриды
  3. Ollama: Context length — Прочитано 08.11.2026; контекст и проверка размещения
Страница помогла?

Нашли ошибку? ·