Веса — параметры модели, KV — состояние обработанных префиксов. Число параметров может быть неизменным, пока увеличение длины и активных последовательностей существенно увеличивает KV.
Почему это важно
Даже после размещения весов длинный контекст и несколько запросов могут исчерпать память KV. Оценка требует числа именно голов K/V, геометрии слоёв, фактически сохраняемых токенов и типа данных; деление результата на число GPU допустимо лишь по доказанной схеме размещения.
Что подтверждено
Для продолжения причинный трансформер сохраняет необходимые представления ключей и значений прежних позиций по слоям. Они зависят от модели и префикса; кэш не является общим словарём ключей к готовым ответам и не заменяет вычисление новой позиции.
Граница применимости: Обычное внимание декодера с KV-кэшем; рекуррентные модели и модели пространства состояний, состояние кодировщика и нестандартное сжатое представление здесь не описываются.
Для одинаковой геометрии слоёв и равной длины последовательностей плотные данные K+V занимают M=2×L×Hkv×D×T×s×B байт. Здесь L — число слоёв, Hkv — число голов K/V, D — размер головы, T — сохраняемые токены каждой последовательности, s — байты одного значения, B — число последовательностей; множитель 2 учитывает K и V.
Граница применимости: Декодер с полным вниманием, одинаковыми размерами и типами K/V; без общих префиксов, заполнения, выравнивания, квантовочных шкал, метаданных и рабочих буферов. Формула общих логических данных до выгрузки и распределения; не точный расход выделенной памяти.
При 32 слоях, 8 головах K/V, размере головы 128, 4096 сохраняемых токенах, двух байтах на значение и четырёх независимых последовательностях K+V занимает 2 147 483 648 байт, ровно 2 GiB. Для одной такой последовательности это 512 MiB, без весов и служебной памяти.
Граница применимости: 2×32×8×128×4096×2×4; FP16/BF16, полный одинаковый кэш без общих префиксов, заполнения, метаданных, рабочих буферов и распределения по устройствам.
В GQA несколько голов запросов Q используют общие головы ключей и значений K/V, поэтому для размера KV берут Hkv, не число голов Q. При 32 головах Q и 8 головах K/V подстановка 32 вместо 8 завышает этот объём данных в четыре раза при остальных одинаковых параметрах.
Граница применимости: Сравнение геометрии сохраняемого K/V; не обещание неизменного качества, полной VRAM или скорости при преобразовании MHA в GQA.
Для последовательностей разной длины без выравнивания и общих префиксов вклад токенов считают по сумме их сохраняемых длин. Дополнение до общей длины может увеличить физический расход, общие страницы префикса — уменьшить дублирование; нельзя молча заменить эти режимы одним Tmax×B.
Граница применимости: Одинаковая геометрия полного KV; совместное использование и размещение подтверждают для движка. Оконное внимание и сжатое состояние вне этой модели и требуют отдельного контракта хранения.
Тип данных KV и представление квантованных весов — разные настройки. Метка AWQ или «4 бита» на весах не позволяет поставить 0,5 байта в формулу KV: сначала подтверждают фактический формат кэша, а для его квантования отдельно учитывают шкалы и размещение.
Граница применимости: Метод преобразования только весов не меняет автоматически KV; конкретная поддержка квантованного кэша этим тезисом не заявляется.
Переиспользованный KV ускоряет продолжение подходящего префикса, но не возвращает заранее готовый ответ и не гарантирует совпадение новых токенов при других параметрах генерации. Область совпадения для повторного использования кэша проверяют по модели и входному вычислению, а не по похожему тексту запроса.
Граница применимости: Совместное использование точного префикса выбранным движком; произвольное межпользовательское переиспользование и политика изоляции здесь не разрешаются.
Полный логический KV нельзя автоматически разделить на число GPU и получить расход каждой. Слои и головы K/V могут распределяться или реплицироваться по-разному, часть данных — выгружаться; для каждого устройства проверяют реальную схему и служебные затраты выбранного режима параллелизма.
Граница применимости: Модель распределения конкретного движка; формула общей геометрии не доказывает равномерное разбиение при тензорном параллелизме или объединённую VRAM.
Не путать
Контекстное окно ограничивает допустимый сценарий токенов, KV описывает его сохранённое вычислительное состояние. Геометрия голов и тип данных делают память разных моделей несопоставимой по одному числу токенов контекста.
Квантование весов и кэша относится к разным тензорам. Экономия первой области не доказывает меньший KV: для него нужны собственные тип данных, шкалы и размещение.
Что проверить
- Получите точные число слоёв, число голов K/V и размер головы из конфигурации модели.
- Не подставляйте число голов Q в расчёт кэша GQA.
- Запишите фактический тип данных KV и число байтов, включая метаданные квантования при его наличии.
- Считайте реально сохраняемые длины активных последовательностей, а не только число запросов.
- Явно укажите общие префиксы, дополнение до общей длины, выравнивание страниц и оконную политику, если они есть.
- Добавьте веса, рабочие буферы, служебные затраты выделения памяти и резерв к данным K+V.
- Проверьте размещение и репликацию по каждой GPU вместо деления на их число.
- Сверьте расчёт с измеренным пиком и проверьте отказ при исчерпании KV-бюджета.
Первоисточники
Attention Is All You Need
Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникEfficient Memory Management for Large Language Model Serving with PagedAttention
Woosuk Kwon и соавторы · arXiv:2309.06180, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникGQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
Joshua Ainslie и соавторы · arXiv:2305.13245, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCloud TPU: bfloat16
Google Cloud · документация Google Cloud TPU, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникAWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
Ji Lin и соавторы · arXiv:2306.00978, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникTransformers 4.44.2: Generation
Hugging Face · документация Hugging Face Transformers v4.44.2, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник