Multi-Modal Learning
Мультимодальное обучение обучает модели одновременно на данных разных типов, например изображениях, тексте и аудио. Разбираем выравнивание, слияние и контрастивную функцию потерь.
Мультимодальное обучение — область машинного обучения, посвящённая обучению моделей на данных более чем одной модальности: например, на изображениях с подписями, видео со звуковой дорожкой или кадрах с камеры вместе со сканами лидара. Благодаря этому модель учится понимать взаимосвязи между модальностями. Методы мультимодального обучения отвечают на два вопроса: как представить разные модальности, чтобы их можно было сравнивать, и на каком этапе модели объединять их. Системы, создаваемые с помощью этих методов, — от визуально-языковых помощников до систем восприятия для автономного вождения — называют мультимодальным ИИ.
Люди без усилий объединяют сигналы разных органов чувств. При эффекте Мак-Гурка, описанном в 1976 году, видео с губами, произносящими «га», и наложенным звуком «ба» воспринимается как «да». В 2011 году Джикуань Нгиам и его коллеги из Стэнфорда применили эту идею к глубокому обучению: они обучали сети одновременно на аудио и видео губ, показав, что признаки, полученные из обеих модальностей, улучшают чтение по губам по сравнению с использованием только видео.
Основные задачи#
В обзоре 2019 года Тадас Балтрушайтис, Чайтанья Ахуя и Луи-Филипп Моренси сгруппировали задачи этой области в пять категорий:
- Представление: Кодирование каждой модальности в виде векторов — либо в одном общем пространстве, либо в отдельных пространствах, обученных для выравнивания.
- Преобразование: Преобразование одной модальности в другую, например создание подписей к изображениям или генерация изображений по тексту.
- Выравнивание: Определение соответствий между частями разных модальностей, например между областью изображения и описывающей её фразой.
- Слияние: Объединение информации из нескольких модальностей для получения предсказания.
- Совместное обучение: Перенос знаний из модальности с большим объёмом данных в модальность с малым объёмом данных.
Стратегии слияния#
Раннее слияние объединяет входные данные или низкоуровневые признаки до обработки, специфичной для каждой модальности; например, карта глубины объединяется с каналами RGB в одно четырёхканальное изображение. Позднее слияние использует отдельную модель для каждой модальности и объединяет их предсказания усреднением или голосованием; такой подход продолжает работать, даже если одна модальность отсутствует. Промежуточное слияние отдельно кодирует каждую модальность и позволяет им обмениваться информацией внутри сети, обычно с помощью перекрёстного внимания — механизма внимания, при котором токены одной модальности учитывают признаки другой. В роботах и транспортных средствах слияние данных датчиков использует все три стратегии.
Добавление модальности может также снизить точность. В 2020 году Вэйяо Ван, Ду Тран и Мэтт Файзли показали, что сеть классификации видео, совместно обученная на аудио, кадрах и движении, часто работает хуже лучшей модели с одной модальностью, поскольку она переобучается, а разные модальности обучаются с разной скоростью. Предложенный ими метод Gradient-Blending корректирует это, изменяя веса функции потерь для каждой модальности.
Контрастивное выравнивание#
Контрастивное обучение выравнивает модальности без ручной разметки. В 2021 году OpenAI CLIP обучила кодировщик изображений и кодировщик текста на 400 миллионах пар «изображение — подпись», чтобы каждое вложение изображения было наиболее похоже на свою подпись среди всех подписей в пакете. В результате точность исходной ResNet-50 на ImageNet была достигнута в режиме zero-shot, без использования 1,28 миллиона размеченных обучающих изображений ImageNet. Функция потерь — это перекрёстная энтропия по матрице сходства, применяемая в обоих направлениях:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Unit-length embeddings for 4 images and 4 captions; row i of each is a matching pair
image_emb = F.normalize(torch.randn(4, 64), dim=-1)
text_emb = F.normalize(image_emb + 0.5 * torch.randn(4, 64), dim=-1)
def contrastive_loss(images, texts, temperature=0.07):
"""CLIP-style symmetric cross-entropy over the image-text similarity matrix."""
logits = images @ texts.T / temperature
targets = torch.arange(len(images)) # the matching caption sits on the diagonal
return (F.cross_entropy(logits, targets) + F.cross_entropy(logits.T, targets)) / 2
print(f"Aligned pairs: {contrastive_loss(image_emb, text_emb):.3f}")
print(f"Misaligned pairs: {contrastive_loss(image_emb, text_emb.roll(1, dims=0)):.3f}")Если каждая подпись соответствует своему изображению, функция потерь равна 0,577; если сдвинуть подписи на одну строку, так что каждое изображение окажется сопоставлено с неправильной подписью, значение вырастет до 2,756. Обучение снижает эту потерю на пакетах из множества пар (CLIP использовала 32 768), приближая каждое изображение к собственной подписи и удаляя от остальных подписей пакета; CLIP обучается и параметру температуры, начальное значение которого — 0,07. ALIGN от Google (2021) масштабировала тот же подход до 1,8 миллиарда зашумлённых пар «изображение — альтернативный текст», SigLIP (2023) заменила softmax на независимую сигмоиду для каждой пары, а ImageBind компании Meta (2023) выровняла шесть модальностей, включая аудио, глубину, тепловые данные и данные датчиков движения, сопоставляя каждую из них с изображениями.
Детекторы с открытым словарём обучаются тому же выравниванию текста и областей изображения. Рецепт Ultralytics для обучения YOLOE-26 с нуля — детектора YOLO26 с открытым словарём на основе YOLOE Университета Цинхуа — сочетает метки детекции Objects365 с данными заземления GQA и Flickr30k, всего около 1,4 миллиона примеров. Обучающий кодировщик один раз кодирует каждое имя класса и словосочетание с помощью замороженного текстового кодировщика MobileCLIP2 от Apple и кэширует эмбеддинги, поэтому обучение обновляет только детектор, включая небольшой остаточный слой, который уточняет кэшированные текстовые векторы перед их сопоставлением с признаками областей.
Мультимодальное обучение и смежные понятия#
- Мультимодальный ИИ: Системы и приложения, созданные с помощью мультимодального обучения, например визуальные помощники и системы восприятия для помощи водителю.
- Мультимодальная модель: Обученная модель, работающая с несколькими модальностями, — результат мультимодального обучения.
- Мультимодальная языковая модель (VLM): Мультимодальная модель для работы с изображениями и текстом, которую часто обучают поэтапно: сначала проводят контрастивное предварительное обучение, затем связывают кодировщик изображений с языковой моделью, а после этого настраивают модель на визуальных инструкциях.
- Перенос обучения: Использует модель, обученную для одной задачи, в другой задаче; совместное обучение применяет эту идею к разным модальностям.










