Автор: Ксения Рябинова, Марк Страхов

State-of-the-Art модели для CV предобучают на датасетах с фиксированным количеством лейблов. Вспомним Imagenet: в нем больше 21-й тысячи классов с лейблами “water snake”, “triceratops” и многими другими. Создание таких датасетов — очень трудоемкий процесс. А в NLP сейчас для предобучения языковой модели данные не размечают. Берут огромные наборы текстов из интернета и обучают прямо на них. Вот бы претрейн CV моделей можно было бы делать как в NLP…

Так и появилась модель CLIP — Contrastive Language-Image Pre-training. Это модель, которая претренировалась на огромном датасете из пар (Картинка, Текст).

Датасет

Итак, мы не хотим размечать кучу данных для претрейна. Как тогда нам поступить? Можно спарсить картинки из интернета и учиться на них с помощью self-supervised методов (например, поворачивать картинку на n градусов и пытаться предсказать этот n). Очень часто вместе с картинкой идет какой-то текст (описание этой картинки). Такой текст может сообщить полезную информацию об объектах на картинке.

Картинки с подписями, найденные в гугле по запросу “кот прыгнул на дерево”

Картинки с подписями, найденные в гугле по запросу “кот прыгнул на дерево”

Авторы CLIP создали датасет из 400 миллионов пар <картинка>:<текст>. Они сконструировали около 500 тысяч запросов, с помощью которых постарались максимально покрыть все многообразие визуальных концепций. Каждый запрос аугментировали с использованием синонимов. На каждый из запросов приходилось около 20 тысяч пар <картинка>:<текст>.  Полученный набор данных имеет такое же общее количество слов, как и набор данных WebText, использованный для обучения GPT-2.

Итак, у нас есть датасет с 400 миллионами пар <картинка>:<текст>. Давайте теперь разберемся, как можно обучить претрейн на таком наборе.

Модель

Модель содержить энкодер для текстов, энкодер для картинок и projection head.

Для текстов они использовали GPT2, а для картинок было два варианта:

Схематически итоговая модель выглядит так:

Untitled

Давайте подробнее разберем блоки с моделями.

Модифицированный ResNet

Эту модель изменили больше всего: