FROMAGe: самый простой способ сделать мультимодального чатбота
Авторам потребовалось всего 24 часа чтобы на 1 GPU обучить это чудо! Идея очень похожа на Flamingo, но ещё проще и не требует больших датасетов.
За основу взяли замороженные ViT и OPT, а чтобы склеить их вместе — добавляют два обучаемых линейных слоя для отображения эмбеддингов (text2image и image2text). Затем визуальные эмбеддинги картинок подаются вместо псевдо-текстовых токенов. Для поиска и вывода картинок добавляется новый спец-токен [RET].
Для обучения используют общедоступный датасет CC3M из пар картинка-текст. В качестве лосса: CrossEntropy по тексту + контрастив лосс для токена [RET] (поиск картинок).
Код и чекпоинты выложены в открытый доступ, прям все 11 мегабайтов весов залиты на гитхаб 😂
P.S. Думаю, что если в GPT-4 добавят поддержку картинок, то это будет именно так.
Статья, GitHub, блог, демо
Авторам потребовалось всего 24 часа чтобы на 1 GPU обучить это чудо! Идея очень похожа на Flamingo, но ещё проще и не требует больших датасетов.
За основу взяли замороженные ViT и OPT, а чтобы склеить их вместе — добавляют два обучаемых линейных слоя для отображения эмбеддингов (text2image и image2text). Затем визуальные эмбеддинги картинок подаются вместо псевдо-текстовых токенов. Для поиска и вывода картинок добавляется новый спец-токен [RET].
Для обучения используют общедоступный датасет CC3M из пар картинка-текст. В качестве лосса: CrossEntropy по тексту + контрастив лосс для токена [RET] (поиск картинок).
Код и чекпоинты выложены в открытый доступ, прям все 11 мегабайтов весов залиты на гитхаб 😂
P.S. Думаю, что если в GPT-4 добавят поддержку картинок, то это будет именно так.
Статья, GitHub, блог, демо