Sakhanda Wire
NVDA $230.86 +1.09% MSFT $512.80 -0.02% GOOGL $338.24 -1.70% META $725.93 +0.10% AMZN $248.23 -0.37%
← К новостям

Знакомьтесь: Redis LangCache — управляемый семантический кэш, который сокращает расходы на LLM API до 90% и возвращает попадания из кэша до 15 раз быстрее

Производственные приложения на базе LLM редко получают вопрос, который никто прежде не задавал. Ассистенты поддержки и RAG-конвейеры обрабатывают одни и те же намерения тысячи раз в день, каждый раз сформулированные по-разному, а большинство стеков рассматривают каждую формулировку как новый запрос, полностью тарифицируемый по стоимости. Redis LangCache — это полностью управляемый сервис семантического кэширования, который работает между приложением и моделью, сопоставляет входящие запросы с ранее обработанными по смыслу, а не по точному совпадению текста, и возвращает сохранённый ответ, если найдено достаточно близкое совпадение. Redis сообщает об экономии до 90% на затратах API и ответах из кэша, которые работают до 15 раз быстрее повторного запроса к модели.

Можно ли его развернуть? Да. LangCache уже доступен в виде публичной предварительной версии в Redis Cloud, доступ к нему осуществляется через REST API с SDK для Python и JavaScript, при этом Redis отмечает, что функции и поведение сервиса могут измениться в период предварительного просмотра.

Проблема: перефразированные запросы всё равно превращаются в полноценные вызовы LLM

Рассмотрим три запроса к ассистенту службы поддержки:

  • «Могу ли я получить возврат средств после покупки месячного тарифа?»
  • «Предусмотрен ли возврат средств за месячную подписку?»
  • «Могу ли я отменить тариф и вернуть свои деньги?»

Формулировки отличаются, но вопрос и ответ идентичны. Без семантического кэша каждая версия запускает полную генерацию: обрабатываются входные токены, декодируются выходные токены, пользователь ждёт.

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

Как работает LangCache

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

  1. До вызова модели приложение отправляет запрос на POST /v1/caches/{cacheId}/entries/search.
  2. LangCache создаёт эмбеддинг запроса и выполняет векторный поиск среди сохранённых записей.
  3. Если семантически схожая запись соответствует заданному порогу сходства, возвращается кэшированный ответ, и вызов LLM не выполняется.
  4. При промахе приложение как обычно вызывает выбранную LLM, а затем сохраняет запрос и новый ответ через POST /v1/caches/{cacheId}/entries для последующих совпадений.

Создание эмбеддингов выполняется сервисом с использованием моделей по умолчанию или собственных моделей. Поведение кэша контролируется порогами сходства, TTL и политиками вытеснения, а также адаптивными настройками, регулирующими точность и полноту. Построенный на векторной базе данных Redis и предоставляемый через REST API, сервис работает с любым провайдером LLM и любым языком. Коэффициенты попаданий и размер экономии отслеживаются в консоли Redis Cloud.

Что на самом деле экономит попадание в кэш

Попадание в кэш устраняет входные токены, выходные токены и задержку декодирования дополнительного вызова модели. В демонстрационном запуске, сравнивавшем оба варианта на перефразированном вопросе, прямой вывод занял 2,232 секунды и использовал 514 входных токенов плюс 250 выходных токенов. LangCache вернул предыдущий ответ за 0,37 секунды, не использовав ни одного входного или выходного токена LLM, что в этом запуске примерно в 6 раз быстрее.

В документации Redis подробно описано, как формируется экономия. При ответе из кэша вы не платите за выходные токены, тогда как затраты на входные токены обычно компенсируются расходами на создание эмбеддингов и хранение. Рекомендуемая оценка выглядит так:

Est. monthly savings = (Monthly output token costs) x (Cache hit rate)

При ежемесячных расходах на LLM в размере 200 долларов, когда 60% этой суммы приходится на выходные токены, и коэффициенте попаданий 50% экономия составит 60 долларов в месяц. Redis также публикует калькулятор экономии для расчёта годовых показателей.

В объявлении о публичной предварительной версии Redis указал, что ответы при попадании в кэш могут работать до 15 раз быстрее, а использование токенов может сокращаться до 70%, тогда как на текущей странице продукта заявлена экономия до 90%. Клиент Mangoes.ai сообщает о коэффициенте попаданий 70% в своём голосовом приложении для ухода за пациентами, что позволило сократить расходы на LLM на 70% и ускорить ответы в 4 раза. Фактический результат зависит от того, насколько много безопасных повторений присутствует в трафике.

В каких случаях семантическое кэширование требует осторожности

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

LangCache решает эти задачи с помощью областей доступа, пользовательской фильтрации, настроек TTL и вытеснения, а также мониторинга через Redis Cloud. Данные остаются на серверах Redis клиента, и Redis заявляет, что не получает доступа к этим данным и не использует их для обучения моделей.

Основные выводы

  • Кэширование префиксов сокращает затраты на обработку промпта; семантическое кэширование полностью устраняет вызов LLM при попадании.
  • LangCache представляет собой REST-интеграцию из двух вызовов: поиск до обращения к модели и сохранение после него.
  • Экономия в основном достигается за счёт исключения выходных токенов; в документации приведена формула output cost x hit rate.
  • Redis заявляет об экономии до 90% и ускорении попаданий в кэш до 15 раз; демонстрационный запуск показал ускорение в 6 раз.
  • Безопасность семантического кэша определяется порогами, TTL, изоляцией и мониторингом ложных совпадений.

Посетите redis.io/langcache и ознакомьтесь с примерами API и SDK. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту по машинному обучению с аудиторией более 150 тыс. участников и подписаться на нашу рассылку. Постойте! Вы есть в Telegram? теперь вы также можете присоединиться к нам в Telegram.

Хотите стать нашим партнёром для продвижения своего репозитория GitHub, страницы Hugging Face, релиза продукта, вебинара и т. д.? Свяжитесь с нами

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости