Авторы: Айман Шафи, Гаурав Бхагчандани, Наина Тхапар, Рагху Капур, Шубхам Бхатия.

Этот блог создается и поддерживается студентами программы магистра наук в области профессиональных компьютерных наук в Университете Саймона Фрейзера в рамках их курса обучения. Чтобы узнать больше об этой уникальной программе, посетите sfu.ca/computing/mpcs.

Обзор

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

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

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

Stable Diffusion – это еще одна модель глубокого обучения для генеративного ИИ, разработанная группой исследователей из LMU Munich, известной как CompVis. Это модель преобразования текста в изображение с открытым исходным кодом, в которой используется замороженный текстовый кодировщик CLIP ViY-L/14 для создания изображений из текстовых подсказок. Он начинается с зашумленной версии изображения и итеративно улучшается до тех пор, пока на изображении не останется шума, что позволяет лучше всего соответствовать текстовому описанию.

ИИ и генеративный ИИ быстро меняют то, как мы воспринимаем технологии и взаимодействуем с ними, а с такими моделями, как DALL-E 2 и Stable Diffusion, возможности поистине безграничны. Независимо от того, являетесь ли вы художником, стремящимся раздвинуть границы творчества, или ученым, стремящимся решить сложные проблемы, ИИ может предложить что-то для каждого.

Далее мы рассмотрим технологию, лежащую в основе DALL-E 2. Для тех из вас, кто заинтересован только в просмотре примеров и создании собственных изображений с помощью ИИ, нажмите здесь, чтобы перейти прямо туда.

Технология DALL-E 2

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

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

Архитектура нейронной сети

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

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

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

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

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

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

КЛИП

CLIP — это модель встраивания, т. е. она используется для создания скрытого пространства, соединяющего текст и изображения. Скрытое пространство — это представление данных в более высоком измерении, так что подобные данные могут быть найдены близко друг к другу. Таким образом, в случае встраивания CLIP вы найдете изображения кошек, сгруппированных вместе, изображения собак, сгруппированных вместе, и так далее.

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

Как видите, некоторые черты изображения существенно не меняются, в то время как другие изменяются. Другой способ представить это — двигаться в 2D-плоскости, где отклонение по оси X намного больше, чем отклонение по оси Y. Ось X — это важные функции, которые меняются, а ось Y — неважные, которые остаются неизменными.

Давайте разберемся, как CLIP обучается генерировать эти вложения. На изображении ниже показана модель из исследовательской работы OpenAI. Основная идея состоит в том, чтобы тренироваться на паре изображений и текста, используя контрастную целевую функцию. То, как работает сравнительная целевая функция, вознаграждая правильные пары и наказывая неправильные пары. Таким образом, в приведенной ниже модели все пары на диагонали являются правильными и получают вознаграждение, а все остальные пары нарушаются. Фактическое название функции потерь, используемой в статье, — симметричная кросс-энтропийная потеря. Формула потерь вычисляется по косинусному сходству N похожих пар и N² — N разнородных пар данных.

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

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

Диффузионная модель

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

Декодер недетерминировано преобразует вложенное изображение в фактическое изображение. Это означает, что он сохраняет основные черты изображения, изменяя другие детали. Изображение ниже, взятое из исследовательской работы, должно помочь визуализировать это. DALL-E 2 использует GLIDE от OpenAI для декодирования с небольшой модификацией. Он добавляет сгенерированные вложения CLIP, чтобы дать GLIDE больше контекста. Мы не будем вдаваться в подробности о GLIDE, но исследовательская работа по нему добавлена ​​в раздел «Ссылки» в конце.

Однако нам нужно вложение изображения, чтобы передать его декодеру. Для этого мы используем априор, который преобразует встраивание текста CLIP во встраивание изображения CLIP. Это встраивание изображения может использоваться декодером для создания вариантов изображения.

При декодировании количество деталей, генерируемых изображением, будет основываться на количестве основных компонентов, сохраненных в латентном CLIP. Большее количество измерений соответствует более высокой детализации, но требует дополнительных вычислений. Меньшее количество измерений означает более быстрое вычисление при потере деталей.

Наконец, DALL-E 2 также использует две модели масштабирования. Первый масштабирует результат с 64x64 до 256x256. Второй дополнительно масштабирует это до 1024x1024 для создания изображения с высоким разрешением. Вы можете найти более подробную информацию об этом в упомянутом исследовательском документе для DALL-E 2.

Итак, резюмируя, поток DALL-E 2 выглядит следующим образом:

  1. Создавайте вложения CLIP Text для возможных текстовых подписей.
  2. Используйте априорную модель диффузии для преобразования встраивания текста во встраивание изображения.
  3. Используйте диффузионный декодер, чтобы стохастически сгенерировать изображение из встраивания изображения.
  4. Масштабируйте сгенерированное изображение с 64x64 до 1024x1024.

Учебник: Как использовать DALL-E 2 API

  • Посетите веб-сайт OpenAI API и зарегистрируйтесь для получения ключа API. Это предоставит вам доступ к API DALL-E 2.

  • Выберите язык программирования и установите необходимые пакеты для API. Для иллюстрации давайте использовать python
pip install openai
  • Напишите скрипт для отправки текстового описания в API и получения взамен изображения. API принимает текстовое описание в качестве входных данных и возвращает URL-адрес изображения.
import openai

openai.api_key = '<YOUR_API_KEY>'
response = openai.Image.create(prompt="a detective puppy")
image_url = response['data'][0]['url']
print(image_url)

  • Поэкспериментируйте с различными описаниями, чтобы увидеть разные изображения, которые может генерировать DALL-E 2. Вы можете попробовать описать предметы, животных, сцены или даже вымышленных персонажей и существ.
  • Вы также можете управлять размером и стилем изображения, добавляя определенные параметры в свой запрос API. Например, вы можете указать размер изображения (например, 512x512 пикселей), количество изображений (1–10) и другое.
import openai

openai.api_key = '<YOUR_API_KEY>'
response = openai.Image.create(
  prompt="teddy bears working on AI research in outer space",
  n=1,
  size = "512x512"
)
image_url = response['data'][0]['url']
print(image_url)

  • Создав набор изображений, вы можете использовать их для различных целей, например, для обучения модели машинного обучения, создания веб-сайта или приложения или даже просто для личного использования.
  • Пожалуйста, помните, что DALL-E 2 все еще находится в стадии разработки, поэтому результаты могут быть далеки от совершенства. Тем не менее, несомненно, что возможности и качество модели со временем улучшатся.

Сравнение DALL-E 2 и стабильной диффузии

Какая из этих моделей лучше, спросите вы? Это действительно зависит от того, что вы ищете. Если вам нужны уникальные и высококачественные изображения, то DALL-E 2 — это то, что вам нужно. Однако, если вы ищете достаточно стабильную и надежную модель, которая может работать с реальными приложениями, то Stable Diffusion — правильный выбор.

Ограничения

ДАЛЛ-Э 2

  1. DALL-E, кажется, все еще борется с пониманием языка, где иногда он может давать ложные срабатывания. «Лошадь, рисующая маслом» иногда может быть истолкована как «Картина лошади маслом».
  2. Также могут быть несоответствующие цвета для разных объектов, где подсказка типа «Красный цветок и синяя книга» может создать изображение, содержащее синий цветок и красную книгу.
  3. Некоторые входные данные, такие как научные статьи или медицинские изображения, обрабатываются неправильно и почти всегда приводят к бессмысленным выводам.
  4. Он имеет ограниченный доступ, так как имеет закрытый исходный код и не может быть запущен на пользовательском ЦП/ГП.
  5. Сгенерированные изображения могут быть скучными и простыми, если они не снабжены достаточным количеством специальных модификаторов.

Стабильная диффузия

  1. Генерация человеческих конечностей и зубов на изображениях является постоянной проблемой из-за низкого качества конечностей на изображениях, найденных в наборе данных LAION, на котором обучалась модель стабильной диффузии. Попросив модель сгенерировать такие изображения, вы можете запутать модель и создать непонятные или «странные» изображения.
  2. Он может удалить текст, который кажется неуместным, создавая далеко не идеальные изображения, которые не соответствуют подсказке.
  3. Хотя модель с открытым исходным кодом и может работать на пользовательских графических процессорах, запуск модели в бытовой электронике является сложной задачей, даже если модель дополнительно обучается на высококачественных фотографиях.
  4. Попытка тонкой настройки модели с новыми изображениями зависит от качества новых данных; изображения с уменьшенным разрешением из исходных данных могут не только привести к тому, что модель не сможет обучиться новой задаче, но и снизит ее общую производительность.

10 творческих подсказок для генеративного искусственного интеллекта (с параллельным сравнением)

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

Медведь панда шьет свитер в космосе 4k синематик

Высокотехнологичная солнечная панк-утопия в тропических лесах Амазонки, высокое качество

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

16-битная пиксель-арт, снаружи кофейни в дождливый день, свет из окон, кинематографический кадр, HDR

Симпатичный изометрический остров, коттедж в лесу, водопад, животные, сделанные блендером

Женщина, сидящая за столом для завтрака, детализированные черты лица, старинная фотография, цветная пленка Fuji, 2000 г.

Выразительная картина маслом, изображающая броска баскетболиста в виде взрыва туманности.

«Калан с жемчужной сережкой» Иоганнес Вермеер

Футуристическая обувь, вдохновленная God of War от Nike, гиперреалистичная, супердетализированная, блестящая, 3D.

Попробуй сам

ДАЛЛ-Э 2

Вы можете создавать собственные образы с помощью DALL-E 2 здесь. OpenAI дает вам 50 бесплатных кредитов при регистрации и 25 дополнительных кредитов в начале каждого месяца для игры.

Стабильная диффузия

Онлайн-версия Stable Diffusion доступна здесь бесплатно. При желании вы также можете загрузить предварительно рассчитанную модель, предоставленную создателями Stable Diffusion, на свой компьютер и запустить ее. Кроме того, вы можете использовать этот блокнот Colab для реализации Stable Diffusion API на основе кода.

Середина пути

Midjourney — еще одна известная модель генерации изображений, доступная через их Discord-сервер. Они дают 25 кредитов каждой новой учетной записи Discord для экспериментов, а их Discord Bot можно пригласить на ваш собственный сервер, чтобы вы могли похвастаться своими творениями перед друзьями.

Заключение

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

Рекомендации

  1. КЛИП — https://arxiv.org/abs/2103.00020
  2. Языковая модель обучения следованию инструкциям — https://arxiv.org/abs/2203.02155
  3. ДАЛЛ-Э 2 — https://arxiv.org/abs/2204.06125
  4. ГЛАЙД — https://arxiv.org/abs/2112.10741
  5. https://openai.com/blog/dall-e-2-pre-training-mitigations/
  6. https://medium.com/mlearning-ai/dall-e-2-vs-midjourney-vs-stable-diffusion-8eb9eb7d20be
  7. https://www.assemblyai.com/blog/how-dall-e-2-actually-works/
  8. https://medium.com/augmented-startups/how-does-dall-e-2-work-e6d492a2667f
  9. https://blog.roboflow.com/what-is-a-transformer/
  10. https://huggingface.co/docs/diffusers/stable_diffusion