Мультимодальные LLM: как модель одновременно понимает текст и изображения

Мультимодальная LLM принимает на вход не только текст, но и изображения, а отвечает связным текстом. Внутри это не магия и не «модель, которая видит», а конвейер из трёх компонентов: vision-энкодера, проекционного слоя и языковой модели. Каждый выполняет свою роль, и понимание этой связки объясняет как возможности, так и ограничения таких систем.

Общая архитектура​


Типичная мультимодальная модель состоит из трёх блоков:

  1. Vision-энкодер — извлекает признаки из изображения.
  2. Проекционный слой (adapter) — преобразует визуальные признаки в пространство, совместимое с языковой моделью.
  3. LLM-бэкенд — обрабатывает объединённую последовательность токенов (текстовых и визуальных) и генерирует ответ.

На вход подаётся промпт, в котором изображение представлено как набор специальных токенов-заполнителей. Модель заменяет их на эмбеддинги, полученные из vision-энкодера, и дальше работает с единой последовательностью.

Как изображение становится токенами​


Патч-эмбеддинг​


Vision-энкодер (чаще всего на базе Vision Transformer, ViT) разбивает изображение на квадратные патчи фиксированного размера — например, 14×14 или 16×16 пикселей. Каждый патч линейно проецируется в вектор. Для изображения 336×336 с патчами 14×14 получается 576 визуальных токенов.

Позиционное кодирование​


К каждому патч-вектору добавляется позиционная информация, чтобы модель учитывала пространственное расположение фрагментов. Без этого энкодер не отличал бы верхний левый угол от нижнего правого.

Трансформерные слои​


Последовательность патч-эмбеддингов проходит через стек трансформерных блоков с self-attention. На выходе получается набор контекстных векторов, где каждый учитывает содержимое соседних патчей.

Чем выше разрешение входного изображения, тем больше патчей и тем длиннее последовательность. Это напрямую влияет на потребление памяти и время инференса.

Проекционный слой: мост между зрением и языком​


Vision-энкодер и LLM обучались в разных пространствах. Задача проектора — отобразить визуальные векторы в пространство эмбеддингов языковой модели так, чтобы LLM могла интерпретировать их как осмысленные токены.

Варианты реализации проектора:

ТипМеханикаКомпромисс
Линейный слойОдна матрица W, умножение на каждый векторМинимум параметров, но ограниченная выразительность
MLP (2–3 слоя)Несколько линейных слоёв с нелинейностьюЛучше захватывает нелинейные соответствия
Perceiver ResamplerОбучаемые query-токены attend к визуальным признакамФиксированное число выходных токенов независимо от разрешения
Q-FormerАналогично Perceiver, но с перекрёстным вниманиемПозволяет сжимать длинные визуальные последовательности

Выбор проектора влияет на то, сколько визуальных токенов попадёт в LLM и насколько детально модель «видит» изображение.

Этапы обучения​


Stage 1: выравнивание (alignment pretraining)​


Проектор обучается на парах «изображение — текстовое описание». Vision-энкодер и LLM при этом заморожены. Цель — научить проектор переводить визуальные признаки в понятные для LLM представления. Данные на этом этапе обычно масштабные, но простые: подписи к изображениям, альтернативный текст.

Stage 2: мультимодальный instruction tuning​


Размораживается LLM (иногда и проектор). Модель обучается на диалоговых данных, где пользователь задаёт вопрос об изображении, а модель даёт развёрнутый ответ. Здесь формируются способности к рассуждению, описанию, сравнению и извлечению информации из картинок.

Некоторые архитектуры добавляют третий этап — обучение с подкреплением на предпочтениях (RLHF/DPO) для улучшения качества и безопасности ответов.

Что происходит при инференсе​


Пошаговый поток данных:

  1. Пользователь отправляет запрос с изображением и текстовым промптом.
  2. Изображение проходит предобработку: ресайз, нормализация, разбивка на патчи.
  3. Vision-энкодер выдаёт последовательность визуальных векторов.
  4. Проектор трансформирует их в пространство LLM.
  5. Текстовый промпт токенизируется стандартным токенизатором LLM.
  6. Визуальные эмбеддинги вставляются в позицию, обозначенную специальными токенами.
  7. Объединённая последовательность подаётся в LLM, которая генерирует ответ авторегрессионно.

С точки зрения LLM, визуальные токены ничем не отличаются от текстовых — это просто векторы в том же пространстве. Модель не «видит» пиксели; она работает с абстрактными представлениями.

Разрешение и бюджет токенов​


Одна из ключевых практических проблем — баланс между детализацией и стоимостью.

  • Фиксированное разрешение. Изображение масштабируется к одному размеру (например, 336×336). Просто, но мелкие детали теряются.
  • Динамическое разрешение (dynamic resolution / tiling). Изображение разбивается на несколько кропов, каждый обрабатывается энкодером отдельно, результаты конкатенируются. Позволяет сохранять детали на больших изображениях, но увеличивает число визуальных токенов.
  • Any-resolution подходы. Модель адаптирует количество патчей под исходный размер, иногда с ограничением сверху.

Каждый визуальный токен занимает место в контекстном окне LLM. Изображение, дающее 1000+ токенов, может существенно сократить доступный бюджет для текста. При проектировании приложения это нужно учитывать.

Обслуживание мультимодальных моделей через vLLM​


vLLM поддерживает ряд мультимодальных архитектур, включая LLaVA, Qwen-VL и Pixtral. Библиотека обеспечивает:

  • PagedAttention для эффективного управления KV-кэшем, что критично при длинных визуальных последовательностях.
  • Continuous batching — запросы с изображениями разной длины обрабатываются в одном потоке без простоя.
  • Prefix caching — если несколько запросов используют одно и то же изображение, визуальные эмбеддинги вычисляются один раз.
  • Поддержку различных стратегий квантования (FP8, INT8, INT4, GPTQ, AWQ) для снижения требований к памяти.

Для продакшн-развёртывания мультимодальных моделей это означает, что узким местом часто становится не вычислительная мощность, а объём GPU-памяти под KV-кэш длинных последовательностей KV Cache в LLM: как устроен, сколько памяти занимает и как оптимизировать.

Типичные ограничения и ошибки​


Галлюцинации на изображениях. Модель может описывать объекты, которых нет на картинке, особенно если изображение размытое или содержит много похожих элементов. Это следствие того, что LLM обучена генерировать правдоподобный текст, а не строго верифицировать визуальные факты.

Потеря мелких деталей. При низком разрешении или агрессивном сжатии визуальных токенов модель не различает мелкий текст, тонкие линии или небольшие объекты.

Проблемы с пространственным пониманием. Мультимодальные LLM часто ошибаются в точном подсчёте объектов, определении относительного положения («левее/правее») и чтении сложных диаграмм.

Контекстное окно. Большое изображение + длинный текстовый промпт могут превысить лимит контекста. В таком случае часть информации отбрасывается или усредняется.

Неоднородность качества. Модель может отлично описывать фотографии, но плохо работать со скриншотами интерфейсов, рукописным текстом или научными графиками — в зависимости от того, какие данные преобладали при обучении.

Как проверить качество мультимодальной модели​


  • Подайте изображение с мелким текстом и попросите его прочитать — это проверяет разрешение.
  • Спросите о количестве объектов — это проверяет внимание к деталям.
  • Задайте вопрос, ответ на который отсутствует на изображении, — хорошая модель должна сказать, что не видит этого, а не выдумывать.
  • Используйте изображения с неоднозначным содержанием и оцените, признаёт ли модель неопределённость.

Эти простые тесты быстро показывают, подходит ли конкретная модель для вашей задачи, без необходимости запускать формальные бенчмарки.

Источники​


 

Похожие темы

Назад
Верх Низ