Семантическое кэширование

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

Похожие термины

Ещё термины: Основы ИИ