Как стать автором
Обновить
183.9
Raft
AI решения для бизнеса

Как создатели Stable Diffusion выжимают максимум из тренировочных данных

Время на прочтение7 мин
Количество просмотров1.2K

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

Но задумывались ли вы, на чём учатся эти модели? Что именно они видели в процессе тренировки? Как инженеры собирают и размечают данные? История тренировочных датасетов оказывается намного интереснее и сложнее, чем может показаться на первый взгляд.

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

Коротко о моей работе в компании Raft: я data-scientist в RnD отделе, и в последнее время мы развиваем направления диффузионных моделей и VLM. Из последних проектов – это генерация архитектурных и дизайнерских проектов, а также автоматическая разметка изображений.

Как диффузионная модель понимает текст

Статья Stable Diffusion 3: Scaling Rectified Flow Transformers for High-Resolution Image Synthesis

Архитектура Stable Diffusion 3. Красной рамкой выделены энкодеры. В каком-то смысле это "глаза" модели
Архитектура Stable Diffusion 3. Красной рамкой выделены энкодеры. В каком-то смысле это "глаза" модели

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

Рассмотрим пример одной из последних открытых моделей — Stable Diffusion 3. Для понимания текста она использует ансамбль энкодеров: 2 разные CLIP-модели для сопоставления текста и изображений, а также текстовую модель T5 для улучшенного понимания логики и связей в тексте. Благодаря этому SD3 лучше справляется со сложными пространственными описаниями. Например, может правильно расположить объекты относительно друг друга.

Иллюстрация роли T5 в энкодинге текста. У SD3 улучшилось понимание текста и пространственных связей (хорек в банке)
Иллюстрация роли T5 в энкодинге текста. У SD3 улучшилось понимание текста и пространственных связей (хорек в банке)

Тренировочный датасет SD3 не раскрывается. Указано только, что он на 50% состоит из синтетических данных, где описания к изображениям были сгенерированы специальной моделью CogVLM.

Таким образом, способность диффузионной модели понимать текст определяется двумя уровнями:
- На этапе обучения — качеством разметки, созданной с помощью VLM
- В процессе генерации — возможностями CLIP по сопоставлению текста и изображений

Чтобы лучше понять этот процесс, давайте рассмотрим, как устроены VLM и как они описывают содержание изображений.

Как VLM понимает текст

VLM (Vision Language Model) – языковая модель с пониманием картинок. Она сочетает:
1.  Визуальные модели для энкодинга изображений
2.  LLM для понимания контекста, восстановления связи между объектами и генерации ответов на вопросы

Эти компоненты соединяются через специальный слой – обычно MLP, который учится "переводить" между визуальными и текстовыми представлениями.

Архитектура типичной VLM на примере LLaVa
Архитектура типичной VLM на примере LLaVa

Важное преимущество такой архитектуры – экономичность обучения. Модель не учится "с нуля": и визуальный энкодер, и языковая модель берутся предобученными. Обучается только промежуточный слой и затем производится fine-tuning компонентов под конкретную задачу.

Посмотрим на примеры таких моделей. Мы сфокусируемся на ранних VLM, чтобы понять основные принципы. До сих пор исследователи много эксперементируют с добавлением мультимодальности к языковым моделям. Есть даже лидерборд на huggingface, который сравнивает качество моделей на визуальных бенчмарках: Open VLM Leaderboard

LLaVA

Статья LLaVa, вышла 17 апр 2023 — LLaVA: Large Language and Vision Assistant 

LLaVA-1.5 (13B) стала первой опенсорс VLM хорошего качества. Архитектура простая – предобученный CLIP объединен с Vicuna-13B через MLP (см картинку выше)

Обучение провели в два этапа:
1.  Обучается только коннектор MLP на данных из CC3M. За счет этого Vicuna научилась понимать изображения
2.  Обучается MLP и LLM на собранном авторами датасете для instruction-following – размер ~600K. За счет этого Vicuna стала лучше работать со сценариями от пользователя

Свой датасет для instruction-following полностью сгенерировали GPT-4: описания несуществующих картинок, вопросы по ним, ответы.

Авторы гордятся эффективностью по стоимости обучения и количеству использованных данных: 1 день на 8xA100 с использованием ~1.2M изображений. Для сравнения, сами vision-энкодеры требуют сотен GPU, ~1B изображений и неделю на обучение.

LLaVa1.5 — сравнительно простая модель. Её результаты улучшила CogVLM, вышедшая немного позднее. И, как мы помним, CogVLM использовали для разметки датасета Stable Diffusion 3.

CogVLM

Статья CogVLM, вышла 6 ноя 2023 — CogVLM: Visual Expert for Pretrained Language Models  

CogVLM (17B) – продолжение идеи LLaVa с несколькими модификациями:
1.  Изображения энкодятся с помощью EVA-CLIP – модификации CLIP
2.  Векторы подаются в модифицированную архитектуру Vicuna-7B

Архитектура CogVLM. Фиолетовым указаны обучаемые части.
Архитектура CogVLM. Фиолетовым указаны обучаемые части.

Данные для обучения:
-  LAION-2B – изображения из CommonCrawl
-  COYO-700M – отфильтрованный CommonCrawl
-  Кастомный датасет с bounding-boxes из 40К примеров для файнтюнинга

Примеры из статьи CogVLM
Примеры из статьи CogVLM

CLIP: как сопоставить текст и картинки

Статья CLIP — Learning Transferable Visual Models From Natural Language Supervision

И в диффузионных моделях, и в VLM за понимание визуального контекста отвечает один и тот же компонент — CLIP. Поэтому возможности и ограничения CLIP во многом определяют, насколько хорошо эти системы "понимают" визуальную информацию. Разберемся, как работает CLIP и на каких данных он обучен.

Иллюстрация обучения CLIP из статьи
Иллюстрация обучения CLIP из статьи

CLIP (Contrastive Language-Image Pre-training) – модель, которая создает такое пространство, где текстовые описания объектов находятся рядом с соответствующими изображениями. Например, слово "кошка" должно быть рядом с фотографиями кошек в этом пространстве.

Во время обучения CLIP учится предсказывать, какие пары текста и изображений действительно соответствуют друг другу. Это происходит через контрастивное обучение - модель максимизирует "близость" правильных пар и минимизирует близость неправильных. При этом обучаются 2 энкодера: Vision Transformer для изображений и Transformer для текста.

За счет двух согласованных энкодеров, CLIP можно применять в обе стороны: text2image и image2text. В диффузионных моделях используется текстовый энкодер CLIP для энкодинга текста для генерации, а в VLM - визуальный энкодер для энкодинга изображений.

Первый CLIP был создан OpenAI и обучен на миксе открытых данных и приватного датасета из 400M пар текст-изображение. Позже появился проект OpenCLIP. Они предложили семейство моделей с архитектурой, похожей на исходную. Только их модели обучались на публичных данных – LAION-2B.

Данные

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

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

Примеры изображений из датасетов доступны на сайте-аггрегаторе Labelbox.

LAION: количество vs качество

Статья LAION — LAION-5B: An open large-scale dataset for training next generation image-text models

Схема сбора данных для датасета LAION
Схема сбора данных для датасета LAION

LAION — крупнейший открытый датасет для обучения моделей понимания изображений. Есть несколько версий: 5B, 2B, 400M – отличаются качеством и количеством пар текст-изображение. Датасет собран автоматически из CommonCrawl — архива интернет-страниц.

Примеры из статьи LAION-5B
Примеры из статьи LAION-5B

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

COYO-700M: фильтрация для улучшения качества

Репозиторий COYO-700M — kakaobrain/coyo‑dataset: COYO-700M: Large‑scale Image‑Text Pair Dataset

Отфильтрованные изображения из Common Crawl. Фильтрация происходит за счет удаления дубликатов и картинок в низком разрешении и некоторых эвристик с текстовыми описаниями. Подробнее можно почитать в их репозитории по ссылке выше.

Однако такая фильтрация по прежнему оставляет в датасете неинформативные описания. Вот примеры:

Примеры из датасета COYO-700M с сайта Labelbox
Примеры из датасета COYO-700M с сайта Labelbox

CC12M: обогащение исходного датасета

Статья CC12M — Conceptual 12M: Pushing Web-Scale Image-Text Pre-Training To Recognize Long-Tail Visual Concepts

Примеры из статьи CC12M
Примеры из статьи CC12M

Этот датасет – фильтрация существующих датасетов и постобработка с помощью BERT'a. Аннотации похожи на промпты, но не всегда достаточно информативны. Авторы предлагают использовать модель Google Vision API, которая для каждой картинки выдает несколько тегов – названия объектов, которые она обнаружила. Эти теги подаются в BERT для установления логической связи между объектами. То есть BERT обогащает исходные описания изображений за счет использования тегов из модели для классификации.

Однако даже такое хитрое обогащение по прежнему не всегда дает информативные описания. Вот несколько примеров:

Примеры из датасета CC12M с сайта Labelbox
Примеры из датасета CC12M с сайта Labelbox

Выводы

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

При этом мы наблюдаем "замкнутую петлю" в развитии этих технологий:
1. Диффузионные модели обучаются на данных из интернета и используют VLM для синтетической разметки. При этом для понимания текста они используют CLIP
2. VLM использует CLIP для понимания изображений
3. CLIP обучается на данных из интернета, которые часто поверхностны

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

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

Теги:
Хабы:
+8
Комментарии2

Публикации

Информация

Сайт
ai.raftds.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
Евгений Кокуйкин

Истории