Oossa

AKV от Tsinghua управляет памятью LLM-агентов через кэш

AKV позволяет агентам удалять и перемещать сохранённый контекст, не переписывая историю диалога. По данным авторов, в тестах это снизило затраты и ускорило обработку запросов.

Автор: Опубликовано Oossa: 2 мин чтения

Steve A Johnson · Unsplash

Исследователи из Tsinghua выложили на GitHub исходный код AKV — системы управления кэшем для LLM-агентов. Вместо того чтобы сокращать или пересказывать диалог агента, когда он становится слишком длинным, AKV позволяет удалять выбранные сохранённые данные и менять расположение оставшихся. Проект построен на базе SGLang — ПО для запуска языковых моделей — и включает компонент, который выбирает операции с кэшем, а также систему обработки запросов, которая их выполняет.

Это важно, потому что история агента может содержать множество наблюдений, вызовов инструментов и результатов их работы. Хранение всего этого в активном контексте модели требует памяти и вычислительных ресурсов. Но редактирование предыдущих сообщений может заставить систему заново обработать последующий контекст — этот этап называется повторным предварительным заполнением (re-prefilling). В статье об AKV говорится, что это может обходиться дорого, а чрезмерное удаление истории — снижать точность выполнения задач. Вместо этого AKV сохраняет историю диалога без изменений, но меняет, на какие части хранящегося кэша ключей и значений обращается модель.

Как работает AKV?

AKV предоставляет агентам две операции с кэшем. «Удаление» исключает выбранные данные из последующего контекста внимания, а «перемещение» уплотняет позиции сохранённых данных. В примере из проекта сохраняется последний результат работы инструмента, более ранний удаляется после появления нового, а затем оставшиеся данные в кэше перемещаются. Исходные сообщения остаются в запросе, а сервер AKV выполняет инструкции для кэша. По данным статьи, благодаря этому повторно обрабатывать сохранённый контекст не приходится.

Система также должна учитывать изменения кэша. В статье отмечается, что одна и та же последовательность токенов диалога может приводить к разным состояниям кэша, если агент использовал разные операции. Поэтому сервер не может безопасно повторно использовать сохранённые данные, опираясь только на совпадение начала диалога. AKV сочетает политику на стороне агента с сервером на базе SGLang, который управляет повторным использованием, удалением и восстановлением данных кэша. По словам разработчиков, сервер использует интерфейс без сохранения состояния, совместимый с существующими API для обработки запросов, а состояние кэша обрабатывает внутри системы.

Что показали тесты?

В экспериментах авторов политика последовательного удаления ответов инструментов повысила средний результат бенчмарков на 1.7 балла и снизила средние затраты на 27.7% по сравнению с суммаризацией, запускаемой при достижении порогового значения. В статье также сообщается об увеличении пропускной способности генерации до 1.2 раза и ускорении обработки запросов на 95-м перцентиле в 1.5 раза. Другой метод оптимизации политики работы с кэшем снизил затраты на 7.1% по сравнению с политиками, разработанными экспертами. Это результаты, о которых сообщают авторы статьи; в предоставленных материалах нет данных о независимой проверке.

Согласно инструкции на GitHub, для установки AKV нужны Rust, Cargo и Python 3.12. В примере быстрого запуска через AKV обслуживаются запросы к GPT-OSS-120B, которые отправляются в формате chat-completions, совместимом с OpenAI. В проекте также описан способ встроить их политику в существующую среду для запуска агентов: запросы обрабатываются до отправки на сервер. Представленные результаты охватывают четыре бенчмарка для агентов, однако в предоставленных материалах эти бенчмарки не названы и недостаточно подробностей, чтобы оценить, насколько экономия будет сопоставима при использовании других моделей или нагрузок.

Почему это важно

Команды, создающие агентов, которые регулярно вызывают инструменты, могут использовать AKV, чтобы удалять устаревшие результаты работы инструментов, не переписывая историю диалога. Авторы сообщают о снижении затрат в своих тестах, однако реальные результаты для конкретной команды будут зависеть от используемой модели и нагрузки.

Эта статья была полезной?
Поделиться

Читайте также

Oossa · Рассылка

Неделя ИИ — простыми словами

Каждый понедельник: главное за неделю понятным языком. Бесплатно, без спама.