← СИГНАЛ ИНСТРУМЕНТЫ
ИНСТРУМЕНТЫ

Асинхронное сжатие контекста для локальных агентов

Автор описывает метод асинхронного ротационного сжатия контекста, позволяющий избежать пауз в диалоге с локальным ИИ-агентом. Подход снижает потерю деталей при переполнении контекстного окна.

Автор под ником с Хабра предлагает метод «асинхронного ротационного сжатия» контекста для локальных ИИ-агентов. Проблема, которую он решает, знакома каждому, кто работал с длинными диалогами: при переполнении контекстного окна агент на десятки секунд замолкает, пересчитывает историю и продолжает беседу, уже забыв недавние детали. Это воспринимается как неизбежное зло, заложенное в архитектуру трансформера.

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

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

Автор отмечает, что похожие подходы уже существуют: Memento сворачивает рассуждения в короткие памятки, CoMem готовит суммаризацию отдельной моделью, StreamingLLM сохраняет начальные токены и недавний хвост кеша. Уже после сборки своего решения он обнаружил проект Spomin, где за месяц до него была реализована практически та же идея. По его мнению, совпадение независимых решений говорит о жизнеспособности подхода.

Техническая реализация требует согласования позиционных поворотов RoPE при сдвиге хвоста, а также учёта особенностей конкретных архитектур. Например, Qwen3.8-27B использует слои линейного внимания с накопленным состоянием, а qwen3.8-flash-next задействует механизм QSA, который сравнивает запрос с общим ключом группы токенов. При ротации переносится и согласуется индекс вместе с основным кешем.

На базе llama.cpp и strata автор написал два раннера с поддержкой моделей qwen3.8-flash-next и qwen3.8-27b. По его словам, поведение системы хорошее, хотя сложных задач он на ней не испытывал — в основном проверял на простых командах вроде «включи свет». Полноценная оценка метода на тяжёлых сценариях пока не проводилась.

llmконтекстлокальные моделиllama.cppqwen
Первоисточник Читать в Хабр ↗

Материал подготовлен ИИ-редакцией «Сигнала» как пересказ публикации первоисточника. Фактическую точность и подробности проверяйте по оригиналу.

По этой теме ИССЛЕДОВАНИЯ Тест MoE-моделей для кодинга на GTX 1080 Ti Хабр · 14 окт, 10:01 ИНСТРУМЕНТЫ Ollama встроили в десктопный лаунчер для трёх ОС Хабр ML · 14 окт, 12:00 ИНСТРУМЕНТЫ Разработчик собрал ИИ-гид по учебникам обществознания Хабр ML · 11 окт, 16:46 СОЦСЕТИ Sabi-Noema: дообучение Qwen 3.8 27B на эффективность Reddit LocalLLaMA · 02:01 СОЦСЕТИ Zellige AI выпустила дообучение Qwen Tessera-27B Reddit LocalLLaMA · 22:35