Память вместо математики: как KV-кэш решает экономику ИИ

27.10.2026 · Авторская колонка

Принято считать, что скорость ИИ меряется террафлопсами: чип мощнее — модель быстрее. На практике инференс больших языковых моделей чаще всего буксует не на вычислениях, а на памяти. Виновник — KV-кэш, скромная служебная структура, которую модель вынуждена держать для каждого токена контекста и, что важнее, отдельно для каждого запроса. Звучит как тема лекции по архитектуре ЭВМ, которую все прогуляли, однако вокруг этих данных крутятся цены на токены, гонка за длинными окнами контекста и бизнес-планы стартапов с лозунгом «тот же интеллект за меньшие деньги». Смотрим, что на самом деле происходит внутри GPU, когда вы отправляете промпт.

Откуда у кэша такой аппетит

Трансформер устроен бескомпромиссно: каждый новый токен обязан «посмотреть» на все предыдущие. Механизм внимания сравнивает текущий токен с ключами и значениями всей прошлой истории. Пересчитывать это заново на каждом шаге генерации — расточительство, поэтому движок инференса просто держит их в видеопамяти. Вот вам и KV-кэш. Причём пишется он отдельно для каждого слоя и каждой «головы» внимания — а тех в больших моделях десятки.

Отсюда две неприятности. Первая предсказуемая: кэш растёт вместе с контекстом, линейно. Удвоили окно — удвоили и память под него. Вторая коварнее. Веса модели общие, один набор на всех, а вот кэш — персональный. Сто одновременных запросов — сто независимых кэшей. У моделей с контекстами в сотни тысяч токенов кэш одной длинной сессии может подбираться к объёму самих весов. Выходит изящно: значительная часть дефицитной HBM-памяти занята не «знаниями» модели, а её черновиками.

Настоящее узкое место — не процессор

На стадии генерации модель выдаёт по одному токену за шаг, и на каждом шаге ей нужно прочитать из памяти все веса и весь накопленный кэш. Вычислений на каждый прочитанный байт выходит совсем немного — арифметическая интенсивность низкая. Итог парадоксален: дорогущие тензорные ядра GPU коротают время в бездействии, а на износ работает шина памяти. Инференс упирается не во флопсы, а в пропускную способность памяти — и индустрия отвечает ровно на это.

Grouped-Query Attention, опробованная в крупных открытых моделях вроде Llama, заставляет несколько голов внимания делить один набор ключей и значений — кэш худеет в разы. DeepSeek пошёл дальше с Multi-head Latent Attention: там ключи и значения хранятся в сжатом «латентном» виде. Кэш квантуют до 8 и даже 4 бит на элемент. А PagedAttention в популярном фреймворке vLLM пересобрал память под кэш по лекалам виртуальной памяти из операционных систем: страницы выдаются по мере надобности, фрагментация падает, и на тот же GPU влезает заметно больше пользователей. Снаружи такие инженерные решения выглядят как магический скачок производительности. Внутри — аккуратная возня с байтами.

Длинный контекст? Готовьте кошелёк

Экономика API — прямое зеркало устройства кэша. Запросы с большим контекстом тарифицируются дороже за токен, и это не жадность провайдера: ему приходится держать в дефицитной HBM именно ваш персональный кэш. Скидки за кэшированный префикс промпта, которые ввели крупные провайдеры, — та же история с другой стороны. Если кусок запроса уже лежит в памяти в виде готового KV-кэша, повторная обработка стоит копейки — и провайдер делится экономией с клиентом. Похоже на щедрость, а по сути честная бухгалтерия.

Дальше начинается гонка инфраструктуры. Часть кэша выгружают в обычную RAM или на SSD: дешевле, но задержки растут. Groq ставит на большой объём быстрой SRAM прямо на чипе, Cerebras — на пластинчатые процессоры. Облачные провайдеры инференса, по имеющимся данным, конкурируют в том числе ценой токена, и один из главных рычагов здесь — менеджмент памяти. На горизонте маячат архитектуры, избавленные от линейного роста: state-space модели вроде Mamba хранят состояние фиксированного размера, скользящие и разреженные схемы внимания попросту не смотрят на дальние токены. Пока трансформер остаётся королём — но и его трон стоит на компактном кэше.

А что в наших широтах

В России тема памяти стоит острее, чем на Западе: доступ к старшим ускорителям ограничен, а спрос на отечественные языковые модели только растёт. Флагманы — GigaChat от Сбера и YandexGPT от Яндекса — работают с расширенными контекстами и встроены в потребительские сервисы: ассистентов, поиск, инструменты для разработчиков. МТС выложила в открытый доступ модель Cotype для корпоративного применения, а вокруг открытых весов сложилось живое сообщество энтузиастов со своими дообученными версиями — Saiga, Vikhr и другие.

В таких условиях культура оптимизации инференса — не роскошь, а вопрос выживания: квантование, аккуратный батчинг, фреймворки вроде vLLM и TensorRT-LLM, уплотнение кластеров. Сбер развивает Национальный центр развития ИИ, государственные программы прописали генеративные модели в инфраструктурные приоритеты. Перспектива двойственная. С одной стороны, каждый сэкономленный гигабайт видеопамяти напрямую снижает себестоимость отечественных сервисов. С другой — инженерная база позволяет быстро перенимать мировые практики: всё, что придумано в GQA, MLA и страничной памяти, лежит в открытых реализациях, бери и пользуйся. Кто быстрее упакует длинный контекст в доступное железо, тот и заберёт корпоративный рынок.

Вывод

Дефицитный ресурс эры генеративного ИИ — не флопсы, а мегабайты быстрой памяти. KV-кэш из технической детали превратился в валюту: им меряют цены на токены, пределы контекста и маржинальность целых компаний. Поэтому очередной «большой скачок в производительности ИИ» всё чаще означает не новую математику, а новое умение ужать кэш — в битах, в страницах, в самой архитектуре внимания. И если трансформера действительно ждёт смена, случится она не потому, что внимание разучилось работать, а потому, что кто-то наконец придумал, как помнить дешевле.