Перейти до вмісту

Contrastive Language-Image Pre-training

Матеріал з Вікіпедії — вільної енциклопедії.
CLIP
Типvision-language modeld[1] і програмне забезпечення Редагувати інформацію у Вікіданих
РозробникOpenAI
Перший випуск5 січня 2021
Мова програмуванняPython
ЛіцензіяMIT License
Репозиторійgithub.com/OpenAI/CLIP
Вебсайтopenai.com/research/clip

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

Алгоритм

[ред. | ред. код]
Огляд архітектури

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

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

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

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

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

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

Моделі CLIP

[ред. | ред. код]

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

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

[ред. | ред. код]
Архітектура Vision Transformer. Вихідний вектор Rep<CLS> використовується як кодування зображення для CLIP.

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

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

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

Примітки

[ред. | ред. код]
  1. а б A Dive into Vision-Language ModelsHugging Face.
  2. а б в Radford, Alec; Kim, Jong Wook; Hallacy, Chris; Ramesh, Aditya; Goh, Gabriel; Agarwal, Sandhini; Sastry, Girish; Askell, Amanda; Mishkin, Pamela; Clark, Jack; Krueger, Gretchen; Sutskever, Ilya (1 липня 2021). Learning Transferable Visual Models From Natural Language Supervision. Proceedings of the 38th International Conference on Machine Learning. PMLR. с. 8748—8763.
  3. Hendriksen, Mariya; Bleeker, Maurits; Vakulenko, Svitlana; van Noord, Nanne; Kuiper, Ernst; de Rijke, Maarten (2022). Extending CLIP for Category-to-Image Retrieval in E-Commerce. У Hagen, Matthias; Verberne, Suzan; Macdonald, Craig; Seifert, Christin; Balog, Krisztian; Nørvåg, Kjetil; Setty, Vinay (ред.). Advances in Information Retrieval. Lecture Notes in Computer Science (англ.). Т. 13185. Cham: Springer International Publishing. с. 289—303. doi:10.1007/978-3-030-99736-6_20. ISBN 978-3-030-99736-6.
  4. Stable Diffusion Repository on GitHub. CompVis - Machine Vision and Learning Research Group, LMU Munich. 17 вересня 2022. Архів оригіналу за 18 січня 2023. Процитовано 17 вересня 2022.
  5. LAION-AI/aesthetic-predictor, LAION AI, 6 вересня 2024, процитовано 8 вересня 2024
  6. Sohn, Kihyuk (2016). Improved Deep Metric Learning with Multi-class N-pair Loss Objective. Advances in Neural Information Processing Systems. Curran Associates, Inc. 29.
  7. Zhai, Xiaohua; Mustafa, Basil; Kolesnikov, Alexander; Beyer, Lucas (2023). Sigmoid Loss for Language Image Pre-Training. IEEE/CVF International Conference on Computer Vision (ICCV). с. 11975—11986.
  8. Liu, Zhuang; Mao, Hanzi; Wu, Chao-Yuan; Feichtenhofer, Christoph; Darrell, Trevor; Xie, Saining (2022). A ConvNet for the 2020s. IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). с. 11976—11986.
  9. Ilharco, Gabriel; Wortsman, Mitchell; Wightman, Ross; Gordon, Cade; Carlini, Nicholas; Taori, Rohan; Dave, Achal; Shankar, Vaishaal; Namkoong, Hongseok (July 2021), OpenCLIP, Zenodo, Bibcode:2021zndo...5143773I, doi:10.5281/zenodo.5143773, процитовано 6 вересня 2024