В прошлом году на конференции AIJ 2023 мы представили первую версию OmniFusion — мультимодальной языковой модели (LLM), способной поддерживать визуальный диалог и отвечать на вопросы по картинкам. Спустя несколько месяцев мы готовы представить обновление — OmniFusion 1.1 — SoTA на ряде бенчмарков (среди моделей схожего размера) и, более того, модель хорошо справляется со сложными задачами и понимает русский язык! Самое главное — всё выкладываем в открытый доступ: веса и даже код обучения.

Рисунок 1 — Показатели модели OmniFusion 1.1 в разрезе ключевых мультимодальных бенчмарков
Рисунок 1 — Показатели модели OmniFusion 1.1 в разрезе ключевых мультимодальных бенчмарков

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

Рисунок 2 — Примеры работы модели OmniFusion 1.1
Рисунок 2 — Примеры работы модели OmniFusion 1.1

Архитектура

Принципиально OmniFusion 1.1 очень похож на предыдущую версию, да и в целом в области мультимодальных LLM сейчас все подходы формируются вокруг связки языковой модели и визуального энкодера через специальный обучаемый адаптер, который умеет отображать картиночные эмбеддинги в пространство текстовых эмбеддингов. Мы концентрировались на двух направлениях работы с визуальной модальностью, которые нашли отражение в соответствующих архитектурных особенностях. На рисунке ниже показаны два типа архитектуры: со смешиванием нескольких визуальных энкодеров (слева) и с упором на развитие единого визуального энкодера (справа). 

Рисунок 3 — Способы организации архитектуры OmniFusion
Рисунок 3 — Способы организации архитектуры OmniFusion

Выбор визуального энкодера

К выбору «глаз» для мультимодальной модели нужно подойти серьёзно, поэтому мы провели исследования большого количества самых свежих моделей. Похоже, что самым важным критерием является размерность визуальных эмбеддингов и «нативное разрешение» энкодера — чем оно выше, тем лучше. Сравнение характеристик и результаты в таблице ниже. Мы остановились на модели InternViT, визуальные представления которой позволяют наилучшим образом описывать картинки в контексте метрик на валидационных VQA бенчмарках. Ниже в таблицах показаны параметры каждого визуального энкодера и показатели качества для основных бенчмарков при наличии только одного из исследуемых энкодеров: CLIP ViT-bigG, CLIP ViT-large, SigLIP-base и InternViT-6B. Следует отметить, что последний энкодер в списке существенно отличается по количеству параметров, и тем интереснее было рассмотреть его вклад в конечные метрики. Мы также хотели попробовать специфические надстройки над энкодерами на базе Q-Former, но к текущей версии статьи закончить не успели.

Таблица 1 — Параметры визуальных энкодеров
Таблица 1 — Параметры визуальных энкодеров

Типы адаптеров

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

  1. Простой линейный слой

  2. Multi Layer Perceptron (MLP)

  3. Трансформерный слой

  4. Послойный микс двух энкодеров через MLP с weight sharing

Микс энкодеров вдохновлён работой “From Clip to Dino: Visual Encoders Shout In Multi-modal Large Language Models”. Этот немного грязный трюк позволяет обогатить экспрессивность визуальных фичей, причём, почему-то простое суммирование спроецированных выходов двух энкодеров работает лучше, чем более хитрые способы вроде Attention-based пулинга или Q-Former для микса выходов двух энкодеров. Следуя оригинальной статье в качестве дополнительного энкодера, мы взяли DINO-v2, т.к. в отличие от CLIP он обучен полность в self-supervised режиме и его признаки могут обладать той информацией, которой не хватает основному энкодеру.

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

Рисунок 4 — Схема соединения фичей из двух визуальных энкодеров из статьи “From Clip To Dino: Visual Encoders Shout In Multi-Modal Large Language Models”
Рисунок 4 — Схема соединения фичей из двух визуальных энкодеров из статьи “From Clip To Dino: Visual Encoders Shout In Multi-Modal Large Language Models”

Нарезание картинки

Судя по всему разрешение картинки — это один из самых важных факторов, влияющих на качество модели. Поэтому следуя методологии LLaVA-NeXT, мы использовали адаптивное изменение размера изображений в соответствии с размером и нарезание картинки их на неперекрывающиеся секции в зависимости от разрешения визуального энкодера. Это дополнительно забустило метрики. К сожалению, этот подход приводит к увеличению количества визуальных токенов, что критически сказывается на скорости работы модели, поэтому мы провели эксперименты только с теми энкодерами, которые дают небольшое количество эмбеддингов на выходе, хотя задача компактного представления эмбеддингов для сокращения визуального контекста без потери содержательности эмбеддингов безусловно супер важная.

Датасеты и обучение

Обучение, как и раньше, происходит в два этапа:

  1. Pretrain — размораживается только адаптер и эмбеддинги спецтокенов старта и конца модальности. На этом шаге датасет большой и может быть грязным.

  2. Supervised fine-tuning (SFT) — обучение на небольшом и чистом сете инструктивных визуальных диалогов. При этом в ходе тюна дополнительно размораживается языковая модель. 

Ниже показаны списки сетов, участвовавших в обеих стадиях обучения.

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

  1. Science QA (full/img) — бенчмарки, состоящие из вопросов с несколькими вариантами ответов по разным научным темам: география, биология, химия, история и т.д. Сам набор данных отлично подходит для моделей на базе LLM, так как содержит набор вопросов только по тексту и с включением изображений, т.е. с помощью него можно оценить и способности самой языковой модели (их рост или падение в процессе мультимодального дообучения)

  2. MMMU — бенчмарк для оценки междисциплираных способностей мультимодальных моделей. Содержит ряд задач, решение которых требует предметных знаний уровня университета (старшей школы)

  3. GQA — бенчмарк с данными для проверки «пространственного мышления» моделей. В наборе содержатся вопросы, для ответа на которые нужно оценивать информацию об объектах, их расположению друг относительно друга, проводить рассуждения

  4. POPE — бенчмарк для оценки галлюцинаций мультимодальных моделей в части интерпретации объектов на картинке (у человека, например, такие "галлюцинации" могут возникать из-за близорукости, когда четко объект вдалеке не видно, и он пытается додумать, что бы это могло быть)

  5. VQAv2 — бенчмарк с вопросами на общую тему, оценивает способность модели понимать и обрабатывать визуальную информацию в общем домене

  6. TextVQA — бенчмарк, содержащий задачи на обработку текстовой информации на изображении. Для успешного выполнения заданий модель должна распознать текст на изображении и провести рассуждение по этому тексту для ответа на вопрос

  7. MM-Vet — бенчмарк проверяет целый комплекс способностей мультимодальных моделей: распознавание объектов, распознавание текста, фактологические знания, пространственное мышление, математические способности. Ответы моделей оцениваются с помощью GPT-4

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

Таблица 2 — Параметры обучения OmniFusion
Таблица 2 — Параметры обучения OmniFusion

Исследование компонент модели 

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

Таблица 3 — Оценка качества модели OmniFusion с различными визуальными энкодерами на ключевых бенчмарках
Таблица 3 — Оценка качества модели OmniFusion с различными визуальными энкодерами на ключевых бенчмарках

На следующем шаге мы зафиксировали два энкодера CLIP VIT-L/14 и DinoV2 и проверили несколько вариантов смешивания эмбеддингов: от простой конкатенации перед передачей в адаптер до использования различных механик проецирования эмбеддингов. Из таблицы ниже видно, что лучшим методом оказался тот, который использует эмбеддинги всех слоев энкодеров и складывает их. Мы также заметили, что последний подход с multi-head attention оказался худшим с точки зрения скорости работы, да и по метрикам заметна серьезная просадка. 

Таблица 4 — Оценка качества модели OmniFusion с различными механизмами смешивания энкодеров
Таблица 4 — Оценка качества модели OmniFusion с различными механизмами смешивания энкодеров

Следующий тип эксперимента был посвящён анализу качества при наращивании длины визуального контекста при нарезании картинки на фрагменты и энкодинге каждого из фрагментов в дополнение к энкодингу целой картинки при снижении разрешения до необходимого визуальному энкодеру. Здесь можно заметить, что нарезка даёт качественный буст и метрики близки к использованию одного 6B энкодера. Что более интересно, это эксперимент с добавлением специального сета RusDocVQA, который состоит из визуальных вопросов по документам — это дало прирост метрик даже на general бенчмарках.

Таблица 5 — Оценка качества модели OmniFusion с использованием предварительной нарезки изображения на фрагменты и последующего их энкодинга и без использования нарезки
Таблица 5 — Оценка качества модели OmniFusion с использованием предварительной нарезки изображения на фрагменты и последующего их энкодинга и без использования нарезки

Ну и конечно же, добавление специфических данных при обучении даёт буст метрик на соответствующих специфических бенчмарках (как будто могло быть иначе ?). Прирост метрик можно посмотреть в таблице ниже.

Таблица 6 — Оценка качества модели OmniFusion при добавлении данных о документах на этапе SFT на специфических бенчмарках
Таблица 6 — Оценка качества модели OmniFusion при добавлении данных о документах на этапе SFT на специфических бенчмарках

Сводная таблица экспериментов приведена ниже, где мы сравниваем разные варианты архитектур между собой и с существующими Open Source и проприетарными мультимодальными моделями. Отдельно подробно комментировать её необходимости нет, стоит просто детально посмотреть на метрики в каждой группе результатов, где жирным выделены SoTA значения, а нижним подчёркиванием top-2 результат.

В целом следует отметить, что OmniFusion на базе GigaChat-7B и визуальным экнкодером CLIP-ViT-L и нарезанием изображения даёт лучшие метрики среди всех 7B моделей и обходит даже некоторые более крупные мультимодальные решения.

Таблица 7 — Сравнительная таблица оценки качества open-source и проприетарных мультимодальных  решений
Таблица 7 — Сравнительная таблица оценки качества open-source и проприетарных мультимодальных решений

Примеры работы модели 

Заключение

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

В остальном, выкладывая наши результаты в open source мы очень хотим мотивировать комьюнити помогать развивать модель, делать её более сильной и умной как на отдельных downstream задачах, так и на общих бенчмарках. Будем рады вашим пулл реквестам в репозиторий OmniFusion

Технические детали можно прочитать в нашем тех репорте по ссылке.

Авторы

Обучением модели и экспериментальными исследованиями занималась научная группа FusionBrain Института AIRI при участии учёных и разработчиков из Sber AI и Sber Devices.

В работе над text-rich модальностью нам помогала команда SberDevices IDP, более подобно про их работу можно посмотреть тут.

Список авторов: Елизавета Гончарова, Антон Разжигаев, Матвей Михальчук, Максим Куркин, Ирина Абдуллаева, Матвей Скрипкин, Сергей Марков, Иван Оселедец, Денис Димитров и руководитель научной группы FusionBrain Андрей Кузнецов

Следите за новостями в каналах: CompleteAI, AbstractDL, Dendi Math&AI

Комментарии (21)


  1. mst_72
    10.04.2024 09:49

    Latex формула на последней картинке сбилась


    1. Razant
      10.04.2024 09:49
      +4

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


      1. kuznetsoff87 Автор
        10.04.2024 09:49
        +1

        Именно так! Черипики идеальные любой может показать


  1. Kristaller486
    10.04.2024 09:49
    +4

    Спасибо за работу. Её можно сконвертировать в GGUF?


    1. Haoose
      10.04.2024 09:49
      +1

      Уже кто-то сделал: Ftfyhh/OmniFusion-1.1-gguf · Hugging Face


    1. kuznetsoff87 Автор
      10.04.2024 09:49
      +1

      Думаю, что это отличная задача для комьюнити:)


      1. Kristaller486
        10.04.2024 09:49

        Тут проблема в том, что вероятно ggml/llama.cpp не поддерживает проджектор от OmniFusion


  1. prohodil_mimo
    10.04.2024 09:49
    +1

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


    1. kuznetsoff87 Автор
      10.04.2024 09:49
      +1

      OCR опция будет чуть позже, сейчас как раз активно доучиваем в сегменте анализа документов/сканов/графиков и тд


      1. prohodil_mimo
        10.04.2024 09:49
        +2

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


        1. kuznetsoff87 Автор
          10.04.2024 09:49
          +2

          Понял теперь! Отличный кейс, добавил в лог


          1. andretisch
            10.04.2024 09:49

            Так разве не для этого обучают модель? RAG именно для этого и используют. Дают промт, дают текст (инструкцию), генерируется ответ. Если модель не сможет разобраться в инструкции от пылесоса это будет эпично)))


            1. kuznetsoff87 Автор
              10.04.2024 09:49
              +1

              Первично учим картинки понимать и уметь оперировать максимально подробно ими. RAG - это бонус


              1. prohodil_mimo
                10.04.2024 09:49

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


    1. andretisch
      10.04.2024 09:49

      Так попробуй. Она ж в доступе. Но я бы сконвертировал в картинку


      1. prohodil_mimo
        10.04.2024 09:49

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


        1. andretisch
          10.04.2024 09:49

          Так и они отдали в открытый доступ, чтоб под каждого не настраивать сервер. Я думаю в миллионах лет опыта можно найти полчасика на освоение colab от гугл. Но в целом да, было-бы удобнее если был хотя бы ТГ бот


  1. StanSemenoff
    10.04.2024 09:49

    Сколько времени занимает обучение и на каких мощностях?


    1. kuznetsoff87 Автор
      10.04.2024 09:49
      +1

      2-3 A100, по 1-2 дня на каждую фазу обучения. Ну и в параллели несколько экспериментов обычно ставится под разные архитектурные особенности.


  1. d00m911
    10.04.2024 09:49
    +3

    В какое же прекрасное время бы живём, выходят прекрасные бесплатные модели - эта, Command r+, Llama 3 уже на следующей неделе будет, говорят... и ведь технология становится все лучше и лучше! Это как жить в эпоху промышленной революции, когда придумали станки, но круче)


  1. RealFSA
    10.04.2024 09:49

    Отличная сеть. Надеемся на продолжение. Но есть вопрос. Можно ли при запросе о наличии объекта на картинке, получить квадрат с позицией объекта на изображении?