FROMAGe: самый простой способ сделать мультимодального чатбота



Авторам потребовалось всего 24 часа чтобы на 1 GPU обучить это чудо! Идея очень похожа на Flamingo, но ещё проще и не требует больших датасетов.



За основу взяли замороженные ViT и OPT, а чтобы склеить их вместе — добавляют два обучаемых линейных слоя для отображения эмбеддингов (text2image и image2text). Затем визуальные эмбеддинги картинок подаются вместо псевдо-текстовых токенов. Для поиска и вывода картинок добавляется новый спец-токен [RET].



Для обучения используют общедоступный датасет CC3M из пар картинка-текст. В качестве лосса: CrossEntropy по тексту + контрастив лосс для токена [RET] (поиск картинок).



Код и чекпоинты выложены в открытый доступ, прям все 11 мегабайтов весов залиты на гитхаб 😂



P.S. Думаю, что если в GPT-4 добавят поддержку картинок, то это будет именно так.



Статья, GitHub, блог, демо