Назад
275

V-LLM

275

Введение

В последнее время LLM всё больше входят в нашу жизнь. Их используют во многих областях: от творчества до структурированного извлечения информации. Но, как правило, применение LLM связано с текстовой информацией, обработкой других модальностей с помощью OCR, транскрибации и иных решений.

В этой статье мы рассмотрим Visual Large Language Models — группу мультимодальных моделей, которые используются для обработки визуально-текстовой информации.

Адаптеры

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

Как же нам добиться аналогичной ситуации с изображениями? Для этого используются способы закодировать изображение, наиболее распространенный из которых — применение энкодеров с качественными представлениями. Ещё есть авторегрессионый способ и VQ-VAE кодирование изображений. Здесь после получения признаков необходимо найти способ подать их на вход в LLM. Это можно сделать с помощью нескольких вариантов. Обычно выделяют два глобальных подхода: Deep Fusion и Early fusion, каждый из которых можно разбить ещё на несколько подтипов.

Давайте разберём каждый из них, обсудим плюсы и минусы, а также их связь с этапами обучения 🙂

Deep Fusion

Начнём с менее популярного в open-source, но важного подхода к использованию представлений изображений в LLM.

Основная идея Deep Fusion: встраивание представлений изображений в слои декодера посредством cross-attention. Впервые данный подход был представлен в статье Flamingo. После был использован во многих работах, наиболее интересной из которых является LLaMA 3.

Главный недостаток подхода — необходимость использовать огромное количество данных для обучения cross-attention слоя. При этом метод имеет преимущество в работе с любым разрешением, которое может обработать энкодер.

Early Fusion

Этот подход используется в подавляющем большинстве open-source моделей.

Основная идея: передавать в декодер представления изображений после энкодера. Для этого нужен какой-то адаптер, который будет «готовить»‎ признаки в подходящем представлении для LLM. Одной из первых статей с применением данного метода была LLaVA, которая затем была улучшена в различных работах. Адаптером здесь является какая-то сеть, например, MLP или Q-Former, параметрезированная и дифференцируемая (как и любая сеть), способная вынимать информацию из полученных представлений.

Рисунок 1. Архитектура LLaVA

Так, в базовом сетапе LLaVA у нас есть возможность пропускать изображение через энкодер, но большинство качественных энкодеров принимают на вход его в фиксированном размере (от 224 до 448 пикселей, стандартный скейл в районе 336-384, например, у большинства c(sig)lip’овых энкодеров), который обычно не подходит для распознания низкоуровневых признаков.

Для решения этой проблемы авторы нескольких работ предложили довольно простое решение — нарезать изображение и подать каждую часть энкодеру, а затем отправить их на вход LLM (подобным образом нарезать изображение можно и при Deep Fusion). В качестве референса подхода возьмём работу LLaVA-Next:

Рисунок 2. Способ нарезки изображений в LLaVA-Next

Динамический подбор числа нарезаемых кропов позволяет обрабатывать изображения с разным отношением сторон. На этом этапе у подхода возникает другая проблема — токенов с изображения много, а контекст у LLM ограничен. Например, обрабатывая изображения \( 1000\times 1000 \) пикселей через энкодер с разрешением \( 336\times 336 \) пикселей и патчи размером 1414 пикселей, мы сначала ресайзим изображение до \( 672\times 672 \), затем нарезаем на 4 кропа по 336 пикселя. В итоге с каждого кропа мы получаем \( \frac{336}{14}^2=576 \) патчей, которые соответствуют количеству выходных токенов с энкодера. Поскольку мы используем 4 кропа и одно low-resolution изображение, то итоговое количество токенов получается \( 576\cdot 5=2880! \) Это составляет огромный контекст только для одного изображения.

Для решения проблемы с таким «‎раздуванием»‎ контекста от изображения используются различные способы сжатия эмбеддингов. Ниже мы рассмотрим методы сжимания контекста от изображения и подробнее остановимся на наиболее интересных.

Perciever Resampler

Рисунок 3. Архитектура Perciever Resampler

Одним из самых популярных подходов к сокращению количества эмбеддингов является Perciever Resampler. Он использует слои cross-attention для выжимания информации из большого количества токенов с энкодера в фиксированное меньшее число токенов, выбранное как гиперпараметр. Данный метод применяется в работе idefics2 и MiniCPM-V-2.5 (и 2.6) — некоторое время они были SOTA-моделями в ряде мультимодальных задач.

Pixel-shuffle

Pixel shuffle — операция, которая реорганизует элементы многоканального тензора, уменьшая его глубину и увеличивая пространственное разрешение путём перераспределения значений из канальной размерности в пространственные измерения.

LDP-v2

Рисунок 4. Архитектура LDP-коннектора

Следующий тип коннектора использует свёртки для уменьшения числа каналов посредством конкатенации нескольких патчей и прогона через архитектуру выше.

Помимо перечисленных подходов существуют и другие, например, Spatial Aggregation Adapter из CambrianTokenPacker и C-Abstractor. Они используются не в таком большом числе новых работ, поэтому мы сейчас не будем останавливаться на них подробно.

Итак, мы обсудили основные способы представлений изображений на вход LLM. Давайте перейдём к менее популярным (но по своему интересным) подходам Early Fusion.

Авторегрессионая нарезка

Рисунок 5. Архитектура Fuyu-8B

В этом подходе не используется отдельный энкодер, а изображение нарезается на патчи, которые прогоняются через линейный слой.

Главный недостаток метода — плохая репрезентативная способность линейных слоёв.

VQ-VAE и Chameleon

Рисунок 6. Архитектура Chameleon

Интересный подход, наследующий более нативный способ обрабатывать изображения. Здесь используется один токенизатор на этапе чтения и генерации изображений — VQ-VAE, что больше соответствует логике классической токенизации LLM.

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

Вне зависимости от архитектуры современной V-LLM выделяется три компонента обучения — энкодерадаптери декодер. На данный момент нет устоявшейся терминологии этапов обучения, а порядок разморозки частей зависит от результатов экспериментов авторов. Так, в moondream2 дообучается только энкодер первым этапом, а в работах deepseek-vl энкодер размораживается на последнем этапе обучения. Тем не менее, можно выделить общие черты процесса обучения — Pretrain и SFT. Также у мультимодальных моделей есть отдельная стадия алаймента, но относительно текстовых моделей она применяется значительно реже.

Pretrain

Рисунок 7. Стандартный сэтап предобучения

На этом этапе всегда разморожен адаптер, но часто в последних Sota-подходах также размораживается и энкодер. Авторы работы LiT отмечают, что это может привести к падению качества репрезентаций, но последующие работы (например, PaliGemma) показывают повышение качества модели (согласно экспериментам).

Основная цель этапа — перевести представления с энкодера в пространство языковой модели. Как правило, для этого используются данные с описаниями, а также большое количество OCR-like данных.

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

SFT

На этом этапе всегда разморожен адаптер и текстовый декодер, но иногда размораживают и энкодер.

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

Рисунок 8. Стандартный сэтап предобучения

Так как с добавлением новой модальности увеличивается и пространство взаимодействий для пользователя, на этом этапе важно грамотно подобрать правильное соотношение данных, чтобы одновременно увеличить и качество распознавания, и качество логических взаимодействий. Интересное исследование относительно правильного соединения доменов было проведено и в работе Cambrian. В результате авторы пришли к следующему отношению:

Рисунок 9. Оптимальное распределение данных по Cambrian

Как упоминалось выше, также существует этап алаймента. Мы не будем подробнее останавливаться на нём в этом разборе, но подробнее познакомиться с ними можно в следующих работах: RLAIF-VRLHF-V.

Бенчмарки

Как известно, оценка генеративных моделей — сама по себе сложная задача. В мультимодальных моделях можно выделить три категории бенчмарков — базовые бенчмарки для оценки разных способностей модели, high-resolution бенчмарки для оценки возможности понимания тонких деталей изображения и side-by-side способ оценки, требующий специального оценщика.

Поскольку бенчмарков очень много, автор выбрал наиболее актуальные (по его мнению).

Мы разбираем бенчмарки в курсе LLM. Приходите, если хотите подробнее изучить эту и другие темы в LLM.

Базовые бенчмарки

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

MMBench

Рисунок 10. Разделение категорий в бенчмарке MMBench

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

MMT-Bench

Бенчмарк, который во многом логически наследует логику MMBench, добавляет большое число сэмплов, модальностей и категорий вопросов. Суммарно имеет порядка 162 типов задач, в отличие от 20 в оригинальном MMBench.

Рисунок 11. Разделение категорий в бенчмарке MMT-Bench

MMMU

MMMU — бенчмарк, тоже построенный в формате multiple-choice. Считается базой, но, по мнению автора, не очень хорош, так как во многом проверяет способности базовой llm, а не успешность результата фьюза. В итоге сложно получить прирост, а также оценить бейзлайн именно мультимодальной модели.

MMStar

В работе MMStar рассмотрели следующий вопрос: «Какого качества можно добиться на существующих бенчмарках, если не использовать изображение»? То есть авторы прогнали текстовую часть через языковую модель и получили следующие метрики:

Рисунок 12. Процент правильных ответов при поданном на вход тексте без изображения в мультимодальных бенчмарках

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

High-resolution

Эта группа бенчмарков используется для оценки моделей при переходе в high-res режим. Часть работ не применяет такую категорию для оценки моделей, но иных способов научить модель понимать очень мелкие детали нет. Ниже мы рассмотрим самый базовый бенчмарк для QA по документам и обсудим корреляцию с похожими бенчмарками.

DocVQA

Оригинально данный бенчмарк был предложен для оценки document-oriented моделей вроде LayoutLM/Udop/Donut, но с развитием мультимодальных больших языковых моделей стал активно применяться и в задачах оценки мультимодальности.

Вопросы здесь экстрактивные, то есть информацию из них можно непосредственно извлечь с помощью изображения. При таком подходе используется метрика ANLS.

Рисунок 13. Пример из DocVQA

Помимо DocVQA существует ряд бенчмарков, которые также оценивают качество понимания fine-grained деталей. Из наиболее важных к ним можно отнести OCRBenchChartQA и TextVQA. Каждый со своими особенностями при оценке, например, в бенчмарке TextVQA авторы решили добавить текстовую подсказку, что немного смещает задачу относительно изначального in the wild ответа. А в статье Сambrian авторы сравнивают корреляцию качества моделей на бенчмарках, упомянутых выше.

Рисунок 14. Корреляции метрик на бенчмарках из статьи Cambrian

Применение

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

Set of Marks

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

Рисунок 15. Пример Set-of-Marks

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

RL

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

Рисунок 16. Формат обучения модели из статьи RL4VLM

Решения

Теперь рассмотрим существующие возможности для использования V-LLM. Глобально можно выделить три группы для их применения:

  1. Fine-grained Perception. Как правило, эта группа задач связана с применением мультимодальных моделей для документов (в общем смысле этого слова). Например, для работы с таблицами / графиками / инфографикой.
  2. Perception-Reasoning. Эта группа задач связана с применением в различных средах: веб-сайты, интерфейсы, игровые миры и robotics. Несмотря на большое количество появившихся стартапов в области обработки интерфейсов, задачи, связанные с грамотным пониманием и взаимодействием со средой (в данном случае речь идёт именно про интерфейсы) остаются нерешенными (подробнее можно почитать в статье).
  3. Улучшение описания различных изображений. Пожалуй, самая простая категория для современных моделей, которая используется в мультимодальных RAG’e, а также в задачах, где не хватает только текстовой информации для грамотного описания объекта.

Заключение

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

Большинство интересных работ, связанных с этой областью, вышли в 2024 году — следовательно, этот год действительно можно считать годом введения умной мультимодальности 🙂

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!