Cache-to-Cache (C2C): прямое общение LLM через слияние KV-Cache
'Cache-to-Cache (C2C) дает LLM возможность обмениваться смыслом через KV-Cache, улучшая точность на несколько процентов и снижая задержку примерно в 2 раза по сравнению с текстовым обменом.'
Почему текстовая коммуникация между моделями ограничена
Современные системы с несколькими LLM в основном обмениваются информацией через натуральный язык: одна модель пишет объяснение, другая читает его как контекст. Такой подход имеет практические недостатки: внутренние активации сжимаются в короткий текст, теряются структурные сигналы, натуральный язык вводит неоднозначности, а декодинг токен за токеном увеличивает задержку при длинных рассуждениях.
Оракульные эксперименты: можно ли передавать смысл через кеш
Авторы провели два оракульных исследования, чтобы проверить, несет ли KV-Cache полезную семантику для передачи между моделями.
Кеш-обогащение (Cache enrichment oracle)
Сравнивались три стратегии предпрефилла на задачах с выбором ответа: Direct (только вопрос), Few-shot (примеры плюс вопрос) и Oracle (примеры плюс вопрос, затем отбрасывают сегменты с примерами и оставляют только срез кеша, выровненный по вопросу, чтобы длина кеша совпадала с Direct). Oracle увеличил точность с 58.42% до 62.34% при той же длине кеша, Few-shot достиг 63.39%. Это показывает, что обогащение среза кеша, выровненного по вопросу, само по себе улучшает результаты без добавления токенов. Анализ по слоям показал, что обогащать выбранные слои лучше, чем все подряд, что мотивировало идею селективной инъекции.
Трансформация кеша (Cache transformation oracle)
Трехслойный MLP обучили переводить KV-Cache от Qwen3 4B в пространство Qwen3 0.6B. t-SNE визуализации показали, что трансформированный кеш попадает в многообразие целевого кеша, пусть и в подрегионе. Это подтверждает, что кеш-представления можно проецировать между моделями.
Парадигма Cache-to-Cache (C2C)
C2C рассматривает коммуникацию как прямую передачу семантики между Sharer и Receiver через слияние кешей. Во время предпрефилла обе модели читают одинаковый вход и формируют послойные KV-Cache. Для каждого слоя Receiver C2C выбирает сопоставленный слой Sharer и применяет C2C Fuser, получая слитый кеш. При декодинге Receiver предсказывает токены с учетом этого слитого кеша вместо оригинального.
Архитектура C2C Fuser
Fuser интегрирует кеши по принципу остаточной интеграции и состоит из трех модулей:
- Модуль проекции: конкатенирует векторы Sharer и Receiver KV, применяет проекционный слой и слой слияния признаков.
- Модуль динамической взвешенности: модулирует attention-heads в зависимости от входа, так что некоторые головы сильнее полагаются на информацию от Sharer.
- Обучаемая вентилия (gate): послойный гейт решает, внедрять ли контекст Sharer в данный слой. Во время обучения используется Gumbel sigmoid, на инференсе гейт становится бинарным.
C2C также предусматривает выравнивание между моделями разных семейств и размеров: токен-выравнивание (декодировать токены Receiver в строки, повторно кодировать их токенизатором Sharer и выбирать токены Sharer с максимальным покрытием строки) и выравнивание слоев по терминальной стратегии (сопоставлять верхние слои и идти назад).
Обучение и наборы оценок
Обе LLM остаются замороженными при обучении, обучается только модуль C2C. Критерий — loss на предсказание следующего токена для Receiver. Основные фузеры обучали на первых 500k примерах OpenHermes2.5 и оценивали на OpenBookQA, ARC Challenge, MMLU Redux и C-Eval.
Результаты: точность и задержка
Для комбинаций Sharer/Receiver на Qwen2.5, Qwen3, Llama3.2 и Gemma3, C2C стабильно повышает точность Receiver и снижает задержку.
- Прирост средней точности по сравнению с одиночной моделью составляет примерно 8.5–10.5 процентных пунктов.
- По сравнению с текстовой коммуникацией C2C дает допвыигрыш около 3.0–5.0 процентных пунктов.
- Задержка сокращается примерно в 2 раза по сравнению с текстовым обменом, а в некоторых конфигурациях выигрыш больше.
Пример: Qwen3 0.6B как Receiver и Qwen2.5 0.5B как Sharer. На MMLU Redux: Receiver 35.53%, текст-текст 41.03%, C2C 42.92%. Среднее время на запрос для текст-текст 1.52 условных единицы, для C2C около 0.40. Подобная картина на других бенчмарках и для длинных контекстов на LongBenchV1.
Выводы и перспективы
C2C переводит задачу совместной работы LLM из области prompt engineering в область прямой семантической передачи. Проекция и слияние KV-Cache с помощью нейронного фузера и обучаемого гейта позволяют моделям обмениваться глубокими представлениями без промежуточной генерации текста, что уменьшает потерю информации и ускоряет работу. Это практический шаг в сторону KV-native сотрудничества между моделями и открывает путь для дальнейших исследований в области выравнивания кешей и гибридных стратегий коммуникации.
Switch Language
Read this article in English