Как научить ИИ видеть и слышать: секреты контрастивного обучения

DeepLearning.AI 9,9 тыс. 23 мин 6 мин 20.05.2024
Главное

Современный поиск стремительно эволюционирует от простого сопоставления текста к пониманию сложного мультимодального контента. В образовательном материале от DeepLearning.AI подробно разбирается концепция мультимодального поиска и систем Retrieval-Augmented Generation (RAG). На примере практических алгоритмов контрастивного обучения (Contrastive Representation Learning) авторы демонстрируют, как научить компьютер сопоставлять текстовые запросы, изображения, аудио и видеофайлы в едином векторном пространстве.

🌐 Эра мультимодальных данных: почему текстового поиска уже недостаточно 0:01

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

Например, концепт «лев» может быть представлен фотографией животного, текстовым описанием «король джунглей», видеороликом с бегущим прайдом или звуком грозного рычания. Сочетание этих модальностей дает искусственному интеллекту гораздо более глубокое понимание контекста. Увидеть и услышать рычание льва одновременно производит куда более сильное и пугающее впечатление, чем просто молчаливое наблюдение за ним; именно синергия визуального и звукового рядов объясняет, почему он считается королем джунглей.

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

🗺️ Мультимодальные эмбеддинги и концепция единого векторного пространства 2:39

Главным инструментом для работы компьютера с разнородными данными являются мультимодальные эмбеддинги (multimodal embeddings). Они позволяют проецировать информацию разных типов в единое векторное пространство (joint embedding space). В таком пространстве вектор изображения льва окажется в непосредственной близости от векторов текстового описания, аудиозаписи рычания или видео с бегущими львами. Подобные модели способны сохранять семантическое сходство как внутри одной модальности, так и между ними. Это означает, что близкие по смыслу объекты всегда будут иметь схожие векторы, тогда как совершенно разные концепты (например, «лев» и «музыкальная труба») окажутся на значительном удалении друг от друга.

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

🔄 Механика контрастивного обучения: притяжение и отталкивание векторов 4:13

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

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

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

📈 От CLIP к ImageBind: масштабирование подходов и математика потерь 6:23

Одной из главных сложностей контрастивного обучения является сбор достаточного количества качественных пар «якорь-пример». В исторической работе CLIP (2021 год) специалисты OpenAI элегантно решили эту проблему, сопоставив изображения с их текстовыми описаниями из интернета. В матрице пар диагональ представляла собой идеальные совпадения (положительные примеры), а любые случайные пересечения картинок и подписей вне диагонали автоматически становились отрицательными примерами.

Математически функция контрастивных потерь выглядит следующим образом. Используются функции кодирования: $f$ для перевода изображений в вектор $q$, и $G$ для перевода видео в вектор $k$. В числителе формулы находится показатель сходства между положительными примерами (например, фото льва и видео со львом), значение которого максимизируется. В знаменателе вычисляется сумма сходств со множеством отрицательных примеров (например, фото льва и котята на велосипеде), нормирующая результат в вероятность. Знак минус перед функцией потерь указывает на необходимость её минимизации, благодаря чему векторы схожих объектов сближаются, а разных — отдаляются. Модель ImageBind от Meta развила этот подход, применив его последовательно ко всем ключевым модальностям: аудио, тексту, видео и тепловым картам.

💻 Практическая реализация: пишем код для обучения модели на MNIST 8:20

Практическая часть занятия посвящена обучению нейросети на классическом датасете MNIST (изображения рукописных цифр от 0 до 9) с последующей визуализацией векторного пространства. Для работы используются библиотека машинного обучения PyTorch, а также инструменты визуализации Plotly и UMAP. Каждая цифра в MNIST имеет метку класса. В контексте контрастивного обучения, если якорем выбрана цифра «5», то другая «5» будет положительным примером, а цифры «6» или «7» — отрицательными.

Логика разделения прописана в файле mnist_dataset.py:

Поскольку в качестве метрики близости используется косинусное сходство (cosine similarity), идеальное расстояние для положительных пар приравнивается к 1, а для отрицательных — к 0. Обучающие данные подаются в нейросеть через PyTorch DataLoaders, где размер батча (batch size) можно варьировать для анализа скорости сходимости.

Архитектура используемой нейросети включает:

🔬 Анализ результатов: PCA, UMAP и «эффект медузы» 14:45

По умолчанию вычисления запускаются на CPU, но при наличии переключаются на GPU/CUDA. Для градиентного спуска настраивается оптимизатор, функция контрастивных потерь и планировщик (scheduler). Полный цикл обучения занимает около 2–3 минут на одну эпоху, поэтому авторы предлагают загрузить уже готовую модель, прошедшую 100 эпох. График функции потерь показывает, что кривая стабилизируется в районе 20-й эпохи, а основные изменения происходят на первых 5–10 этапах.

Поскольку человек не способен воспринимать 64-мерное пространство, применяется метод главных компонент (PCA) для снижения размерности до 3D. На интерактивном графике Plotly видно, что из-за использования косинусного сходства эмбеддинги цифр выстраиваются в форме лучей (спиц), расходящихся из центра, а не в виде округлых кластеров. Это объясняется тем, что косинусное расстояние учитывает угол между векторами, в отличие от евклидова, минимизирующего линейную близость. Из-за сильного сжатия с 64 до 3 измерений некоторые векторы (например, цифры 2 и 4) могут казаться смешанными под определенным углом обзора, но общая структура лучей сохраняется.

Для более точной двухмерной проекции применяется алгоритм UMAP с обязательным указанием параметра metric='cosine'. В результате точки группируются в отчетливые кластеры, напоминающие по форме медуз («jellyfish-like pattern»). По шутливому замечанию авторов, здесь глубокое обучение (deep learning) пересекается с глубоководным («deep sea»). Если же запустить UMAP с евклидовой метрикой по умолчанию, данные выстроятся в хаотичные переплетенные линии, напоминающие «теорию струн», что исказит реальную картину векторного пространства.

🔮 Итоги и перспективы мультимодального поиска 22:03

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

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

💬 Цитаты

«Именно когда вы видите льва и слышите его, вы понимаете, почему он король джунглей.»

Ведущий DeepLearning.AI 01:45

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

Ведущий DeepLearning.AI 04:13
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Мультимодальные данные
Информация, поступающая из разных источников (текст, картинки, звук, видео), описывающая единые концепты.
Контрастивное обучение
Метод обучения моделей путем сопоставления похожих (положительных) и непохожих (отрицательных) примеров.
Косинусное сходство
Метрика, оценивающая схожесть двух векторов по величине угла между ними, а не по линейному расстоянию.
PCA
Метод главных компонент, математический алгоритм для уменьшения размерности сложных данных с сохранением важных признаков.
📊 Цифры
🗓 Хронология
  1. 2021 год Выход статьи про модель CLIP от OpenAI, заложившей стандарты контрастивного обучения текста и картинок.
  2. До 5–10 эпохи Происходит наиболее активная фаза сходимости модели и обучения векторного пространства на датасете MNIST.
  3. Около 20 эпохи Процесс обучения нейросети стабилизируется, минимизация функции потерь выходит на плато.
⚖️ Другая сторона
Искусственный интеллект DeepLearning.AI Контрастивное обучение Мультимодальный поиск PyTorch UMAP