Contrastive Language-Image Pre-training (CLIP) — це метод навчання пари моделей нейронних мереж, одна з яких призначена для розуміння зображень, а інша — для розуміння тексту, з використанням контрастової цільової функції. Цей метод уможливив широке застосування в багатьох галузях, включаючи кросмодальний пошук, генерацію зображень за текстом, та естетичне ранжування.

Алгоритм

Метод CLIP навчає пару моделей контрастово. Одна модель приймає фрагмент тексту як вхідні дані та видає один вектор, що представляє його семантичний зміст. Інша модель приймає зображення і аналогічно видає один вектор, що представляє його візуальний зміст. Моделі навчаються так, щоб вектори, що відповідають семантично схожим парам текст-зображення, були розташовані близько один до одного у спільному векторному просторі, тоді як вектори несхожих пар знаходилися далеко один від одного.

Для навчання пари моделей CLIP спочатку готують великий набір даних пар зображення-підпис. Під час навчання моделям пред'являються батчі з пар зображення-підпис. Нехай вихідні дані текстової та візуальної моделей будуть відповідно . Два вектори вважаються «схожими», якщо вони мають великий скалярний добуток.

Функція втрат на даному батчі, — це багатокласові N-парні втрати (), які являють собою симетричні втрати крос-ентропії над оцінками схожості:

По суті, ця функція втрат стимулює збільшення скалярного добутку між відповідними векторами зображення та тексту (), водночас перешкоджаючи високим значенням скалярного добутку для невідповідних пар. Параметр — це температура, яка в оригінальній моделі CLIP параметризується як , де є навчальним параметром.

Можливі й інші функції втрат. Наприклад, Sigmoid CLIP (SigLIP) пропонує наступну функцію втрат:

де — це від'ємна логарифмічна сигмоїдна функція втрат, а символ дельти Дірака дорівнює 1, якщо , і 0 в іншому випадку.

Моделі CLIP Хоча оригінальна модель була розроблена компанією OpenAI, згодом моделі навчали й інші організації.

Модель зображень

Моделі кодування зображень, що використовуються в CLIP, зазвичай є візуальними трансформерами (ViT). Схема найменування цих моделей часто відображає конкретну архітектуру ViT. Наприклад, «ViT-L/14» означає «vision transformer large» (великий візуальний трансформер порівняно з іншими моделями тієї ж серії) з розміром патча 14, що означає, що перед обробкою трансформером зображення розділяється на патчі розміром 14 на 14 пікселів. Показники розміру варіюються від B, L, H, G (base, large, huge, giant) у вказаному порядку.

Окрім ViT, візуальною моделлю зазвичай є згорткова нейронна мережа, така як ResNet (в оригінальній серії OpenAI) або ConvNeXt (у серії моделей OpenCLIP від LAION).

Оскільки вихідні вектори моделі зображень і текстової моделі повинні мати однакову довжину, обидві моделі мають вектори виходу фіксованої довжини, що в оригінальному звіті називається «розмірністю вкладення» ().

Наприклад в моделях ResNet розмірності вкладень варіюються від 512 до 1024, а для ViTs, від 512 до 768. +Моделі випущені OpenAIНазваРоздільна здатністьПараметрів (загалом, мільйонів)Параметри (зір)Параметри (текст)Розмірність вкладенняРозмір (MB)Дата випускуRN5022410238.363.110242442021-01RN10122412056.363.15122782021-03RN50x428817887.190.76404022021-03RN50x16384291167.3123.07686302021-07RN50x64448623420.4201.8102412602022-01ViT-B/3222415187.863.15123382021-01ViT-B/1622415086.263.15123352021-07ViT-L/14224428304.0123.07688902022-01ViT-L/[email protected]

Коментарі

Примітки