Нейросеть DALL·E обучили генерации рисунков по текстовому описанию

Компания OpenAI представила нейросеть DALL·E — разновидность языковой модели GPT-3 с 12 миллиардами параметров, обученную генерации изображений на основе текстовых описаний. Название нейросети — это комбинация из двух слов, отсылающая к Сальвадору Дали и к полнометражному мультфильму WALL-E студии Pixar. В качестве обучающего набора сети используются готовые пары из текста и картинки.

Подобно GPT-3, DALL·E представляет собой языковую модель на трансформерной архитектуре. На её вход подаётся текст и соответствующее изображение в виде единого потока данных, содержащего до 1280 токенов («лексических единиц» для данной языковой системы). В модели DALL·E предусмотрены токены как для текста, так и для изображения. Так, на текст («заголовок» рисунка) отводится до 256 токенов с BPE-кодированием (byte-pair encoding, кодирование по парам байтов) из словаря размером 16384 единицы, а на картинку предусмотрено до 1024 токенов с размером словаря 8192.

Задание для нейросети: кресло в форме авокадо.

Процедура обучения позволяет сети DALL·E не только генерировать изображения «с нуля» по текстовому описанию, но и восстанавливать прямоугольные участки уже имеющихся рисунков сообразно заголовку.

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

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

Изображения, сгенерированные нейросетью по текстовому заданию «‎Улитка, сделанная из арфы. Улитка с текстурой арфы».

Также сеть обладает некоторыми знаниями в области географии и истории техники. Так, она берётся за изображение «национальной кухни» или «дикой природы» в зависимости от страны. В этом случае, правда, решения пока получаются несколько стереотипными (в Австралии — кенгуру, в России — пельмени…). Более интересно у сети получается воссоздавать внешний вид технических устройств (телефона, фотокамеры, автомобиля), копируя характерный стиль разных эпох — от 1900-х до предполагаемого «отдалённого будущего».

В заметке о системе DALL·E в блоге OpenAI приведены несколько интерактивных примеров, в которых можно самостоятельно менять задания для нейросети, комбинируя ключевые слова из предзаданных наборов (например, улитка в форме арфыёжик в форме подводной лодки) и в ответ получать сгенерированные коллекции нейрорисунков.

Изображения телефонов различных эпох от нейросети.
Картинки, сгенерированные по текстовому заданию «‎Иллюстрация о том, как младенец-дайкон в пачке выгуливает собаку».
Сергей Шапиро :