Технологии

Внутри DALL-E 2: как устроена нейросеть, способная создать любую картинку на основе текстового описания

Краткий рассказ об «изнанке» модели, которая обучается на сотнях миллионов изображений и связанных с ними подписей.

В начале апреля OpenAI начала тестировать DALL-E 2 — обновлённую версию нейросети, впервые представленную в январе 2021 года. С помощью только короткой текстовой подсказки ИИ может генерировать совершенно новые изображения, редактировать фотографии, добавляя новые предметы, и создавать новые рисунки на основе существующих, сохраняя дух оригинала.

TJ уже рассказывал о результатах работы DALL-E 2: за постами о ней можно следить по одноимённому тегу. А быстрое представление о возможностях нейросети можно получить из клипа на песню «Feeling Good» от одного из тестировщиков.

А сейчас TJ публикует адаптацию статьи разработчика Райана О’Коннора, который подробно объяснил, как работает DALL-E 2.

* * *

На высшем уровне DALL-E 2 работает очень просто: текст вводится в кодировщик, обученный отображать подсказку. Затем «предшествующая» модель сопоставляет кодировку текста с кодировкой изображения. Наконец, модель декодирования изображения генерирует картинку-визуальное проявление этой семантической информации.

Процесс генерации изображений DALL-E 2

DALL-E 2 учится связывать текстовые и визуальные абстракции. Например, после ввода запроса «плюшевый мишка катается на скейтборде на Таймс-сквер» DALL-E 2 выводит следующее изображение. А ещё можно уточнить, как нейросети выполнить картинку, например, «рисунок краской», «3D-модель» или «наскальная живопись».

Откуда DALL-E 2 знает, как такое текстовое понятие, как «плюшевый мишка», проявляется в визуальном пространстве? Связь между текстовой семантикой и визуальным представлением изучается с помощью другой модели OpenAI — CLIP. Она обучается на сотнях миллионов изображений и связанных с ними подписей, выясняя, насколько конкретный фрагмент текста относится к изображению.

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

Основополагающие принципы тренировки CLIP:

  • Все изображения и связанные с ними подписи проходят через соответствующие кодировщики, отображая все объекты в m-мерном пространстве.
  • Затем вычисляется сходство каждой пары (изображение + текст).
  • Цель обучения состоит в том, чтобы одновременно максимизировать сходство между правильно закодированными парами изображения и заголовка, и минимизировать его между неправильно закодированными парами.

CLIP важен для DALL-E 2, потому что это то, что в конечном итоге определяет, насколько семантически связан фрагмент естественного языка с визуальной концепцией. Это имеет решающее значение для создания изображений нейросетью.

После обучения модель CLIP останавливается. DALL-E 2 переходит к следующей задаче и занимается кодированием изображения, которое только что изучил CLIP. В частности, OpenAI использует модифицированную версию ещё одной из своих предыдущих моделей, GLIDE, для создания этого изображения.

Происходит это следующим образом. Возьмём «корги, играющего на трубе-огнемёте» (это реальный пример от одного из тестировщиков). Запрос проходит через кодировщик изображений CLIP. А затем GLIDE использует кодировку для создания нового изображения, сохраняющего основные черты оригинала.

GLIDE-обучение позволяет DALL-E 2 создавать фотореалистичные изображения

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

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

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

«ёж использует калькулятор», «корги в красной бабочке и фиолетовой праздничной шляпке», «роботы медитируют с помощью техники випассана» и «осенний пейзаж с маленьким домиком у реки»

GLIDE важен для DALL-E 2, потому что он позволил авторам легко перенести возможности генерации фотореалистичных изображений с текстовым условием. Благодаря этому DALL-E 2 учится генерировать семантически согласованные изображения, обусловленные кодировкой изображения CLIP.

Как всё работает вместе

Таким образом, для генерации текстового изображения нужно собрать вместе следующее:

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

#dalle2 #нейросети