TG Telegram Group & Channel
gonzo-обзоры ML статей | United States America (US)
Create: Update:

[Google CoCa] CoCa: Contrastive Captioners are Image-Text Foundation Models
Jiahui Yu, Zirui Wang, Vijay Vasudevan, Legg Yeung, Mojtaba Seyedhosseini, Yonghui Wu
Статья: https://arxiv.org/abs/2205.01917
Пост в блоге: https://ai.googleblog.com/2022/05/image-text-pre-training-with.html
Модель: нет :(
Код: нет :(
Реимплементация от lucidrains: https://github.com/lucidrains/CoCa-pytorch

Важная недавняя мультимодальная модель от Гугла, про которую стоит рассказать.

Движуха с тем, что сейчас называется foundation models, развивается и усложняется. Авторы рассматривают варианты картиночных моделей с natural language supervision, куда относят и обычную классификацию.

Начиналось всё когда-то (когда термина foundation model и в помине не было) с предобученных на классификации с кросс-энтропийным лоссом single-encoder models, те же предобученные VGG и т.п. Использовать эти одиночные модели на сложных задачах, требующих больше одной модальности было не очень просто и эффективно.

Потом пошли бимодальные модели, часто выполненные в виде dual-encoder models, обученные контрастным лоссом, например, CLIP (https://hottg.com/gonzo_ML/665) и ALIGN (https://hottg.com/gonzo_ML/679). Они были полезнее для различных кросс-модальных историй, но всё равно не очень подходили для сложных зрительно-языковых задач типа VQA, где требовались совмещённые картиночные и языковые репрезентации (в этих моделях они были разделены).

Параллельно существовала ветка encoder-decoder моделей, например, с картинкой на входе энкодера, текстом на входе декодера, и текстом на выходе декодера. Лосс обычный, который используется в авторегрессионных декодерах, здесь его называют captioning loss. Выход декодера можно было использовать в качестве репрезентаций для мультимодальных задач. Такие модели были хороши (SimVLM, например, https://arxiv.org/abs/2108.10904), но не давали отдельных репрезентаций для текста (было сразу замешивание с репрезентациями картиночного энкодера).

В данной работе эти три парадигмы объединяются и авторы получают одну модель, обладающую возможностями всех трёх подходов. Новое семейство моделей называется Contrastive Captioners (CoCa). Это по сути модифицированная архитектура энкодер-декодер, обучающаяся одновременно на контрастном и генеративном (captioning) лоссе.

Картиночный энкодер в CoCa по дефолту ViT (https://hottg.com/gonzo_ML/434), но может быть что угодно. Декодер трансформера разделяется на две части: унимодальный декодер (который получает только текст и на картиночные эмбеддинги никак не смотрит, n_uni слоёв) и мультимодальный декодер (который умеет делать cross-attention на эмбеддинги картиночного энкодера, n_multi слоёв).

Унимодальные картиночный энкодер и текстовый декодер обучаются через контрастный лосс (соответствие картинки и описания), а мультимодальный декодер обучается через captioning loss. Соответственно, в картиночном энкодере получаются эмбеддинги картинок, в унимодальном декодере эмбеддинги текстов, а в мультимодальном декодере мультимодальные картиночно-текстовые эмбеддинги. Под разные задачи можно брать что нужно. Профит!

Контрастный лосс считается между эмбеддингом обучаемого [CLS] токена, добавляемого к тексту, и эмбеддингом, получаемым из картиночных эмбеддингов с помощью задаче-специфичного pooler’а (однослойный self-attention с n_query обучаемыми Q, а K/V попадают из энкодера). Этот задаче-специфичный пулер выступает своего рода адаптером для новых задач. Для constrastive loss n_query=1, а для generative loss n_query=256.

В работе реализованы три варианта данной архитектуры разного размера. CoCa-Base (86M image encoder + 297M text decoder = 383M параметров), CoCa-Large (303M+484M=787M) и просто CoCa (1B+1.1B=2.1B). Везде n_uni = n_multi и для самой большой модели они равны 18, а картиночный энкодер в ней на 40 слоёв. Использовали гугловый фреймворк Lingvo (https://github.com/tensorflow/lingvo).

[Google CoCa] CoCa: Contrastive Captioners are Image-Text Foundation Models
Jiahui Yu, Zirui Wang, Vijay Vasudevan, Legg Yeung, Mojtaba Seyedhosseini, Yonghui Wu
Статья: https://arxiv.org/abs/2205.01917
Пост в блоге: https://ai.googleblog.com/2022/05/image-text-pre-training-with.html
Модель: нет :(
Код: нет :(
Реимплементация от lucidrains: https://github.com/lucidrains/CoCa-pytorch

Важная недавняя мультимодальная модель от Гугла, про которую стоит рассказать.

Движуха с тем, что сейчас называется foundation models, развивается и усложняется. Авторы рассматривают варианты картиночных моделей с natural language supervision, куда относят и обычную классификацию.

Начиналось всё когда-то (когда термина foundation model и в помине не было) с предобученных на классификации с кросс-энтропийным лоссом single-encoder models, те же предобученные VGG и т.п. Использовать эти одиночные модели на сложных задачах, требующих больше одной модальности было не очень просто и эффективно.

Потом пошли бимодальные модели, часто выполненные в виде dual-encoder models, обученные контрастным лоссом, например, CLIP (https://hottg.com/gonzo_ML/665) и ALIGN (https://hottg.com/gonzo_ML/679). Они были полезнее для различных кросс-модальных историй, но всё равно не очень подходили для сложных зрительно-языковых задач типа VQA, где требовались совмещённые картиночные и языковые репрезентации (в этих моделях они были разделены).

Параллельно существовала ветка encoder-decoder моделей, например, с картинкой на входе энкодера, текстом на входе декодера, и текстом на выходе декодера. Лосс обычный, который используется в авторегрессионных декодерах, здесь его называют captioning loss. Выход декодера можно было использовать в качестве репрезентаций для мультимодальных задач. Такие модели были хороши (SimVLM, например, https://arxiv.org/abs/2108.10904), но не давали отдельных репрезентаций для текста (было сразу замешивание с репрезентациями картиночного энкодера).

В данной работе эти три парадигмы объединяются и авторы получают одну модель, обладающую возможностями всех трёх подходов. Новое семейство моделей называется Contrastive Captioners (CoCa). Это по сути модифицированная архитектура энкодер-декодер, обучающаяся одновременно на контрастном и генеративном (captioning) лоссе.

Картиночный энкодер в CoCa по дефолту ViT (https://hottg.com/gonzo_ML/434), но может быть что угодно. Декодер трансформера разделяется на две части: унимодальный декодер (который получает только текст и на картиночные эмбеддинги никак не смотрит, n_uni слоёв) и мультимодальный декодер (который умеет делать cross-attention на эмбеддинги картиночного энкодера, n_multi слоёв).

Унимодальные картиночный энкодер и текстовый декодер обучаются через контрастный лосс (соответствие картинки и описания), а мультимодальный декодер обучается через captioning loss. Соответственно, в картиночном энкодере получаются эмбеддинги картинок, в унимодальном декодере эмбеддинги текстов, а в мультимодальном декодере мультимодальные картиночно-текстовые эмбеддинги. Под разные задачи можно брать что нужно. Профит!

Контрастный лосс считается между эмбеддингом обучаемого [CLS] токена, добавляемого к тексту, и эмбеддингом, получаемым из картиночных эмбеддингов с помощью задаче-специфичного pooler’а (однослойный self-attention с n_query обучаемыми Q, а K/V попадают из энкодера). Этот задаче-специфичный пулер выступает своего рода адаптером для новых задач. Для constrastive loss n_query=1, а для generative loss n_query=256.

В работе реализованы три варианта данной архитектуры разного размера. CoCa-Base (86M image encoder + 297M text decoder = 383M параметров), CoCa-Large (303M+484M=787M) и просто CoCa (1B+1.1B=2.1B). Везде n_uni = n_multi и для самой большой модели они равны 18, а картиночный энкодер в ней на 40 слоёв. Использовали гугловый фреймворк Lingvo (https://github.com/tensorflow/lingvo).


>>Click here to continue<<

gonzo-обзоры ML статей




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)