
Обычно LLM работает строго последовательно: получает запрос, рассуждает и только после этого отвечает. Пока она думает, новая информация остаётся за пределами текущего процесса. Пользователь может уточнить вопрос, камера — передать следующий кадр, а инструмент — вернуть результат, но модель не увидит ничего из этого, пока не закончит начатое.
Для чат‑бота такая задержка может быть приемлемой. Для голосового ассистента, робота, игрового агента или системы, которая следит за непрерывным видеопотоком, это превращается в фундаментальное ограничение. Интерактивный агент должен получать новые данные прямо во время вычислений, корректировать план без полного перезапуска, выдавать полезные промежуточные действия и координировать процессы, которые идут с разной скоростью: восприятие, рассуждение, речь, работу с инструментами.
Меня зовут Георгий Якушев. Я исследователь Yandex Research, преподаватель и выпускник ШАД. Мы изучаем, какую часть этой интерактивности можно реализовать на уровне инференса, не меняя весов уже обученной модели. В этой статье я расскажу, почему полезно перестать воспринимать KV‑кеш только как способ ускорить генерацию и начать рассматривать его как активное состояние агента.
Почему привычного цикла «прочитать — подумать — ответить» недостаточно
Современные агенты обычно собраны вокруг последовательности блокирующих вызовов. Модель получает фиксированный контекст, генерирует рассуждение, вызывает инструмент, ждёт результат и продолжает работу. Эта схема понятна и удобна для офлайн‑задач, но плохо соответствует среде, которая меняется непрерывно.
Представим голосового ассистента, которому задали сложный вопрос. Если модель рассуждает несколько минут, ассистент всё это время молчит. Если пользователь уточнит запрос на середине рассуждения, уже выполненные вычисления часто приходится отбрасывать. Игровой агент сталкивается с той же проблемой: пока он строит план по одному кадру, ситуация в игре успевает измениться. Система безопасности не должна останавливать обработку новых сигналов лишь потому, что формулирует объяснение предыдущего события.
Уже существуют интерактивные системы, в которых последовательную схему меняют с помощью нового претрейна, посттрейна, специальных форматов данных, block‑causal attention, стриминговых энкодеров или дополнительных policy heads. Мы исследуем другую перспективу: можем ли мы добиться интерактивности за счёт изменения протокола инференса.

KV‑кеши более гибкие, чем кажутся
При авторегрессионной генерации ключи и значения в аттеншене, рассчитанные для предыдущих токенов, не меняются. Чтобы не вычислять весь префикс заново на каждом шаге, модель сохраняет их в KV‑кеше. Обычно на этом объяснение заканчивается: кеш считают пассивной оптимизацией, которая удешевляет то же самое последовательное вычисление.
Но мы предлагаем рассматривать KV‑кеш иначе. Это активное состояние выполнения модели. Он определяет, какие результаты предыдущих вычислений увидит новый запрос, в каком причинном порядке они расположены и какие промежуточные состояния могут повлиять на следующий токен. Если изменить структуру и доступность кеша, изменится и вычисление, которое выполняет модель, хотя её параметры и представления токенов останутся прежними.
Вместо одного длинного контекста, к которому последовательно дописывается ответ, можно хранить набор дополняемых блоков. Отдельные блоки соответствуют входящим сообщениям пользователя, внутреннему рассуждению, ответу агента, результатам вызова инструментов, визуальным наблюдениям или работе других субагентов. Разным процессам при этом доступны разные логические представления одних и тех же физических блоков.
Для моделей с RoPE это можно сделать без повторного кодирования и копирования всего кеша. Пусть обозначает применение поворота к вектору
в позиции
. Тогда произведение запроса и ключа можно записать так:
Блок кеша достаточно один раз сохранить в локальных координатах. Во время запроса attention kernel применяет к текущему query поворот, зависящий от конкретного блока. Один и тот же физический блок в разных потоках оказывается на разных логических позициях. Плоский append‑only‑тензор превращается в переиспользуемую память с несколькими представлениями.

Подробнее о математике таких поворотов можно почитать в нашей работе Hogwild! Inference.
От параллельных ответов к совместному вычислению
Параллельный инференс LLM сам по себе не нов. Одни методы сравнивают несколько независимых генераций или организуют диалог между агентами. Другие — распараллеливают рассуждение или независимые вызовы инструментов. Во всех этих случаях параллелизм появляется на разных уровнях: во внешнем оркестраторе, структуре генерации или исполнении инструментов.
В наших работах Hogwild! Inference и AsyncReasoning мы с соавторами исследуем ещё один вариант. Модель остаётся той же, но меняются протокол выполнения и доступ к общему состоянию. Сейчас поговорим о них поподробнее.
Hogwild! Inference: несколько моделей с общей памятью
Традиционная мультиагентная система обычно заранее задаёт способ совместной работы. Агенты голосуют, спорят фиксированное число раундов, получают роли или выполняют ветви заранее построенного графа задач. Иногда это работает хорошо, но универсальной структуры нет. Ошибка в первоначальной декомпозиции тянется через весь процесс, параллельные ветви повторяют работу друг друга, а система продолжает ждать медленную подзадачу, даже если её результат уже потерял смысл.
В Hogwild! Inference несколько экземпляров одной предобученной модели работают одновременно и записывают свои токены в общую память. Каждый воркер видит незавершённые генерации остальных сразу, не дожидаясь, пока те сформулируют полное сообщение или закончат цепочку рассуждений. По ходу генерации модели могут разделить задачу, проверить чужое решение, попробовать другой подход решения, заметить дублирование или продолжить перспективную мысль другого воркера.
Для этого каждому участнику требуется свой логический порядок блоков. Представим два воркера — Alice и Bob. Воркер Аlice должен видеть общий промпт, текущую работу Bob и затем собственные токены как непосредственное продолжение контекста. Для Bob порядок симметричен: общий промпт, работа Alice, его собственная генерация. Повторное кодирование всех блоков для каждого воркера на каждом вызове forward уничтожило бы значительную часть выигрыша от существования KV‑кеша.
Мы сохраняем истории воркеров как переиспользуемые блоки и задаём нужное представление с помощью отдельных поворотов query внутри attention kernel. В результате агенты координируются через общее состояние, хотя специально мультиагентному взаимодействию их не обучали.
Несмотря на то что фундаментально модель не приобретает новых знаний, такое мультиагентное взаимодействие позволяет решать сложные задачи быстрее за счёт большей коллаборативности агентов.

AsyncReasoning: рассуждения не должны блокировать ответ
AsyncReasoning применяет тот же принцип к другой проблеме. Обычный reasoning‑пайплайн устроен как строгий цикл: прочитать весь запрос, сгенерировать рассуждение, затем показать ответ пользователю. Для интерактивной системы это неудачный протокол. Чем дольше модель думает, тем позже пользователь получает первый содержательный ответ.
В AsyncReasoning инференс разделён на три логических потока: входящую информацию, внутреннее рассуждение и ответ агента. Thinker продолжает развивать скрытую от пользователя цепочку рассуждений, пока Writer формулирует видимый текст на основе уже полученных промежуточных результатов. Thinker видит текущий ответ и может приостановить Writer, если для продолжения пока недостаточно информации.
Потоки используют одни и те же закодированные токены, но получают разные логические контексты. С точки зрения Writer промежуточные мысли находятся перед ответом. В контексте Thinker уже написанная часть ответа выглядит как более ранний фрагмент взаимодействия, поэтому модель может учитывать, что именно она успела сообщить пользователю.
Так рассуждение и коммуникация становятся независимо планируемыми процессами. В некоторых экстремальных сценариях описанное преобразование рантайма сокращало время до первого видимого токена ответа в 80 раз, а суммарную воспринимаемую пользователем задержку — в 12 раз, сохраняя значительную часть качества ответа, которую дают длинные рассуждения.
Важно, что речь не о простом сокращении числа reasoning‑токенов. Модель по‑прежнему может долго думать над сложной задачей, но ей больше не обязательно всё это время молчать. В перспективе подобная система может одновременно читать новый ввод, продолжать рассуждение, отвечать пользователю и асинхронно работать с инструментами.

Мультимодальный агент как асинхронная I/O‑система
Этот подход применим не только к тексту. Изображения, видео и аудио современные мультимодальные модели тоже преобразуют в последовательности представлений, которые попадают в общий контекст. После этого возникают те же системные вопросы: какому процессу принадлежат состояния, когда их добавлять и какие другие потоки должны их видеть?
У интерактивного агента может быть сразу несколько входных и выходных каналов: текст, изображение, звук, внутреннее рассуждение, речь, действия, вызовы инструментов и их результаты. Они не начинаются и не заканчиваются одновременно. Камера продолжает присылать кадры, пока модель строит план. Пользователь может перебить ассистента на середине фразы. Инструмент иногда возвращает результат после того, как агент уже занялся другой частью задачи.
Если принудительно выстроить все события в синхронную очередь request‑response, система будет простаивать и работать с устаревшим состоянием. Многопоточный рантайм позволяет обращаться с ними как с асинхронными I/O‑операциями. Новые наблюдения кодируются параллельно рассуждению, результат инструмента становится доступен сразу после завершения, а действие можно выполнить до того, как будет готов весь долгосрочный план. Планировщик управляет видимостью потоков и точками синхронизации, не перезапуская модель с исходного промпта.
Doom без дополнительного обучения
Сейчас мы в процессе разработки демонстрационной системы, в которой мультимодальный Qwen3.5 играет в Doom, непрерывно получая новые визуальные данные. Среда присылает поток кадров, новые визуальные токены добавляются в активный контекст, а модель параллельно рассуждает и генерирует команды клавиатуры или контроллера.
Модель не дообучается на траекториях Doom и не использует специальный streaming objective. Протокол взаимодействия реализуется на инференсе по мере того, как наблюдения, reasoning‑токены и действия обновляют общее состояние и получают к нему доступ.
Для Doom это особенно наглядная проверка. Пока агент думает, мир не останавливается, поэтому действие, выбранное по одному кадру, к моменту исполнения уже может устареть. Агенту нужно учитывать новые изображения и корректировать действия, не прерывая рассуждение. Подробнее об устройстве этой системы мы расскажем в отдельной работе.

Каким должен быть рантайм для интерактивной модели
Исследовательского прототипа с несколькими Python‑циклами для практической системы недостаточно. Мы работаем над реализацией более общего фреймворка асинхронного I/O в SGLang и над собственными GPU‑кернелами для эффективного инференса с несколькими потоками и представлениями состояния.
Такой serving stack должен поддерживать разные логические потоки, локальные позиции внутри блоков, правила видимости для разных агентов, асинхронную запись, прерывания, переключение режимов, результаты инструментов, continuous batching и освобождение состояния долгоживущих процессов. Attention kernel должен обрабатывать по‑разному преобразованные query для нескольких блоков кеша без создания отдельных физических копий. Планировщику нужно объединять независимые потоки в батчи, не заставляя все запросы останавливаться в одной точке синхронизации.
По устройству целевая абстракция становится похожа скорее на рантайм операционной системы, чем на привычный endpoint текстовой генерации. Потоки играют роль процессов, блоки кеша становятся общей памятью, attention views задают отображения доступа, а новые данные от пользователя, среды и инструментов работают как прерывания. Аналогия не буквальная, но она хорошо показывает, каких системных интерфейсов не хватает интерактивным моделям.
Известные ограничения этого подхода
Подход без дополнительного обучения имеет ограничения. Модель, обученная на последовательном взаимодействии, может плохо работать с частичной или устаревшей информацией, повторять вычисления в нескольких потоках и ошибаться в выборе момента, когда стоит действовать, а когда лучше подождать. Манипуляции с кешем усложняют батчинг, управление памятью, speculative decoding и распределённый инференс. В мультимодальных системах добавляются энкодеры и интерфейсы действий, которым тоже требуется инкрементальная работа.
Поэтому runtime‑методы и интерактивное обучение стоит рассматривать как взаимодополняющие направления. Изменение рантайма позволяет быстро проверять новые протоколы взаимодействия без обновления весов, а обучение впоследствии может улучшить координацию потоков, выбор времени ответа и устойчивость к изменяющемуся контексту.
Для оценки таких систем одних токенов в секунду тоже недостаточно. Не менее важны время до первого полезного действия, задержка реакции на новое наблюдение и доля вычислений, которую удаётся совместить с восприятием среды или исполнением инструментов.
Значительная часть исследований AI‑агентов сегодня сосредоточена на улучшении моделей, посттрейна и внешней оркестрации. Интерактивность на уровне инференса добавляет ещё одну ось: можно менять способ выполнения готовой модели, структуру её состояния и взаимодействие параллельных процессов. Результаты Hogwild! Inference и AsyncReasoning показывают, что у этой части стека гораздо больше возможностей, чем предполагает привычный интерфейс request‑response.
Главный вывод после наших экспериментов в том, что интерактивность LLM зависит не только от обучения модели, но и от того, как устроен её инференс. Если рассматривать KV‑кеш как активное состояние и общую память, восприятие новых данных, рассуждение и генерацию ответа можно выполнять параллельно, не перезапуская модель при каждом изменении контекста. Hogwild! Inference и AsyncReasoning показывают, что такой подход уже способен ускорить совместное решение задач и сократить задержку ответа, хотя пока требует специального рантайма и дальнейшей проверки в реальных сценариях. По сути, следующий шаг в развитии интерактивных агентов может быть связан не только с более совершенными весами, но и с более гибкой организацией вычислений вокруг них.
Важные ссылки
Автор: mrdarktesla


