Cache-to-Cache: занятная статья о том, как модели могут общаться на "собственном языке"
Работа очень напоминает папиру от Microsoft, вышедшую примерно год назад (наш разбор). И все-таки есть ключевое отличие: если у майкрософтов получилось научить общаться без токенов только разные экземпляры одной и той же модели, то здесь предложен способ, который работает для любой пары моделек, даже из разных семейств, от разных компаний и разных по архитектуре.
Немножко контекста. Когда два агента общаются мультимодельной системе, они обычно делают это текстом. Это довольно неэффективно, потому что вообще-то у каждой модели есть Key-Value Cache – внутренние состояния внимания, хранящие, по сути, всю информацию о мыслях модели. И вот если бы агенты научились общаться не токенами, а именно KV-кэшем, это было бы в разы быстрее, а информация была бы полнее.
Так появляется Cache-to-Cache (C2C) – парадигма прямого обмена смыслом, а не словами. Источник (Sharer) передаёт свой кэш, а получатель (Receiver) через нейросеть-проектор встраивает этот кэш в своё пространство.
Напрямую, без проектора, это сделать бы не получилось, потому что у разных моделей разное скрытое пространство. Поэтому авторы и обучили Projection module, который как бы соединяет кеши Sharer и Receiver в единый эмбеддинг, понятный обеим моделькам. Кроме Projection module в протоколе еще появляется weighting module, который решает, какую информацию вообще стоит передавать от Sharer.
Что это дает?
1. Скорость, очевидно. Относительно Text-to-Text все происходит в 2-3 раза быстрее.
2. Прирост к точности. Если объединить две модели таким образом и поставить их решать одну задачу, метрика подлетает в среднем на 5% относительно случая, когда модели также объединяются, но общаются текстом.
То есть: обмениваясь кэшем, модели действительно лучше понимают друг друга, чем когда обмениваются токенами. Это крутой результат.
Большой практический минус в том, что подход не универсальный. Для каждой пары моделек придется обучать свой "мост". Там всего несколько MLP слоев, но все же. Ну и если у моделей совсем разные токенизаторы – тоже запара, придется делать Token alignment.
GitHub
Статья
Post #1715
186
