ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ | ВИЗУАЛЬНАЯ ЯЗЫКОВАЯ МОДЕЛЬ

BLIP-2: когда ChatGPT встречается с изображениями

BLIP-2, новая модель визуального языка, способная вести диалог об изображениях.

ChatGPT потряс мир своей способностью общаться естественно. Однако ChatGPT не видит. возможно ли иметь модель, которая может читать изображение и обсуждать его с пользователем?

Модели языка видения: что это такое и почему это сложно

В последние годы большое внимание и исследования уделяется языковым моделям (ЯМ). С другой стороны, долгое время изображения анализировались с помощью сверточных нейронных сетей, пока в последние годы не был найден способ согласования с изображениями и трансформеров (Vision Transformers, ViTs). Почему бы не объединить два мира?

С одной стороны, есть вопросы, на которые нельзя ответить одним текстом или одними изображениями, поэтому нам нужна модель, которая может объединить два мира. Например, такие задачи, как создание подписей к изображениям, визуальные ответы на вопросы и многое другое. Здесь мы более подробно увидели, почему это было бы чрезвычайно полезно:



С другой стороны, ViTs масштабировать непросто, есть проблемы со стабильностью обучения, хотя Google нашел перспективный способ решить эту проблему.



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



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



Итак, нам нужна модель, которая способна отвечать на вопросы как по изображениям, так и по тексту (визуальная модель) и, возможно, может отвечать на вопросы с помощью ChatGPT, не говоря уже: BLIP-2 — это то, что вам нужно, и самое приятное, что контрольные точки есть. на HuggingFace.

BLIP-2: общее введение

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



С другой стороны, если у нас есть хорошие LM и, возможно, хорошая модель зрения, почему бы не объединить их? Это сделало бы модель намного более эффективной в вычислительном отношении.

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

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

Чтобы использовать предварительно обученные одномодальные модели для VLP, важно облегчить кросс-модальное выравнивание. Однако, поскольку LLM не видели изображения во время их унимодального предварительного обучения, их замораживание делает выравнивание зрения и языка особенно сложным. источник (здесь)

Модель, обученная на тексте, не видела изображение во время обучения, и когда мы хотим задать текстовый вопрос об изображении, нам необходимо упомянутое согласование между текстовым и визуальным компонентами нашей зрительно-языковой модели (кстати, это самая сложная часть). Как решить эту проблему?

С одной стороны, Google с Фламинго протестировал потерю генерации изображения в текст, которая, однако, оказалась неэффективной. Затем авторы предлагают новую возможность

Чтобы добиться эффективного согласования языка видения с замороженными унимодальными моделями, мы предлагаем преобразователь запросов (Q-Former), предварительно обученный с помощью новой двухэтапной стратегии предварительного обучения.

Что именно представляет собой этот Q-Former? облегченный модуль (еще один небольшой трансформер), увеличивающий общие возможности модели. Этот мини-трансформер обучает векторы запросов, эти векторы используются для извлечения информации из замороженного визуального кодировщика. Другими словами, изображение проходит через визуальную модель, и мы получаем представление изображения, которое затем адаптируется Q-former, чтобы затем LM могли понять, что находится на изображении, и вывести в текст.

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

Почему BLIP-2 важен?

В следующем разделе мы проанализируем это более подробно, а на данный момент каковы наиболее важные вклады этой модели?

BLIP2 в деталях

Q-бывший

Очевидно, что сердцем Blip2 является Q-Former. Короче говоря, это преобразователь, который извлекает информацию из кодировщика замороженных изображений (фиксированное количество выходных признаков, независимо от разрешения входного изображения), используя набор обучаемых векторов запросов.

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

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

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

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

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

Q-Former инициализируется с использованием весов базы BERT, в то время как межуровневое внимание инициируется случайным образом. Всего Q-Former состоит всего из 188 млн параметров (включая запросы). Хотя 188 миллионов параметров звучит много, это значительно меньше, чем подходы, использовавшиеся в прошлом.

Авторы использовали 32 запроса, каждый с размерностью 768 (что совпадает со скрытой размерностью Q-Former). Обратите внимание, что на самом деле это намного меньше, чем характеристики изображения, полученные из используемой визуальной модели (257x1024 для ВиТ-Л/14). Это важно, поскольку заставляет модель извлекать наиболее релевантные визуальные функции, закодированные визуальным кодировщиком.

Тренировка

Обучение разделено на две части, так как Q-Former должен научиться общаться с двумя замороженными компонентами.

Обучение Bootstrap Vision-Language Representation кодировщику замороженных изображений

Основная цель Q-Former — научиться извлекать наиболее информативное визуальное представление текста. Хорошо, но как? Для этого авторы решили, что наилучшим способом будет совместная оптимизация трех предтренировочных целей:

  • Контрастное обучение изображения и текста (ITC). Используется, чтобы узнать, как выровнять представление изображения и текстовое представление, максимизируя взаимную информацию между ними.
  • Генерация текста на основе изображения (ITG). Это учит Q-former генерировать текст, заданный в качестве входных данных в качестве обработки изображения.
  • Сопоставление изображения и текста (ITM). Чтобы научиться точному согласованию между изображением и текстовым представлением.

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

Создание генеративного обучения на основе видения-языку от Frozen LLM

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

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

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

Полученные результаты

Авторы протестировали модель в разных условиях (особенно при нулевой генерации изображения в текст):

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

Кроме того, результаты показывают, что наличие более мощного кодировщика изображений или более мощного LM приводит к повышению производительности. На самом деле ViT-G превосходит ViT-L, а использование модели, настроенной на инструкции, такой как FLanT5, работает лучше, чем OPT. Кроме того, эти результаты показывают, что подход к обучению BLIP-2 можно использовать с любой визуальной моделью и LM.

Однако у модели есть и некоторые ограничения

Недавние LLM могут выполнять контекстное обучение на нескольких примерах. Однако наши эксперименты с BLIP-2 не показывают улучшения производительности VQA при предоставлении LLM контекстных примеров VQA. Мы приписываем отсутствие возможности обучения в контексте нашему набору данных для предварительной подготовки, который содержит только одну пару изображение-текст для каждого образца. источник (здесь)

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

Могу ли я использовать его?

Да! это с открытым исходным кодом, они выпустили модель на GitHub

  • Здесь — модельный лист
  • Здесь и здесь есть некоторые учебные ресурсы, если вы хотите их использовать
  • Здесь у вас есть модели контрольно-пропускных пунктов.
  • Здесь (сайт HuggingFace) и здесь (сайт SalesForce) можно поиграть с моделью.

Например, вы можете использовать некоторые из примеров, которые они предоставляют. Или вы можете ввести изображение и задать вопрос о нем.

Как итальянец, я решил проверить подсказку о пицце.

И я действительно доволен результатом:

Выводы

BLIP2 достигает современного состояния благодаря использованию эффективного метода вычислений и показывает, как LM и визуальная модель могут быть объединены элегантным способом. Кроме того, это шаг вперед в мультимодальных диалоговых агентах ИИ.

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

Если вы нашли это интересным:

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

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



Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу