GPU, ускорители и инфраструктура LLM

KV-кэш языковой модели

Определение

KV-кэш языковой модели — сохранённые ключи и значения (K/V), которые механизм внимания вычислил для уже обработанных позиций и использует повторно при продолжении ответа. Это вычислительное состояние конкретного префикса, а не веса модели и не готовый текст ответа.

Также ищут: KV cache · key-value cache · KV-кеш · кэш ключей и значений attention · кеш внимания LLM

Зачем это знать

Даже после размещения весов длинный контекст и несколько запросов могут исчерпать память KV. Оценка требует числа именно голов K/V, геометрии слоёв, фактически сохраняемых токенов и типа данных; деление результата на число GPU допустимо лишь по доказанной схеме размещения.

Доказательная часть

Что подтверждено

  1. Для продолжения причинный трансформер сохраняет необходимые представления ключей и значений прежних позиций по слоям. Они зависят от модели и префикса; кэш не является общим словарём ключей к готовым ответам и не заменяет вычисление новой позиции.

    Граница применимости: Обычное внимание декодера с KV-кэшем; рекуррентные модели и модели пространства состояний, состояние кодировщика и нестандартное сжатое представление здесь не описываются.

  2. Для одинаковой геометрии слоёв и равной длины последовательностей плотные данные K+V занимают M=2×L×Hkv×D×T×s×B байт. Здесь L — число слоёв, Hkv — число голов K/V, D — размер головы, T — сохраняемые токены каждой последовательности, s — байты одного значения, B — число последовательностей; множитель 2 учитывает K и V.

    Граница применимости: Декодер с полным вниманием, одинаковыми размерами и типами K/V; без общих префиксов, заполнения, выравнивания, квантовочных шкал, метаданных и рабочих буферов. Формула общих логических данных до выгрузки и распределения; не точный расход выделенной памяти.

  3. При 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, полный одинаковый кэш без общих префиксов, заполнения, метаданных, рабочих буферов и распределения по устройствам.

  4. В GQA несколько голов запросов Q используют общие головы ключей и значений K/V, поэтому для размера KV берут Hkv, не число голов Q. При 32 головах Q и 8 головах K/V подстановка 32 вместо 8 завышает этот объём данных в четыре раза при остальных одинаковых параметрах.

    Граница применимости: Сравнение геометрии сохраняемого K/V; не обещание неизменного качества, полной VRAM или скорости при преобразовании MHA в GQA.

  5. Для последовательностей разной длины без выравнивания и общих префиксов вклад токенов считают по сумме их сохраняемых длин. Дополнение до общей длины может увеличить физический расход, общие страницы префикса — уменьшить дублирование; нельзя молча заменить эти режимы одним Tmax×B.

    Граница применимости: Одинаковая геометрия полного KV; совместное использование и размещение подтверждают для движка. Оконное внимание и сжатое состояние вне этой модели и требуют отдельного контракта хранения.

  6. Тип данных KV и представление квантованных весов — разные настройки. Метка AWQ или «4 бита» на весах не позволяет поставить 0,5 байта в формулу KV: сначала подтверждают фактический формат кэша, а для его квантования отдельно учитывают шкалы и размещение.

    Граница применимости: Метод преобразования только весов не меняет автоматически KV; конкретная поддержка квантованного кэша этим тезисом не заявляется.

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

    Граница применимости: Совместное использование точного префикса выбранным движком; произвольное межпользовательское переиспользование и политика изоляции здесь не разрешаются.

  8. Полный логический KV нельзя автоматически разделить на число GPU и получить расход каждой. Слои и головы K/V могут распределяться или реплицироваться по-разному, часть данных — выгружаться; для каждого устройства проверяют реальную схему и служебные затраты выбранного режима параллелизма.

    Граница применимости: Модель распределения конкретного движка; формула общей геометрии не доказывает равномерное разбиение при тензорном параллелизме или объединённую VRAM.

  9. В условном примере с 32 слоями, Hq=32, Hkv=8, D=128, 4096 сохранёнными токенами в каждой из четырёх независимых последовательностей и KV в FP16 схема LlamaAttention vLLM v0.31.0 даёт 268 435 456 байт (256 MiB) данных K+V на GPU и при TP=8, и при TP=16. В обоих случаях на GPU приходится одна голова K/V; при TP=16 каждая голова повторяется на двух GPU.

    Граница применимости: Hq/Hkv — числа голов Q/KV, D — размер головы, TP — число GPU группы; FP16 — 2 байта на значение. PP=PCP=DCP=1; одинаковое полное внимание всех 32 слоёв. Без общих префиксов, выгрузки, заполнения, выравнивания, метаданных и свободных блоков. Уникальные K+V — 2 GiB; с повторами — 2 GiB при TP=8 и 4 GiB при TP=16. Это расчёт K+V, не весь расход памяти или пик VRAM.

Граница терминов

Не путать

KV-кэш языковой модели Веса языковой модели

Веса — параметры модели, KV — состояние обработанных префиксов. Число параметров может быть неизменным, пока увеличение длины и активных последовательностей существенно увеличивает KV.

KV-кэш языковой модели Контекстное окно языковой модели

Контекстное окно ограничивает допустимый сценарий токенов, KV описывает его сохранённое вычислительное состояние. Геометрия голов и тип данных делают память разных моделей несопоставимой по одному числу токенов контекста.

KV-кэш языковой модели Квантование модели

Квантование весов и кэша относится к разным тензорам. Экономия первой области не доказывает меньший KV: для него нужны собственные тип данных, шкалы и размещение.

Перед спецификацией

Что проверить

  1. Получите точные число слоёв, число голов K/V и размер головы из конфигурации модели.
  2. Не подставляйте число голов Q в расчёт кэша GQA.
  3. Запишите фактический тип данных KV и число байтов, включая метаданные квантования при его наличии.
  4. Считайте реально сохраняемые длины активных последовательностей, а не только число запросов.
  5. Явно укажите общие префиксы, дополнение до общей длины, выравнивание страниц и оконную политику, если они есть.
  6. Добавьте веса, рабочие буферы, служебные затраты выделения памяти и резерв к данным K+V.
  7. Проверьте размещение и репликацию по каждой GPU вместо деления на их число.
  8. Сверьте расчёт с измеренным пиком и проверьте отказ при исчерпании KV-бюджета.
Открытые основания

Первоисточники

  • Исследование4
  • Документация5
  • Первичная публикация
    Attention Is All You Need Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Утверждения: 01 · 02

  • Первичная публикация
    Efficient Memory Management for Large Language Model Serving with PagedAttention Woosuk Kwon и соавторы · arXiv:2309.06180, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Утверждения: 01 · 02 · 03 · 04 · 05 · 06 · 07 · 08 · 09

  • Первичная публикация
    GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints Joshua Ainslie и соавторы · arXiv:2305.13245, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Утверждения: 02 · 03 · 04 · 05 · 08 · 09

  • Официальная документация
    Cloud TPU: bfloat16 Google Cloud · документация Google Cloud TPU, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Утверждения: 03

  • Первичная публикация
    AWQ: Activation-aware Weight Quantization for On-Device LLM Compression and Acceleration Ji Lin и соавторы · arXiv:2306.00978v6, revised 2026-04-25 · проверено

    Полный PDF v6 перечитан 15.10.2026: §2–3 — квантование весов и шкалы; §4 — упаковка и исполнение; §5 — качество и скорость. Результаты отдельных моделей и устройств не обобщаются; формат KV не следует из разрядности весов.

    Утверждения: 06

  • Официальная документация
    Transformers 4.44.2: Generation Hugging Face · документация Hugging Face Transformers v4.44.2, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Утверждения: 07

  • Официальная документация
    CUDA C++ Programming Guide NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Утверждения: 08

  • Официальная документация
    Llama model implementation — LlamaAttention vLLM Project · vLLM v0.31.0; LlamaAttention, llama.py:143–156, 165–173, 212–216. · проверено

    Проверены число локальных голов K/V и условия делимости в LlamaAttention. Проверки голов не подтверждают поддержку всей модели или успешный запуск.

    Утверждения: 09

  • Официальная документация
    Context Parallel Deployment vLLM Project · vLLM v0.31.0; Context Parallel Deployment, раздел Decode Context Parallel. · проверено

    Документ различает разделение KV по головам при TP и по токенам при DCP. Числовой пример ограничен PP=PCP=DCP=1; измерения памяти и производительности не заявлены.

    Утверждения: 09

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

В каталоге

  • Графические ускорители — Найдите ускорители-кандидаты, сравните расчёт KV и остальных компонентов с их памятью; поддержку формата проверьте по документации, фактический пик памяти — на нагрузке.
Подтвердите действие