Перейти к содержимому

VRAM для LLM: веса, KV cache и контекст

Одна и та же модель может помещаться в память с коротким запросом и исчерпать её при длинном контексте или нескольких одновременных ответах. Причина часто в KV cache.

Автор:

Источники проверены:

Обновлено:

Опубликовано:

Считайте несколько частей бюджета

Веса загружаются для вычислений модели. KV cache хранит ключи и значения внимания для уже обработанных токенов. Отдельная память нужна активациям, рабочим буферам, CUDA graphs и распределённым операциям; её размер зависит от реализации.

Калькулятор сайта использует коэффициент запаса для предварительного отбора. Он не моделирует архитектуру KV cache каждого checkpoint. Для длинного контекста или высокой параллельности нужен отдельный расчёт и измерение.

VRAM ≈ веса + KV cache + активации и рабочие буферы

Формула для обычного KV cache

Для decoder-only модели с полным вниманием и одинаковыми слоями оцените объём через число слоёв L, число KV-голов Hkv, размер головы D, байты на элемент b и сумму сохраняемых токенов T по всем активным последовательностям. Множитель 2 учитывает ключи и значения.

Берите число KV-голов из конфигурации модели. При GQA/MQA оно может отличаться от числа query-голов. Формула описывает логический объём; выделение блоками, резерв движка и копии при распределении могут изменить фактическое потребление.

KV (байт) ≈ 2 × L × Hkv × D × b × T

Пример: 1 GiB превращается в 4 GiB

Это учебная архитектура, а не измеренный checkpoint: 32 слоя, 8 KV-голов, размер головы 128, KV в BF16 (2 байта). Получается 131 072 байта на токен. При 8 192 сохраняемых токенах одна последовательность требует 1 GiB KV cache; четыре независимые последовательности такой длины — 4 GiB.

Если каждая из четырёх последовательностей достигает 32 768 токенов, логический KV cache занимает уже 16 GiB. Веса при этом не изменились. Здесь GiB = 2³⁰ байт; не смешивайте этот результат с десятичными GB = 10⁹ байт и проверяйте доступную память GPU в используемой среде.

2 × 32 × 8 × 128 × 2 × 8 192 = 1 073 741 824 байта

Когда формулу нужно изменить

Sliding-window и chunked attention ограничивают рост cache в соответствующих слоях. Гибридные архитектуры могут хранить разные состояния в разных слоях. Общий префикс иногда переиспользуется, но экономию нельзя закладывать без подтверждённой настройки движка.

Квантование весов и квантование KV cache — разные настройки. Более компактный cache или выгрузка на CPU могут экономить VRAM ценой задержки. После изменения проверяйте качество, время ответа и отсутствие OOM на максимальной нагрузке.

  • Извлеките из checkpoint число слоёв, KV-голов и head dimension.
  • Укажите тип cache и точность, максимальные длины и параллельность.
  • Проверьте доступную память после загрузки и пиковую память при длинном prefill.
  • Измерьте предел нагрузки и оставьте запас, выбранный по наблюдениям, а не универсальному проценту.

Карточки L40S, A100 и H200 позволяют сравнить объём памяти и другие спецификации. Большая память расширяет возможный бюджет, но не заменяет проверку конкретного сервера и движка.

Перейти к расчёту и запросу

UZ Dynamics — ранний доступ. Эти материалы помогают описать задачу; они не подтверждают наличие GPU, готовность среды или скорость выполнения. Наличие, конкретная конфигурация, цены и условия доступа уточняются при обсуждении заявки.

Запросить ранний доступ