Эфир 18.11 · Поток 318 ноября в 19:00 МСК — бесплатный практический эфир по ИИ-агентам · Живой Поток 3 стартует 23.11Эфир 18 ноября →Поток 3 (23.11)
ИнфраструктураНаучная статья · В песочницуX: @1a1a11a→ оригинал

PrefixSim: открытый симулятор KV-кэша сравнивает 40+ политик вытеснения

Когда LLM-сервис держит префиксный кэш KV-блоков, вопрос «что выкинуть первым» напрямую решает, сколько GPU-времени уйдёт на повторный prefill. Juncheng Yang с коллегами открыл PrefixSim — быстрый симулятор, который гоняет реальные продакшен-трейсы и сравнивает больше 40 политик вытеснения. Главная метрика — экономия вычислений на prefill. Вместе с кодом выложили два датасета с нагрузкой сервинга.

AI-обработка оригинала X: @1a1a11a; редакция Hamidun News
PrefixSim: открытый симулятор KV-кэша сравнивает 40+ политик вытеснения
Источник: X: @1a1a11a. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникX: @1a1a11a ↗
Главный редактор
Ключевой факт #1Симулятор воспроизводит реальные продакшен-трейсы
Ключевой факт #2Сравнивает 40+ политик вытеснения KV-блоков в одном прогоне
Ключевой факт #3Главная метрика — сэкономленные вычисления на prefill

Если вы запускаете LLM в продакшене, то наверняка уже слышали про префиксное кэширование. Идея простая: у многих запросов одинаковое начало — системный промпт, описание инструментов, история диалога. Считать для него KV-кэш каждый раз незачем, его можно сохранить и переиспользовать. Но память GPU конечна, и рано или поздно кэшу приходится что-то выкидывать. От того, что именно вы выбросите, зависит, сколько видеокарточного времени сгорит впустую.

Именно эту задачу пытается закрыть PrefixSim — проект, который открыл Juncheng Yang (@1a1a11a). Это быстрый симулятор кэша KV-блоков для LLM-сервинга. Вместе с ним авторы выложили два датасета с трейсами нагрузки. Оговорка: исходный пост в X обрывается на полуслове, поэтому ниже только то, что в нём прямо сказано. Детали вроде формата трейсов и лицензии стоит смотреть в репозитории.

Какую проблему решает

Классические кэш-политики вроде LRU придумывали для веб-страниц и блоков диска. У KV-блоков другая специфика. Они устроены как префиксное дерево: блок в начале цепочки нужен всем, кто идёт после него. Выкинуть «старый», но корневой блок значит обесценить целую ветку. Кроме того, разные блоки стоят разного количества вычислений: пересчитать длинный префикс гораздо дороже короткого.

Поэтому привычная метрика hit rate здесь может вводить в заблуждение. Авторы PrefixSim прямо называют главным критерием compute savings — сколько работы на prefill удалось не делать. Две политики с одинаковым процентом попаданий могут дать очень разную экономию GPU.

Как это выглядит на практике

Представьте чат-ассистента с длинным системным промптом и десятками тысяч сессий в день. Вы берёте реальный трейс запросов и прогоняете его через симулятор с разными политиками вытеснения. По словам автора, их больше 40. На выходе вы видите, какая из них сохраняет больше всего вычислений при вашем объёме памяти под кэш.

Главное тут слово «реальные». Синтетические нагрузки часто дают красивые цифры, которые не повторяются в проде. Поэтому появление двух открытых датасетов с сервинговыми трейсами само по себе полезно: у сообщества появляется общая база для сравнения, а не набор несопоставимых внутренних бенчмарков.

Другая причина ценности симулятора — стоимость экспериментов. Проверять политику вытеснения на живом кластере долго и рискованно: нужно менять движок, раскатывать, ждать репрезентативного трафика. Симуляция на записанном трейсе занимает минуты и ничего не ломает.

Что с этим делать

Если вы строите собственный инференс-стек или тюните vLLM, SGLang и подобные движки, PrefixSim даёт способ проверить, не оставляете ли вы деньги на столе. Запишите трейс своей нагрузки, прогоните через симулятор и сравните свою текущую политику с альтернативами. Если разница в сэкономленном prefill заметна, это аргумент для доработки кэша. Если нет, вы хотя бы будете знать, что стандартный вариант вас устраивает.

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

Ограничения

Симулятор остаётся моделью. Он не учитывает всё, что происходит в реальном движке: фрагментацию памяти, планировщик, перегрузки очереди. Результаты на трейсах конкретных компаний не обязательно перенесутся на вашу нагрузку. И мы пока не видели независимых проверок: на момент публикации это анонс в X с охватом около 7,5 тысячи просмотров. Но как инструмент и как набор открытых данных для спорной и недооценённой области сервинга LLM проект выглядит стоящим, чтобы потратить на него вечер.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: какую проблему решает?

Классические кэш-политики вроде LRU придумывали для веб-страниц и блоков диска. У KV-блоков другая специфика. Они устроены как префиксное дерево: блок в начале цепочки нужен всем, кто идёт после него. Выкинуть «старый», но корневой блок значит обесценить целую ветку. Кроме того, разные блоки стоят разного количества вычислений: пересчитать длинный префикс гораздо дороже короткого. Поэтому привычная метрика hit rate здесь может вводить в заблуждение.

Что известно по теме: как это выглядит на практике?

Представьте чат-ассистента с длинным системным промптом и десятками тысяч сессий в день. Вы берёте реальный трейс запросов и прогоняете его через симулятор с разными политиками вытеснения. По словам автора, их больше 40. На выходе вы видите, какая из них сохраняет больше всего вычислений при вашем объёме памяти под кэш. Главное тут слово «реальные». Синтетические нагрузки часто дают красивые цифры, которые не повторяются в проде.

Что известно по теме: что с этим делать?

Если вы строите собственный инференс-стек или тюните vLLM, SGLang и подобные движки, PrefixSim даёт способ проверить, не оставляете ли вы деньги на столе. Запишите трейс своей нагрузки, прогоните через симулятор и сравните свою текущую политику с альтернативами. Если разница в сэкономленном prefill заметна, это аргумент для доработки кэша. Если нет, вы хотя бы будете знать, что стандартный вариант вас устраивает.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Единое AI-пространство · Nomad

Протестируйте новые LLM и мультимодальные модели в одном окне

Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.

Открыть Nomad AI →Автономный Nomad Agent
Что вы думаете?
Загружаем комментарии…