Molmo — семейство открытых мультимодальных AI-моделей


Molmo (Multimodal Open Language Model) — открытая мультимодальная модель, умеющая обрабатывать картинки и текст (vision-language
model (VLM)).

Модель построена на Vision Transformer (ViT) и большой языковой модели (БЯМ, LLM):

  • MolmoE-1B основана на OLMoE-1B-7B,
  • Molmo-7B-O и Molmo-7B-D основаны на OLMo-7B и Qwen2 7B, соответственно,
  • Molmo-72B основана на Qwen2 72B.

По бенчмаркам, модели Molmo работают не хуже GPT-4v.

Для создания этих моделей, авторы взяли готовые обученные БЯМ, ViT, и  обучили их на своих данных в два этапа:
1. тренировка на парах изображение — описание (датасет PixMo-Cap).
2. тренировка на смеси академических наборов данных (VQA v2, TextVQA, OK-VQA, ChartQA и т.д.) и набора данных PixMo-⋆.

Все параметры модели обновляются на обеих этапах.  RLHF (reinforcement learning from human feedback) не использовался.

PixMo-Cap

PixMo-Cap представляет собой 712 тыс. изображений с ~1.3 млн описаний (включая аугментацию).

Картинки найдены в интернете и разбиты на наборы из ~70 высокоуровневых тем (уличные знаки, мемы, еда, рисунки, веб-сайты, размытые фотографии и т. д.). Для каждого изображения три человека (аннотатора) наговаривали подробное описание изображения с длительностью описания не менее 60 секунд (позднее использовали 90 секунд и всего одного аннотатора).

Люди в своих описаниях отвечали на список простых вопросов:

• Что представляет собой изображение на первый взгляд?
• Каковы объекты и их количество?
• О чем говорится в тексте?
• Каковы положения объектов?
• Какие тонкие детали заметны?
• Что находится на заднем плане?
• Каков стиль и цвет?

Полученное аудио с описанием транскрибировалось в текст, а затем обрабатывалось БЯМ для улучшения качества текста (удаления речевых артефактов, нормализации стиля и т.п.). Кроме того, это позволило аугментировать данные, создав четвёртое описание изображения, попросив БЯМ выполнить суммаризацию трёх исходных текстов в одно описание.

PixMo-⋆

Для второго этапа использовались несколько наборов данных:

  • PixMo-AskModelAnything — 73k изображений и 162k пар вопрос-ответ.
  • PixMo-Points — 428k изображений и 2.3M пар вопрос-ответ.
  • PixMo-CapQA — 165k изображений и 214k пар вопрос-ответ.
  • PixMo-Docs — 255k изображений и 2.3M пар вопрос-ответ.
  • PixMo-Clocks — 160k изображений и 826k пар вопрос-ответ.

В чём суть этих наборов данных можно почитать в статье, но необходимо особо отметить самый интересный набор данных — PixMo-Points. Он позволяет модели указывать (помечать точкой) на что-либо, описываемое текстом и использовать указание как естественную форму визуального объяснения при ответе на вопросы. Чтобы собрать эти данные, людей просили указать на что-либо на изображении, написать его описание, а затем указать на каждый экземпляр этого на изображении (собирались так же данные по «отсутствующим» объектам, чтобы модели могли научиться правильно реагировать, когда их спрашивают о чем-то, чего нет на изображении).

Molmo и роботы

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

Вывод

Очень интересная работа, которая опять отмечает важность данных и качественной разметки.

Парадигма «ChatGPT с актуаторами» продолжает своё развитие.

Статьи

  1. Deitke M. et al. Molmo and PixMo: Open Weights and Open Data for State-of-the-Art Multimodal Models //arXiv preprint arXiv:2409.17146. – 2024.

Ссылки

По теме


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение