Добавить в корзинуПозвонить
Найти в Дзене
Цифровая Переплавка

Heima: когда «цепочка мыслей» прячется в скрытых представлениях

Чтобы большие мультимодальные языковые модели (Multimodal Large Language Models, MLLM) могли решать сложные задачи, их зачастую учат явно расписывать логику ответа — то, что называется цепочка рассуждений (Chain of Thought - CoT). Однако это приводит к генерации объёмных промежуточных рассуждений, что заметно увеличивает число токенов и, как следствие, замедляет вывод (inference). В статье «Efficient Reasoning with Hidden Thinking» авторы предлагают фреймворк Heima: CoT прячется во «внутреннее пространство» модели, а снаружи видна лишь короткая последовательность специальных «thinking tokens», которые затем можно расшифровать обратно в детальные рассуждения при необходимости. Идея в том, чтобы модель по ходу генерации не печатала полные промежуточные шаги («Почему ответ такой»), а кодировала их во внутренние векторные представления. Авторы реализуют это в два этапа: 🏷️ Heima Encoder (мультимодальная часть): 🧩 Heima Decoder (обычный LLM, работающий только с текстом): Проще говоря, во
Оглавление

Чтобы большие мультимодальные языковые модели (Multimodal Large Language Models, MLLM) могли решать сложные задачи, их зачастую учат явно расписывать логику ответа — то, что называется цепочка рассуждений (Chain of Thought - CoT). Однако это приводит к генерации объёмных промежуточных рассуждений, что заметно увеличивает число токенов и, как следствие, замедляет вывод (inference). В статье «Efficient Reasoning with Hidden Thinking» авторы предлагают фреймворк Heima: CoT прячется во «внутреннее пространство» модели, а снаружи видна лишь короткая последовательность специальных «thinking tokens», которые затем можно расшифровать обратно в детальные рассуждения при необходимости.

🏗️ Как устроен Heima

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

🏷️ Heima Encoder (мультимодальная часть):

  • Получает на вход изображение (Xv) + вопрос (Xq)
  • Генерирует финальный ответ (Ya)
  • Вместо «текстовых CoT» создаёт небольшую последовательность специальных токенов <CoT>(k), по одному на каждый этап рассуждения.
  • Скрытые состояния этих специальных токенов (thinking tokens) несут в себе всю полноту CoT, но при этом занимают намного меньше текстового места.

🧩 Heima Decoder (обычный LLM, работающий только с текстом):

  • Может принять «thinking tokens» от Heima Encoder как скрытые векторы, плюс «объясняющую» подсказку (prompt)
  • Декодирует их в исходный (или почти исходный) детализированный CoT, чтобы была понятна логика вывода.

Проще говоря, во время реального ответа Heima Encoder выдаёт значительно меньше токенов, чем полноценный CoT, что ускоряет ответ и сокращает ресурс. Но когда нужно увидеть детали размышлений, тот же пакет скрытых «thinking tokens» можно прогнать через Heima Decoder и получить восстановленные шаги рассуждения.

🤔 Основные технические детали

☁️ Постепенное (progressive) внедрение:
Чтобы модель плавно научилась кодировать CoT в минимальные блоки, авторы не сразу заменяют все промежуточные рассуждения на <CoT>-токены. Сначала часть CoT остаётся текстовой, часть — скрывается, потом доля скрытых частей растёт, пока вся цепочка не станет «thinking tokens».

🔢 Минимальная последовательность:
Обычно 3–5 строк детального CoT может занимать сотни токенов. Здесь же каждый этап (summary - итог, caption - заголовок, reasoning - рассуждение) превращается в
один специальный токен вроде <Thinking_of_Summary>, за которым в скрытом векторе хранится полная логика.

⏱️ Ускорение инференса:
Ключевое преимущество — генерация намного меньшего числа токенов во время ответа. Бенчмарки показывают, что Heima Encoder может работать с 6–10% обычного количества токенов и при этом терять минимум в точности. На некоторых наборах вопросов (например, MMBench) точность даже повышается.

🔍 Восстановление и интерпретация:
Heima Decoder (реализован на более простом LLM, без мульти-модальных возможностей) берёт вектор из скрытого состояния <Thinking_of_Caption> и при помощи специального промпта (примерно «Расскажите о ходе мысли <Thinking_of_Caption>…») генерирует детальные рассуждения, очень похожие на исходные. GPT-4-оценка показывает высокую степень совпадения (3–5 баллов из 5).

💡 Почему это важно

🤖 Экономия ресурсов

Вычислительные затраты пропорциональны количеству генерируемых токенов. Если CoT длинный, крупная модель (10+ млрд параметров) тратит кучу времени и памяти. Сокращая CoT в десятки раз, можно удешевить вывод.

💬 Возможность интерпретации

Большой минус «полного скрытого» подхода в том, что мы не видим, как модель рассуждала. А здесь решение: скрытые «thinking tokens» по желанию преобразуются обратно в явные «цепочки рассуждений».

🤝 Работает с мультимодальностью

Heima Encoder умеет сочетать визуальные и текстовые входы. Причём Heima Decoder уже не нуждается в картинке — он восстанавливает детали reasoning, взяв лишь текстовый вопрос и скрытые векторы.

📊 Ключевые результаты экспериментов

Исследование провели на нескольких мультимодальных бенчмарках:

🔸 MMBench, MMStar, MMVet:

  • Тематика: общий визуальный Q&A, проверка логики.
  • Heima показал сходную или даже бóльшую точность, чем модель LLaVA-CoT (подготовленная с явным текстовым CoT), но при этом генерировал значительно (иногда до 10–15 раз) меньше токенов.

🔸 MathVista, AI2D:

  • Специализированные задачи на научно-математическое мышление (чертежи, диаграммы).
  • Heima сохранял корректность при сокращении CoT, особенно если применялся «прогрессивный» подход (поэтапное обучение).

🔸 HallusionBench:

  • Набор заданий, проверяющих «галлюцинации» LLM с визуальными иллюзиями.
  • Heima при значительном сокращении выходного текста сохранял или даже чуть улучшал метрики точности.

Авторы уточняют, что «прогрессивное кодирование» (gradual encoding) и «восстановочный этап» (recovery stage) дают ощутимый плюс: без них качество заметно падает.

Личное мнение и перспективы

Мне кажется, подход Heima решает важный вопрос: как найти баланс между прозрачностью рассуждений (CoT) и эффективностью. Разработчики и исследователи боятся, что «скрытые рассуждения» убьют интерпретируемость. Но Heima демонстрирует возможность:

🥁 Минимум затрат во время главного ответа (модель «думает» внутри, порождая единичные токены),
🔎
Полный детальный вывод при необходимости (Heima Decoder умеет расшифровывать эти скрытые векторы обратно в CoT).

Из потенциальных трудностей: приходится поддерживать отдельную декодирующую подсистему, и надо следить, чтобы «thinking tokens» действительно содержали релевантную информацию. Исследование показывает успех на ряде датасетов, но интересно было бы увидеть, как такой подход работает в более широком спектре задач, например, длинные разговоры или пошаговые инструкции.

В целом Heima задаёт новый вектор: «скрытое» CoT — это не просто трюк, а реальный путь к тому, чтобы LLM, будучи громоздкой, при этом не генерировала лишние сотни токенов и оставалась интерпретируемой по запросу.

📝 Ссылки и исходный код