Основы обучения больших мультимодальных моделей (LMM)

Курс посвящен архитектуре и методологии обучения LMM, объединяющих компьютерное зрение и обработку естественного языка. Рассматриваются ключевые этапы: от подготовки данных и выравнивания модальностей до инструктивного тюнинга и оценки качества.

1. Архитектура LMM: Интеграция визуальных энкодеров и языковых моделей

Архитектура LMM: Интеграция визуальных энкодеров и языковых моделей

Большие мультимодальные модели (LMM) представляют собой следующий шаг в эволюции искусственного интеллекта, объединяя возможности компьютерного зрения и обработки естественного языка. В отличие от классических LLM (Large Language Models), которые работают исключительно с текстом, LMM способны «видеть» и анализировать изображения, видео и аудио, преобразуя их в понятные для языковой модели данные.

Ключевая задача при создании LMM — научить языковую модель понимать визуальную информацию так же, как она понимает текст. Для этого используется архитектура, состоящая из трех основных компонентов: визуального энкодера, языковой модели и модуля проекции (адаптера).

!Общая схема архитектуры Большой Мультимодальной Модели

Визуальный энкодер: Глаза модели

Первым этапом обработки изображения является его превращение в набор математических векторов. Эту задачу выполняет визуальный энкодер. В большинстве современных LMM (например, LLaVA) в качестве энкодера используются архитектуры на базе Vision Transformer (ViT), часто предварительно обученные по методике CLIP (Contrastive Language-Image Pre-training) или SigLIP.

Как работает ViT в контексте LMM

  • Разбиение на патчи: Исходное изображение разрезается на сетку квадратов фиксированного размера (например, или пикселей). Каждый такой квадрат называется патчем.
  • Линеаризация: Каждый патч вытягивается в плоский вектор и проходит через линейный слой.
  • Трансформация: Полученные векторы обрабатываются слоями трансформера, которые анализируют взаимосвязи между частями изображения.
  • На выходе энкодер выдает последовательность векторов признаков (feature embeddings). Если изображение было разбито на 256 патчей, мы получим 256 векторов, каждый из которых описывает определенную часть картинки.

    Проблема модального разрыва (Modality Gap)

    Здесь возникает главная архитектурная проблема. Векторы, полученные от визуального энкодера (например, CLIP), и векторы, которые понимает языковая модель (например, LLaMA или Vicuna), находятся в совершенно разных векторных пространствах. Они «говорят на разных языках».

    Если подать выход визуального энкодера напрямую в LLM, модель увидит просто случайный шум. Визуальные признаки необходимо выровнять (align) с текстовым пространством эмбеддингов языковой модели. Эту задачу решает модуль проекции.

    Модуль проекции: Переводчик с визуального на текстовый

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

    Линейная проекция и MLP

    Самый простой и эффективный способ интеграции, популяризированный архитектурой LLaVA, — использование многослойного персептрона (MLP). Рассмотрим простейший случай линейной проекции:

    Где: * — итоговые визуальные токены, понятные для LLM. * — матрица обучаемых весов проектора. * — исходные векторы признаков от визуального энкодера. * — вектор смещения (bias).

    В более сложных архитектурах (например, LLaVA-1.5) используется двухслойный MLP с функцией активации GELU между слоями. Это позволяет моделировать более сложные нелинейные зависимости между визуальным и текстовым пространствами.

    !Преобразование визуальных признаков в псевдо-текстовые токены

    Q-Former и сложные адаптеры

    Существуют и более сложные методы интеграции, например, Q-Former (используется в BLIP-2). Q-Former использует набор обучаемых запросов (learnable queries), чтобы «вытянуть» из визуального энкодера только самую важную информацию, релевантную для текста. Это позволяет сократить количество визуальных токенов, подаваемых в LLM, что ускоряет работу модели, но усложняет архитектуру.

    Однако практика показывает, что для большинства задач простой MLP-проектор работает не хуже, а иногда и лучше сложных механизмов, при этом будучи значительно проще в обучении.

    Интеграция в LLM: Визуальные токены

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

    Процесс формирования входных данных для LMM выглядит следующим образом:

  • Пользователь вводит текст: «Опиши это изображение».
  • Текст токенизируется и превращается в текстовые эмбеддинги ().
  • Изображение проходит через энкодер и проектор, превращаясь в визуальные эмбеддинги ().
  • Эти две последовательности конкатенируются (объединяются).
  • Итоговая последовательность для LLM выглядит так:

    Где: * — -й визуальный токен (часть изображения). * — -й текстовый токен (часть промпта).

    Языковая модель обрабатывает эту объединенную последовательность, используя механизм внимания (Self-Attention). Благодаря этому она может «обращать внимание» на конкретные участки изображения (визуальные токены) при генерации каждого следующего слова ответа.

    Стратегии обучения

    При обучении такой архитектуры обычно используется двухэтапный подход:

  • Pre-training (Выравнивание признаков): Замораживаются веса визуального энкодера и LLM. Обучается только модуль проекции (MLP). Цель — научить проектор переводить визуальные признаки в пространство слов LLM.
  • Fine-tuning (Инструктивная настройка): Проектор и LLM (полностью или частично через LoRA) дообучаются на качественных данных «изображение-текст» для выполнения конкретных инструкций.
  • Итоги

    * Архитектура LMM состоит из трех частей: визуального энкодера (зрение), LLM (мозг) и проектора (связующее звено). * Визуальный энкодер (обычно ViT) разбивает изображение на патчи и превращает их в векторы признаков. * Модуль проекции (чаще всего MLP) устраняет модальный разрыв, переводя визуальные векторы в пространство текстовых эмбеддингов. * Для языковой модели изображение представляется просто как длинная последовательность «визуальных токенов», которые она обрабатывает наравне с текстом.

    2. Подготовка данных: Сбор и препроцессинг мультимодальных датасетов

    Подготовка данных: Сбор и препроцессинг мультимодальных датасетов

    Качество работы Большой Мультимодальной Модели (LMM) зависит от данных даже больше, чем от архитектуры. Если в текстовых LLM мы часто полагаемся на принцип «чем больше, тем лучше», то в мультимодальном обучении критически важны качество связей между изображением и текстом, а также формат подачи этих данных.

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

    Типология данных: Два этапа — две цели

    Процесс обучения LMM обычно делится на две стадии, и для каждой требуется свой тип данных.

    1. Данные для выравнивания (Pre-training / Alignment)

    На этом этапе цель — научить проектор (адаптер) переводить визуальные признаки в понятные для LLM векторы. Здесь не требуется сложное логическое мышление, модели нужно просто научиться «называть» то, что она видит.

    * Формат: Пары «Изображение — Короткое описание (Caption)». * Источник: Масштабные датасеты, собранные из интернета (например, LAION-5B, COCO, CC3M). * Характеристика: Описания часто шумные, короткие и поверхностные (например, «Кот на диване»).

    2. Данные для инструктивной настройки (Visual Instruction Tuning)

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

    * Формат: Тройки «Изображение — Инструкция (Вопрос) — Ответ». * Источник: Ручная разметка (дорого и медленно) или синтетическая генерация (быстро и качественно). * Характеристика: Ответы развернутые, содержат логические цепочки и детали.

    !Различие между данными для выравнивания (Pre-training) и инструктивной настройки (Instruction Tuning)

    Сбор данных: Эпоха синтетики

    Раньше датасеты собирались исключительно вручную или парсились из alt-тегов картинок в вебе. Однако для современных LMM (таких как LLaVA) ключевым прорывом стало использование синтетических данных.

    Идея проста: использовать мощную проприетарную модель (например, GPT-4V), чтобы она создала обучающие примеры для вашей модели поменьше.

    Процесс генерации синтетического датасета

  • Берем изображение из публичного датасета (например, COCO).
  • Берем метаданные (существующие короткие подписи, координаты объектов).
  • Формируем текстовый промпт для «Учителя» (GPT-4V): «На основе этих данных составь диалог между пользователем и ассистентом, где они обсуждают детали изображения».
  • Получаем результат: Готовый диалог с вопросами и ответами, который используется для обучения.
  • Этот метод позволяет получить миллионы качественных примеров сложного рассуждения (Complex Reasoning) без участия людей-разметчиков.

    Препроцессинг изображений

    Визуальный энкодер (например, CLIP-ViT) ожидает на входе изображения строго определенного размера, обычно квадратные (например, или пикселей). Однако реальные фотографии имеют разные пропорции (Aspect Ratio).

    Если просто сжать прямоугольное изображение в квадрат , геометрия объектов исказится: круги станут овалами, люди станут неестественно вытянутыми. Это мешает модели правильно распознавать объекты.

    Метод Letterbox Padding (Дополнение полями)

    Чтобы сохранить пропорции, используется метод добавления полей (padding). Изображение уменьшается до тех пор, пока его длинная сторона не станет равна целевому размеру, а оставшееся пространство заполняется средним цветом (обычно серым).

    Рассмотрим расчет коэффициента масштабирования :

    Где: * — коэффициент масштабирования (число, на которое нужно умножить исходные размеры). * — целевой размер стороны квадрата энкодера (например, 336). * — исходная ширина изображения. * — исходная высота изображения. * — функция выбора минимального значения.

    После вычисления новые размеры изображения (, ) будут равны:

    Где: * — новая ширина после масштабирования. * — новая высота после масштабирования. * — исходная ширина. * — исходная высота. * — коэффициент масштабирования.

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

    !Сохранение пропорций изображения с помощью добавления полей (Padding)

    Нарезка на патчи (AnyRes / LLaVA-Next)

    Более современные подходы (например, в LLaVA-Next или Monkey) используют стратегию нарезки. Изображение высокого разрешения разрезается на несколько квадратов (кропов), каждый из которых обрабатывается энкодером отдельно. Также добавляется уменьшенная копия всего изображения для понимания общего контекста. Это позволяет модели видеть мелкие детали, например, текст на документах.

    Препроцессинг текста и токенизация

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

    Специальный токен <image>

    В словарь токенизатора добавляется специальный токен (например, <image>). При формировании входной последовательности этот токен заменяется на эмбеддинги, полученные от визуального энкодера.

    Пример формата данных для обучения:

    В процессе токенизации текст <image> вырезается, и на его место вставляется тензор визуальных признаков размером , где — количество визуальных токенов (например, 576), а — размерность эмбеддинга.

    Шаблоны диалогов (Chat Templates)

    Поскольку базовые LLM (например, Vicuna или LLaMA-3-Instruct) обучены на определенных форматах диалогов, мультимодальные данные должны строго соответствовать этим шаблонам. Неправильная расстановка системных промптов или разделителей (например, USER:, ASSISTANT:, <s>, [INST]) приведет к деградации качества ответов.

    Фильтрация и очистка

    Даже синтетические данные требуют чистки. Основные этапы фильтрации:

  • Удаление битых изображений: Проверка, что файл открывается и имеет корректный формат.
  • Фильтрация по длине: Удаление слишком коротких или пустых ответов.
  • Проверка на «галлюцинации»: Иногда модель-учитель может описать объекты, которых нет на фото, или отказать в ответе («Я не могу проанализировать это изображение»). Такие примеры нужно исключать по ключевым словам.
  • Дедупликация: Удаление повторяющихся изображений или очень похожих диалогов, чтобы модель не переобучалась.
  • Итоги

    * Обучение LMM требует двух типов данных: пар «изображение-текст» для выравнивания и сложных диалогов для инструктивной настройки. * Синтетические данные, сгенерированные мощными моделями (GPT-4V), являются стандартом индустрии для создания качественных датасетов. * Препроцессинг изображений критичен: необходимо сохранять пропорции (aspect ratio) через padding или использовать нарезку на фрагменты. * В текстовый поток внедряется специальный токен <image>, который служит «местом встречи» визуальных и текстовых векторов.