Multi-Modal Model
Мультимодальная модель обрабатывает в одной сети данные нескольких типов, например изображения, текст и аудио. Разбираем методы слияния, типы моделей и код.
Мультимодальная модель, также называемая моделью с несколькими модальностями, — это одна модель машинного обучения (ML), которая принимает на вход и иногда генерирует несколько типов данных (модальностей): изображения, текст, аудио, видео, карты глубины или показания датчиков. Поскольку модель обрабатывает модальности совместно, она может использовать каждую из них как контекст для остальных, отвечая на устный вопрос о фотографии, находя кадры видео, которые описывает предложение, или одновременно обнаруживая пешеходов по данным камеры и радара. Конвейер, объединяющий отдельные одномодальные модели, например распознаватель речи, который передаёт результат чат-боту, работающему только с текстом, передаёт информацию между модальностями только через итоговый результат каждой модели, тогда как мультимодальная модель учится понимать, как эти модальности связаны.
Как работают мультимодальные модели#
Сначала каждая модальность проходит через подходящий для неё кодировщик: например, визуальный трансформер (ViT) для изображений или токенизатор и слой эмбеддингов для текста, который преобразует его в векторы. Затем модель объединяет эти векторы и на основе общего представления предсказывает текст, метки, рамки или действия. Основные типы архитектур различаются местом объединения данных:
- Раннее объединение: Входные данные объединяются до первых слоёв или непосредственно в них. Данные совмещённых датчиков можно объединить в дополнительные каналы изображения; Ultralytics YOLO26 поддерживает это напрямую: если задать ключ
channelsв YAML-файле датасета, детектор будет обучаться на изображениях с числом каналов больше трёх, например RGB-данных вместе с тепловыми или глубинными каналами, сохранёнными в одном многоканальном TIFF, как в датасете из 10 каналов COCO8-Multispectral. - Промежуточное объединение: Каждая модальность кодируется отдельно, а затем признаки объединяются, обычно с помощью механизма внимания. Flamingo от DeepMind добавляет слои перекрёстного внимания в замороженную языковую модель, чтобы текстовые токены могли учитывать признаки изображения; многие визуально-языковые модели (VLM) проецируют признаки изображения в «визуальные токены», которые большая языковая модель (LLM) обрабатывает вместе с запросом.
- Позднее объединение: Отдельные модели делают прогнозы, которые объединяются в конце. Такой подход устойчив к отказу одного датчика, но не позволяет обучить модель учитывать взаимодействия между модальностями.
- Общее пространство эмбеддингов: Кодировщики отображают каждую модальность в единое общее векторное пространство. При контрастивном обучении соответствующие друг другу пары оказываются рядом. CLIP сопоставляет изображения и текст, а ImageBind от Meta расширяет общее пространство эмбеддингов до шести модальностей — изображений, текста, аудио, глубины, тепловых данных и данных датчиков движения — используя только данные, связанные с изображениями.
Выбор подходящей архитектуры во многом зависит от данных и задачи:
ViLT, визуально-языковой трансформер, — компактный пример раннего объединения: он разбивает изображение на фрагменты, преобразует их в эмбеддинги вместе со словами вопроса и обрабатывает общую последовательность одним трансформером. В следующем примере используется контрольная точка ViLT, дообученная для ответов на вопросы по изображениям (VQA) с помощью Hugging Face Transformers:
import requests
import torch
from PIL import Image
from transformers import ViltForQuestionAnswering, ViltProcessor
# ViLT embeds image patches and question tokens into one sequence for a single transformer
processor = ViltProcessor.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
model = ViltForQuestionAnswering.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
image = Image.open(requests.get("https://ultralytics.com/images/bus.jpg", stream=True).raw)
# Ask different questions about the same image; each answer is one of the model's 3,129 answer classes
for question in ["What vehicle is this?", "What color is the bus?", "How many people are there?"]:
inputs = processor(image, question, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
answer = model.config.id2label[logits.argmax(-1).item()]
print(f"{question} {answer}")Модель правильно отвечает bus и blue and white по одному и тому же изображению, а на вопрос о количестве отвечает 3, хотя на фотографии четыре человека, двое из которых частично обрезаны краями кадра; подсчёт объектов остаётся распространённой слабой стороной визуально-языковых моделей.
Типы мультимодальных моделей#
- Визуально-языковые модели: обрабатывают изображения и текст, чтобы создавать подписи, отвечать на вопросы, читать документы или находить объекты, названные в запросе. Эта задача называется привязкой. Результаты тестирования VLM сравнивают точность поиска объектов такими моделями в реальных наборах данных для обнаружения объектов.
- Изначально мультимодальные ассистенты: GPT-4o от OpenAI, выпущенная в 2024 году, обучалась как единая нейросеть сквозным методом на текстовых, визуальных и аудиоданных. Google с самого начала проектировала модели Gemini как мультимодальные, поэтому одна модель может получать в одном запросе сочетание текста, изображений, аудио и видео.
- Аудиоязыковые модели: объединяют речь или звуковые сигналы с текстом для транскрибации, перевода и устного общения.
- Визуально-языковые модели с управлением действиями: Расширяют VLM, позволяя ей выдавать команды для моторов робота. Благодаря этому робот может выполнять инструкции, например «положи яблоко в миску».
- Восприятие слияния данных датчиков: Автономные автомобили объединяют данные камер, лидара и радара в одной модели, которая обнаруживает объекты в 3D и отслеживает их.
Мультимодальная модель и связанные термины#
- Мультимодальный ИИ: Более широкая область ИИ, работающего с несколькими типами данных, включая системы, объединяющие одномодальные модели в цепочку. Мультимодальная модель — это отдельная модель в этой области.
- Мультимодальное обучение: Методы обучения, например контрастивное сопоставление и межмодальное предварительное обучение, с помощью которых создают мультимодальные модели.
- Слияние данных датчиков: Объединение показаний нескольких датчиков, часто с помощью классических оценивателей, например фильтров Калмана, а не обученной модели.
- Базовая модель: Большая модель, предварительно обученная для множества последующих задач. Многие современные базовые модели мультимодальны, тогда как другие, например текстовые LLM, работают с одной модальностью.
Сложности#
Мультимодальным моделям требуется большой объём парных данных, например изображений с подписями или аудио с расшифровками; кроме того, во время инференса они должны справляться с отсутствующей или зашумлённой модальностью, например с камерой, ослеплённой бликами. Обработка изображений и видео обходится дорого: каждое изображение добавляет в контекст LLM сотни или тысячи токенов. Модель также может полагаться на более простую модальность и игнорировать более сложную: ранние модели VQA часто давали ответы, ориентируясь только на закономерности в вопросе. Поэтому в тесте VQA v2 к каждому вопросу добавили пару похожих изображений, приводящих к разным ответам, — число пар «изображение — вопрос» в наборе данных примерно удвоилось.










