3,583 papers
arXiv:2511.17565 70 14 нояб. 2025 г. FREE

GenCache: генеративное кэширование через автоматическое создание программ для похожих промптов

КЛЮЧЕВАЯ СУТЬ
Знакомая боль: делаешь 10 похожих запросов подряд (анализ стартапов, брифы для дизайнера) — каждый раз переписываешь промпт с нуля. Модель не знает, что это одна задача с вариациями. Результат: формат плывёт, стиль меняется, глубина скачет. GenCache (система для LLM-приложений) автоматизирует структурное переиспользование — находит общий паттерн и генерирует программу для подстановки вариаций. Принцип применим в чате: выдели структуру один раз, потом подавай только вариации — модель повторит паттерн без переобъяснения.
Адаптировать под запрос

TL;DR

GenCache — система кэширования, которая не хранит готовые ответы, а генерирует Python-программы, создающие кастомизированные ответы для структурно похожих промптов. Когда приходит новый запрос, программа выполняется локально и подставляет нужные вариации (например, другое название товара в тот же шаблон действий).

Обычный семантический кэш (типа GPTCache) при схожих промптах выдаёт один и тот же ответ. Промпты _"купи 12 батареек AAA на Амазоне"_ и _"купи USB-C кабель на Амазоне"_ считаются похожими — кэш возвращает ответ про батарейки для обоих. Точное совпадение (ExactCache) безопаснее, но требует идентичных промптов — любая вариация даёт промах. Оба подхода не учитывают, что промпты структурно похожи (глагол-товар-магазин), но ответы должны различаться по ключевым параметрам.

GenCache кластеризует похожие промпты по embeddings, скармливает примеры из кластера LLM и просит сгенерировать программу, которая извлекает вариации через regex и подставляет их в шаблон ответа. Программа проходит валидацию на тех же примерах и сохраняется как кэш. При новом запросе программа выполняется через Python-интерпретатор — вместо вызова дорогой LLM.


📌

Для кого эта работа

⚠️ Это исследование инфраструктурного инструмента, не промпт-техники.

GenCache как система требует: - Python runtime для выполнения сгенерированных программ - Векторную базу для кластеризации embeddings - Отдельные LLM-вызовы для генерации и валидации программ - API-интеграцию с вашим приложением

Кому полезно напрямую: - Разработчикам систем с LLM через API - Тем, кто строит AI-агентов с повторяющимися задачами - Компаниям с большим объёмом структурно похожих запросов (поддержка, операционные агенты)

Extractable principles для работы в чате: Хотя саму систему не применить в ChatGPT/Claude, исследование показывает ценный принцип структурного переиспользования промптов. Если ты регулярно делаешь похожие запросы с вариациями — можно явно выделить паттерн и переиспользовать структуру.


📌

Схема работы GenCache

Кластеризация (офлайн):

Промпт + Ответ → Embeddings (prompt + response)
→ Кластер по cosine similarity (пороги Tp=0.8, Tr=0.75)
→ Накопление минимум ν примеров

Генерация кэша (офлайн):

Кластер с ν примерами → CodeGenLLM (с примерами как few-shot)
→ Python-программа (regex для извлечения + шаблон ответа)
→ ValidLLM проверяет программу на тех же примерах
→ Если ≥γ% корректных → сохранить как кэш
→ Иначе: retry с reflection (до ρ попыток)

Runtime (онлайн):

Новый промпт P → Ближайший кластер по embeddings
→ Regex-валидация структуры
→ Если есть кэш: выполнить Python-программу локально
→ Санity-check → вернуть ответ
→ Если нет кэша / провал: вызов LLM

📌

Extractable principle: Явное структурное переиспользование

GenCache автоматизирует то, что можно делать вручную в чате — выделять повторяющуюся структуру и явно указывать вариации.

🚀

Применение в чате

Задача: Ты регулярно анализируешь стартапы по одной схеме, но каждый раз пишешь промпт с нуля. Названия компаний меняются, структура анализа одна.

Вместо повтора промптов:

ШАГ 1 — Создай шаблон явно:

Создай для меня шаблон анализа стартапа:

1. Бизнес-модель (B2B/B2C/marketplace)
2. Unit-экономика (LTV/CAC, если есть данные)
3. Конкуренты (топ-3)
4. Риски (топ-3)
5. Вывод одним предложением

Сохрани этот шаблон и жди от меня названий стартапов.

ШАГ 2 — Применяй с вариациями:

Примени шаблон к: [Название стартапа]

Результат: LLM запомнит структуру из ШАГ 1 в контексте чата. При новом запросе просто назови компанию — модель применит ту же схему анализа. Экономия времени на переписывание промпта, единообразие формата.

Почему это работает: Ты явно разделяешь неизменную структуру (шаблон анализа) и вариации (название стартапа). GenCache делает это автоматически через regex и программы, ты — через явное указание в контексте чата. Принцип один: структурное переиспользование эффективнее переписывания с нуля.


📌

Альтернативный пример: Переиспользование через референс

Задача: Готовишь однотипные брифы для дизайнера — меняются проекты, формат одинаковый.

Промпт:

Вот бриф для проекта А:
[вставить готовый бриф]

Создай аналогичный бриф для проекта Б со следующими данными:
- Название: [новое название]
- Целевая аудитория: [новая ЦА]
- Основной посыл: [новый посыл]

Сохрани всю структуру и стиль из примера А.

Результат: Модель возьмёт формат, стиль, разделы из примера А и подставит новые данные. Ты получишь единообразные брифы без повторного объяснения структуры.


📌

Почему принцип структурного переиспользования работает

Слабость LLM: Модель не знает, что твои 10 запросов подряд — это одна задача с вариациями. Каждый промпт обрабатывается независимо. Если ты не скажешь явно _"используй ту же структуру"_, модель каждый раз генерирует ответ с нуля — может менять формат, стиль, глубину.

Сильная сторона LLM: Модель отлично следует шаблонам и подставляет вариации, если их явно выделить. Chain-of-Thought работает именно так: ты задаёшь структуру рассуждения примером, модель повторяет паттерн. Структурное переиспользование — это тот же принцип для твоих повторяющихся задач.

Механика GenCache: Система автоматически находит общий паттерн в кластере похожих промптов (например, regex купи|купить|приобрести (товар) на Амазоне), генерирует программу с шаблоном ответа и подстановкой вариаций. Программа выполняется локально — вместо нового LLM-вызова.

В чате ты делаешь вручную: Явно говоришь _"вот структура, вот вариации"_ или _"используй тот же формат, что раньше"_. Модель понимает паттерн из контекста или few-shot примера и применяет к новым данным. Эффект тот же — единообразие и экономия на переобъяснении.

Рычаги управления: - Явность шаблона: чем детальнее опишешь структуру один раз, тем точнее повторы - Референсный пример: дай модели готовый пример вместо описания — она скопирует формат точнее - Указание вариаций: перечисли что именно меняется (название, дата, регион) — модель не тронет остальное


📌

Шаблон для структурного переиспользования

Вариант 1: Создание шаблона в контексте

Создай для меня шаблон {типа задачи}:

{опиши структуру результата — разделы, формат, стиль}

Сохрани этот шаблон. Дальше я буду давать тебе только {что меняется}, 
а ты применяй этот шаблон.

---

{первый пример с данными}

Дальнейшие запросы в том же чате:

Примени шаблон к: {новые данные}

Вариант 2: Переиспользование через референс

Вот пример результата, который мне нравится:
{вставить готовый пример}

Сделай то же самое для:
{новые данные}

Сохрани структуру, формат и стиль из примера.

Что подставлять: - {тип задачи} — анализ стартапа, бриф для дизайнера, план встречи - {структура результата} — разделы, пункты, формат вывода - {что меняется} — название компании, проект, дата - {готовый пример} — реальный результат, который хочешь повторить - {новые данные} — вариации для нового запроса

Когда применять: - Делаешь 3+ похожих запроса подряд - Хочешь единообразия в серии результатов - Тратишь время на переписывание похожих промптов


⚠️

Ограничения

⚠️ Техническая система: GenCache как инструмент требует Python runtime, API-интеграцию, векторную базу. В ChatGPT/Claude не применишь напрямую.

⚠️ Для повторяющихся задач: Принцип структурного переиспользования эффективен при регулярных похожих запросах. Для разовых задач проще написать промпт с нуля.

⚠️ Не для сложных вариаций: Если между запросами меняется не только данные, но и логика/цели — шаблон не поможет. GenCache тоже ломается, если промпты структурно разные.

⚠️ Риск overfitting: Автоматически сгенерированная программа может захардкодить специфичные слова из примеров. В чате ты контролируешь вручную, но важно проверять первые результаты при переиспользовании.


🔍

Как исследовали

Команда из Microsoft Research и Университета Иллинойса тестировала GenCache в двух сценариях: на синтетических данных и с интеграцией в реальных AI-агентах.

Синтетические данные: Взяли 12000+ инструкций пользователей из датасета WebShop (симуляция интернет-магазина). Каждая инструкция описывает покупку товара — например, _"купи 12 батареек AAA на Амазоне"_. GPT-4o сгенерировал два варианта: - Param-Only — вариации только в параметрах (товар, цена), формулировка идентична - Param-w-Synonym — вариации и в параметрах, и в глаголах (_купи/приобрети/возьми_), плюс небольшие перефразировки

AI-агенты: Интегрировали с двумя агентами. Laser — веб-навигационный агент на базе OpenAI API, планирует действия на веб-страницах (поиск, покупка). FLASH — облачный операционный агент на LangChain, диагностирует системные сбои по шаблонным алертам (_"NSM-RNM соединение потеряно в useast1"_ vs _"...в uswest1"_). Протестировали на 298 реальных инцидентах Microsoft за 2 месяца — 69% инцидентов относились к одному сценарию, 93% к двум, что подтвердило высокую повторяемость задач.

Сравнение с бейзлайнами: ExactCache (точное совпадение промптов) и GPTCache (семантическое кэширование). Для GPTCache использовали Sentence-BERT embeddings и FAISS-индексацию с порогом схожести 0.95. Измеряли cache hit rate (сколько запросов обработано из кэша) и корректность (правильный ли ответ при хите).

Результаты удивили: На Param-Only GenCache дал 97.8% hit rate при 98% корректных ответов — почти как GPTCache по хитам (91%), но GPTCache выдавал 100% некорректных (возвращал один и тот же ответ для разных товаров). На Param-w-Synonym (сложнее, есть перефразировки) GenCache показал 83.7% hit rate при 92% корректности — GPTCache опять 89% хитов, но всё некорректно. ExactCache дал 0% хитов в обоих случаях.

С агентами: GenCache снизил end-to-end латентность Laser на ~34% и поднял hit rate на ~20% против стандартного exact matching. Для FLASH, где 93% инцидентов укладываются в 2 сценария, выигрыш ещё выше.

Инсайт: Семантическое кэширование хорошо работает для идентичных ответов, но опасно при вариациях — 100% некорректных хитов означают, что агент делал не то, что просили. Точное совпадение безопасно, но неэффективно. GenCache попал в sweet spot — высокий hit rate без жертвы корректностью, потому что генерирует ответ под вариации вместо переиспользования старого.

Стоимость: Создание кэша требует LLM-вызовов (CodeGenLLM и ValidLLM), но окупается быстро — на WebShop экономия от кэша превысила 35% от общих токенов. Сами программы занимают ~5KB каждая, вся база кэша — десятки мегабайт.


🔗

Ресурсы

Generative Caching for Structurally Similar Prompts and Responses — Sarthak Chakraborty (University of Illinois at Urbana-Champaign), Suman Nath, Xuchao Zhang, Chetan Bansal (Microsoft Research), Indranil Gupta (University of Illinois at Urbana-Champaign). NeurIPS 2025.


📋 Дайджест исследования

Ключевая суть

Знакомая боль: делаешь 10 похожих запросов подряд (анализ стартапов, брифы для дизайнера) — каждый раз переписываешь промпт с нуля. Модель не знает, что это одна задача с вариациями. Результат: формат плывёт, стиль меняется, глубина скачет. GenCache (система для LLM-приложений) автоматизирует структурное переиспользование — находит общий паттерн и генерирует программу для подстановки вариаций. Принцип применим в чате: выдели структуру один раз, потом подавай только вариации — модель повторит паттерн без переобъяснения.

Принцип работы

Не переписывай похожие промпты — выдели структуру явно. Скажи один раз: "Вот формат анализа стартапа [разделы]. Жди от меня названий компаний." Дальше только вариации: "Примени к: Stripe." Модель запоминает паттерн из контекста. Применяет к новым данным без переобъяснения. Единообразие гарантировано.

Почему работает

LLM обрабатывает каждый промпт независимо. Не видит связь между твоими запросами. Но модель отлично следует шаблонам, если их явно выделить. Chain-of-Thought работает так: задаёшь структуру примером — модель повторяет. Структурное переиспользование — тот же принцип. GenCache автоматизирует это: кластеризует похожие промпты, находит паттерн через regex, генерирует программу. В чате делаешь вручную: говоришь "вот структура, вот что меняется" — модель понимает из контекста и применяет к новым данным.

Когда применять

Повторяющиеся задачи с вариациями → анализ компаний, брифы для дизайнера, планы встреч. Особенно когда делаешь 3+ похожих запроса подряд и тратишь время на переписывание промпта. НЕ подходит для разовых задач (проще написать с нуля) и сложных вариаций, где меняется не только данные, но и логика или цели.

Мини-рецепт

1. Создай шаблон в чате: Создай шаблон анализа стартапа: 1) бизнес-модель 2) показатели (окупаемость, привлечение клиентов) 3) конкуренты (топ-3) 4) риски (топ-3) 5) вывод одной строкой. Жди от меня названий компаний.
2. Применяй к вариациям: В том же чате просто пиши Примени шаблон к: Stripe
3. Альтернатива через пример: Дай готовый результат: Вот анализ, который мне нравится: [готовый пример]. Сделай то же самое для: [новая компания]. Сохрани структуру и стиль.

Примеры

[ПЛОХО] : Каждый раз пишешь с нуля: Проанализируй Stripe: модель, конкуренты, риски, потом Проанализируй Notion: модель, конкуренты... — формат каждый раз разный, глубина скачет.
[ХОРОШО] : Создаёшь шаблон один раз: Шаблон анализа: 1) модель 2) показатели 3) конкуренты 4) риски 5) вывод. Жди названий. Дальше просто: Примени к: StripeПримени к: Notion — единообразие гарантировано, экономия времени.
Источник: Generative Caching for Structurally Similar Prompts and Responses
ArXiv ID: 2511.17565 | Сгенерировано: 2026-01-12 18:35

Концепты не выделены.

📖 Простыми словами

Суть метода GenCache в том, что нейросети тратят кучу ресурсов на обдумывание одних и тех же задач, хотя могли бы работать по шаблону. Когда ты просишь LLM сделать что-то типичное, она каждый раз «изобретает велосипед» с нуля. Разработчики придумали прослойку, которая видит: ага, ты уже просил написать письмо про встречу в среду, а теперь просишь про встречу в пятницу. Система понимает, что меняется только дата, и вместо того, чтобы грузить огромную модель, она сама подставляет новое значение в готовый «скелет» ответа. Это структурная схожесть, которая экономит время и деньги, не теряя в качестве.

Это как если бы ты каждый раз заказывал у повара яичницу, а он бы заново перечитывал учебник кулинарии, чтобы вспомнить, как разбивать яйца. Формально он молодец, старается, но на деле это тупо и медленно. GenCache — это когда повар один раз понял принцип, выписал его на бумажку и дальше просто меняет ингредиенты (бекон на грибы), выдавая результат мгновенно. Это превращение «творческого хаоса» в четкий алгоритм, где нейросеть не гадает, что ты имел в виду, а работает как отлаженный конвейер.

Что реально работает для тебя, даже если ты не программист: разделение данных и инструкции. Если ты хочешь стабильный результат, забудь про вольные описания. Используй жесткие шаблоны (например, [ДАТА], [ТЕМА]), явно отделяй блок с вводными данными от команды и требуй строгий формат вывода. Исследование показало, что семантическое кэширование (когда AI ищет просто «похожие» запросы) часто лажает и путает детали, а вот структурный подход бьет точно в цель.

Тестировали это как инфраструктурное решение для серверов, но принцип универсален для любого, кто пользуется ChatGPT или Claude в работе. Если ты SMM-щик, аналитик или менеджер, тебе не нужно каждый раз «разговаривать» с моделью. Ты создаешь мастер-промпт, который работает как мини-программа. Это применимо везде: от генерации еженедельных отчетов до написания однотипных постов. SEO для роботов, промпты для структуры.

Короче: хватит надеяться на «ум» нейросети, начни использовать её как калькулятор для текста. Если твои запросы каждый раз выглядят по-разному, ты получаешь рандомный результат и кучу ошибок в деталях. Переходи на шаблонный промптинг: фиксируй структуру, меняй только переменные. Кто превратит свои задачи в повторяемые паттерны, тот получит предсказуемый результат, пока остальные будут жаловаться, что нейросеть опять всё перепутала.

Сгенерировано: 21.12.2025 16:56 | ArXiv Data Collector

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с