TGViewer
ML прокачка ML прокачка @ml_prokachka · 97 subscribers
Post #100 111
Как LLM могут общаться на своем языке

В октябре вышла статья, в которой разработчики представили новый способ взаимодействия LLM между собой.

Зачем нужно взаимодействие?
В мультиагентных системах могут использоваться несколько моделей. Выход одной из них подается на вход другой. Простой пример: первая модель отработала запрос пользователя и решила, что для выполнения этого запроса нужно использовать модель для генерации картинок. Первая составила соответствующий промпт и отдала второй.
Пример с несколькими текстовыми моделями: одна из них общего домена, а другие специализированные. «Общая» решает, к какой из остальных передать запрос.

В чем проблема?
Проблема в том, что, передавая текст между моделями, мы сильно ограничиваем информацию. В процессе генерации LLM хранит скрытые состояния, которые более информативны, чем итоговый текст на выходе. Таким образом, мы как бы ограничиваем потенциал.

Что предлагают?

А что, если передавать между моделями эти скрытые состояния вместо итогового текста? Это как если бы люди общались мыслями, а не просто словами. Ведь в мыслях гораздо больше хранится информации, чем в просто словах. Этими скрытыми состояниями является Key-Value Cache. Это результаты векторного умножения Key и Query в Self-Attention модуле трансформера. Подробнее об этом 1 и 2.

Но дело в том, что разные модели сохраняют эти состояния по-разному. Как будто LLM-ки говорят на разных языках. Поэтому авторы статьи придумали отдельную модуль «объединитель мыслей» — Fuser модуль.

Подробнее про Fuser модуль (см. картинку)
Этап 1: объединить мысли обеих моделей путем конкатенации их KV-cache и проекции (полносвязный слой) в новый вектор. Это и есть мост.
Этап 2: Динамическое взвешивание позволяет при разных входных данных учитывать разный вес элементов нового вектора и применять бинарную функцию активации (Gumbel-sigmoid). Таким образом решается, внедрять или нет новый контекст конкретно в данном случае.
Этап 3: В KV-cache второй модели добавляется новый контекст. Именно добавляется, а не перезаписывается.

Как обучается?
Обе модели остаются статичными — их веса не обучаются. Обучается только Fuser модуль, в котором идут вышеперечисленные этапы. То есть обеим моделям в ходе обучения приходит промпт, затем во вторую модель вливается объединенный KV-cache. И оценивается способность к предсказанию в обычной манере обучения LLM — Supervised Fine-tuning.

Плюсы:
Объединение мыслей действительно дает прирост качества. Кроме того, прирост скорости достигается за счет использования принципе KV-cache, а также устранения необходимости генерации самого текста. Да и модели могут генерировать KV-cache параллельно.

Минусы:

Основной минус в том, что для каждых новых 2-х моделей приходится обучать свой Fuser модуль, что может быть затратно. Кроме того, потребление памяти тоже сильно возрастает по сравнению с использованием одной модели без KV-cache. Ну и риск потери информации при объединении мыслей тоже сохраняется.

В целом весьма интересный подход для применения мультиагентных систем.
  • 👍 2
  • 🔥 1
More from @ml_prokachka
  1. Jun 7, 2026Всем привет! Давно не делился полезным контентом. Решил вчера позалипать в Ютубчике и натк…
  2. May 8, 2026OpenCode vs Continue.dev Говоря про ИИ‑ассистент для кода, кто‑то предпочитает отдельные и…
  3. Apr 14, 2026Оставит ли вас в живых LLM? Есть интересное исследование, оформленное в виде бенчмарка, ко…
  4. Mar 10, 2026Как мы внедряли менеджер ML‑экспериментов На Хабре опубликовали статью о том, как мы в ком…
  5. Feb 24, 2026Форматы датасетов Обзорный пост для тех, кто работает с большими датасетами. Недавно мы вз…
  6. Feb 17, 2026AI‑прогресс наглядно Сегодня наткнулся на такой видос и крутил его на репите раз 15, навер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →