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

Калькулятор памяти LLM: веса и KV-кеш

Рассчитайте веса и заданный рабочий запас. Если известна архитектура однородной MHA/GQA-модели, добавьте KV-кеш; иначе получите только известную часть бюджета.

Исходные данные

млрд
бит/параметр
%

Результат

Веса модели
4,191 GiB
Заданный запас (без KV)
0,8382 GiB
KV-кеш
Не рассчитан
Известная часть, без KV
5,029 GiB

Это бюджет памяти, не измерение RAM или VRAM. Запас задаёте вы; память ОС и других приложений добавляется отдельно. MLA, гибридные слои, sliding window и квантованный KV не рассчитываются. Распределение CPU/GPU и скорость не прогнозируются.

Расчёт выполнен по формулам и данным из источников, приведённых на этой странице, и не заменяет проверку: параметры компонентов у разных производителей и даже партий различаются. Перед применением сверяйте результат с документацией на конкретные детали.

Калькулятор оценивает память текстового инференса по заданным условиям. Он не определяет подходящую видеокарту и не прогнозирует скорость. Разбор отдельных слагаемых — в статье о RAM и VRAM.

Формулы и единицы

Для P миллиардов параметров и эффективных b бит на параметр:

MW=P⋅109⋅b/8,MR=MW⋅r/100M_W = P \cdot 10^9 \cdot b / 8, \qquad M_R = M_W \cdot r / 100

r — заданный пользователем запас в процентах от весов. Запас не включает KV-кеш. Для одинаковых full-attention слоёв с равными размерами K и V:

MKV=2LHKVDCSBM_{KV} = 2 L H_{KV} D C S B

Все результаты формул — байты; вывод делится на 230 для GiB. Округляется только отображение.

ВходСмысл
Слои LЧисло одинаковых full-attention слоёв
KV-heads HKVДля MHA равно числу attention-heads; для GQA делит его без остатка
Размерность DРазмер одной головы K и V
Контекст CВыделенные токены на последовательность, включая место для ответа
Последовательности SОдновременные диалоги, не пакет токенов промпта
Формат BFP16/BF16 — 2 байта, FP32 — 4 байта
Из чего состоит бюджет памяти LLMВеса зависят от параметров и разрядности, KV-кеш — от архитектуры, контекста и параллельности. Рабочие буферы и память операционной системы учитываются отдельно.ВесаПараметры × биты / 8KV-кешСлои × головы × контекстРабочий запасБуферы, движок, аллокатор++Расчётная сумма ≠ измеренная VRAMОС и другие приложения требуют отдельной памяти
Запас задаётся независимо; неизвестный кеш нельзя заменять нулём.

Проверочный пример

Условные 8 млрд параметров, 4,5 бит и запас 20 % дают 4 500 000 000 + 900 000 000 байт, около 5,03 GiB без кеша. Для GQA с 32 слоями, 32 головами внимания, 8 KV-heads, размерностью 128, контекстом 4096, одной последовательностью и FP16 добавляется ровно 0,50 GiB. Сумма — около 5,53 GiB.

Если заменить GQA на MHA с 32 KV-heads, кеш вырастет до 2,00 GiB. Это синтетические параметры для проверки формулы, не пресет конкретной модели.

Пример с Qwen3-4B Q4_K_M

Подставить параметры Qwen3-4B

В карточке указано около 4,0 млрд параметров. Для файла 2,50 GB это даёт эффективную оценку 5 бит на параметр, или примерно 2,33 GiB в строке весов. Размер файла включает служебные данные и используется как приближение для бюджета.

В конфигурации 36 слоёв, 32 головы внимания, 8 голов KV и размерность головы 128. При 4096 токенах, одной последовательности и FP16 кеш составляет 0,5625 GiB. Условный запас 20 % добавляет около 0,47 GiB. Суммарная оценка составляет около 3,36 GiB. Удвоение контекста до 8192 удваивает кеш до 1,125 GiB при тех же весах. Размеры других сборок проверьте по сравнению форматов GGUF.

Ограничения

Память ОС и других приложений учитывайте отдельно. Процентный запас — допущение, которое нужно сверить с реальным запуском: буферы не обязаны быть пропорциональны весам. Выравнивание, страницы кеша, графы, prefix sharing и дополнительные модели могут менять расход. Для неизвестной архитектуры сумма остаётся частичной даже при большом запасе.

Вычисления выполняются в браузере. Ссылка на расчёт сохраняет входные значения в параметрах URL; каноническая страница инструмента остаётся общей. После первого запуска проверьте устройство выполнения по диагностике Ollama.

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

Почему калькулятор не пишет точный объём VRAM?

Он считает аналитический бюджет, без распределения между CPU и GPU и без измерений аллокатора. Реальный расход зависит от программы, контекста, буферов и других приложений.

Что ввести в поле эффективной разрядности?

Среднее число бит на хранимый параметр с относящимися к весам служебными данными. Значение 4,5 — учебное допущение, а не точная характеристика любого файла Q4.

Можно ли посчитать неизвестную архитектуру?

Только веса и заданный запас. KV-кеш остаётся неизвестным и не считается нулевым. Детальный режим не применяется к MLA, sliding window, гибридным слоям или квантованному кешу.

Источники

  1. Qwen3-4B: конфигурация — Проверено 08.11.2026. 36 слоёв, 32 головы Q, 8 голов KV, размерность головы 128, sliding window отключено
  2. Qwen3-4B-GGUF: файлы ревизии bc64014 — Q4_K_M около 2,50 GB на диске
  3. llama.cpp: KV cache — Прочитано 08.11.2026; K/V-тензоры, тип и размеры
  4. vLLM: Hybrid KV Cache Manager — Прочитано 08.11.2026; границы простой full-attention модели

Где пригодится

Встроить калькулятор на свой сайт

Скопируйте код и вставьте его в HTML страницы, статьи или вики. Виджет бесплатный, без рекламы, счётчиков и cookie. Условие одно — ссылка на GAW под рамкой остаётся на месте. Подробнее о виджетах

<iframe src="https://gaw.ru/embed/llm-memory/" title="Калькулятор памяти LLM: веса и KV-кеш" width="100%" height="640" style="border:1px solid #e3e5e9;border-radius:8px" loading="lazy" allow="clipboard-write"></iframe>
<p style="margin:6px 0 0;font-size:14px">Калькулятор: <a href="https://gaw.ru/tools/llm-memory/">Калькулятор памяти LLM: веса и KV-кеш</a> — GAW.ru</p>
Автоподстройка высоты рамки

Если сайт разрешает скрипты, добавьте этот код один раз в любом месте страницы: рамка будет менять высоту вместе с результатом расчёта.

<script>window.addEventListener("message",function(e){if(e.origin!=="https://gaw.ru"||!e.data||e.data.type!=="gaw:embed-height")return;var f=document.querySelectorAll('iframe[src^="https://gaw.ru/embed/"]');for(var i=0;i<f.length;i++)if(f[i].contentWindow===e.source)f[i].style.height=e.data.height+"px"})</script>

Обновлено .

Страница помогла?

Нашли ошибку в расчёте? ·