Локальные LLM, GGUF, VRAM, RAM и контекст

Калькулятор памяти для локальной LLM

Проверьте, поместятся ли веса модели и KV-cache в видеопамять или общую память компьютера. Калькулятор учитывает размер GGUF или число параметров, квантование, длину контекста, GQA/MQA, sliding-window attention, параллельные последовательности и резерв backend.

Что вводить и почему точный размер GGUF лучше одной цифры «8B»
  • Если файл GGUF уже скачан, укажите его фактический размер. Это надёжнее оценки по количеству параметров и типу квантования.
  • Если файла ещё нет, калькулятор оценит размер весов по параметрам и типичному effective bits/weight для llama.cpp. Реальный GGUF может отличаться из-за архитектуры и смешанного квантования тензоров.
  • KV-cache зависит не от размера файла модели, а от архитектуры внимания, числа слоёв, KV-heads, head dimension, контекста и точности кеша.
  • Для гибридных моделей можно отдельно задать число full-attention слоёв и окно остальных sliding-window слоёв. Для MLA и других специальных архитектур используйте результат только как предварительную оценку.
  • Скорость tokens/s здесь не прогнозируется. Она зависит от GPU/CPU, пропускной способности памяти, backend, offload, batch и конкретной модели.
1. Модель и квантование

Пресеты задают только типовой набор параметров для проверки интерфейса. Архитектуру конкретной модели сверяйте по config.json, карточке модели или метаданным GGUF.

2. Контекст и KV-cache

Архитектура внимания

Базовая формула KV-cache 2 × layers × KV-heads × head dimension × tokens × bytes/value. Для sliding-window слоёв вместо полного контекста используется выбранное окно.
3. Ваш компьютер
Что проверяется Для дискретной GPU отдельно оценивается полное размещение в VRAM и возможность RAM/CPU-offload. Для unified memory и CPU сравнение идёт с доступной общей памятью.

Как читать расчёт VRAM и RAM

Веса модели занимают основную часть памяти. Для GGUF точный размер файла обычно является лучшей отправной точкой, чем грубый пересчёт «параметры × биты».

KV-cache хранит ключи и значения внимания для уже обработанных токенов. Поэтому длинный контекст и параллельные запросы могут добавить гигабайты даже тогда, когда сама модель небольшая.

Sliding-window attention меняет зависимость от контекста: локальные слои хранят только окно, а глобальные продолжают расти с полной длиной контекста. Поэтому одна универсальная формула без знания архитектуры может сильно ошибаться.

Методика. Типичные effective bits/weight для GGUF-квантований сверены с актуальной документацией llama.cpp. Сам принцип роста KV-cache и варианты его квантования описаны также в документации Hugging Face. Для точного расчёта конкретной модели приоритет имеют её config.json, GGUF-метаданные и фактический лог backend.

Если вы только начинаете работать с локальными моделями, смотрите также раздел «Локальный ИИ» и материал о локальной LLM в Home Assistant.

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

Почему 8B Q4 не означает ровно 4 ГБ?

Квантование хранит не только сами низкобитные значения. Есть масштабы, метаданные, тензоры иной точности и смешанные схемы. Поэтому фактический GGUF обычно отличается от простой формулы parameters × 4 бит.

Почему увеличение context size увеличивает VRAM?

При обычном autoregressive inference KV-cache хранит состояние внимания для предыдущих токенов. Для full-attention слоёв его объём растёт примерно линейно с выделенным контекстом и числом параллельных последовательностей.

Если модель не помещается в VRAM, она не запустится?

Не обязательно. llama.cpp и некоторые другие backend умеют держать часть весов в системной RAM и выполнять CPU/GPU offload. Это может позволить запустить модель, но производительность обычно ниже, а требования к RAM остаются значительными.

Можно ли по памяти точно предсказать tokens/s?

Нет. Факт размещения модели и скорость inference — разные задачи. Скорость зависит от вычислительной мощности, bandwidth памяти, backend, batch, offload, prompt processing, длины контекста и конкретной архитектуры.