2022-06-24 12:01:38
DALL-E 2 -> Imagen ->
PartiВ последнее время все привыкли, что лучшие text-to-image модели основаны на диффузии. Таковыми были и DALL-E 2, и Imagen. Но тут Google представил еще одну свою text-to-image модель: Parti. Она не использует диффузию, но при этом генерит отличные картинки по текстовым запросам. Примеры ее работы — на 1 картинке к посту.
Только посмотрите, как круто модель передает все детали!Архитектура Parti:
Устроена Parti довольно просто (см. 2 картинку к посту). Идея ее работы такая же, как у Seq2Seq Transformer'ов для задачи машинного перевода (MT). Я не буду здесь рассказывать про Seq2Seq архитектуру для MT, но если вам хочется подробнее узнать про нее, то у меня есть лекция в DLS о Seq2Seq и задаче MT.
Так вот, Parti использует для генерации картинок ту же идею. На вход encoder'у, как и в задаче MT, подается текст, а на выходе decoder генерирует последовательность токенов изображения.
Осталось понять, что это за "токены изображения" и как из них получить итоговую картинку.
Для получения токенов по изображениям и обратно авторы обучили Autoencoder-like модель ViT-VQGAN. Эта модель учится переводить картинку в последовательность токенов и обратно. В итоге во время обучения decoder Seq2Seq части учится выдавать последовательность токенов картинки по текстовому запросу, а затем эти токены с помощью генеративной части ViT-VQGAN (detokenizer) переводятся в итоговое изображение.
Вот такая простая идея. Она не новая: на такой же идее image tokenizer + autoregressive model были основаны и прошлые подходы к генерации изображений. Среди них — первая версия Dall-E, CogView, Make-A-Scene.
Еще несколько поинтов о Parti:
- Модель, описанная выше, учится генерировать картинки размера 256х256. После генерации ее растягивают до размера 1024х1024 с помощью модели для super-resolution. Такая же техника применялась и в Imagen и в многих других моделях для text-to-image.
- Авторы обучили несколько моделей Parti с разным количеством параметров: от 350М до 20В. Как меняется качество генерации при увеличении количества параметров, видно на третьей картинке к посту (оочень сильно!)
- В Seq2Seq части перед обучением модели генерировать картинки по тексту авторы предобучали encoder. Можно сказать, что в качестве encoder был взят предобученный BERT. Это помогает улучшить результаты больших моделей (с 3B и 20B параметров)
- Parti отлично показывает себя в zero-shot режиме на датасете MS-COCO. Более того, авторы также протестировали модель на описаниях картинок из датасета COCO. Описания в COCO отличаются тем, что они намного более длинные (см. 4 картинку к посту). Parti вл время обучения не видела таких длинных описаний, но, при этом, она хорошо справляется с генерацией картинок по ним. По этому умению Parti опережает Imagen.
Вот такая вот модель. То, что Parti офигенная и работает не на диффузии, доказывает, что не нужно выкидывать все прошлые идеи для генерации картинок и восхвалять одну диффузию. Это напоминает еще о том, как становились популярными Visual Transformer'ы: многие называли их "убийцами сверток" и считали, что свертки больше не нужны. Но время доказало обратное: были придуманы хорошие сверточные и даже полносвязные сети для работы с картинками.
Хороший повод для размышлений =)
Ссылки:
Блог Google research
Статья на arxiv
@dl_stories
1.1K views09:01