CLIP
CLIP (Contrastive Language-Image Pre-training) — нейросетевая модель, разработанная компанией OpenAI (организация, зарегистрированная в США; деятельность на территории РФ не регулируется российским законодательством, однако OpenAI не входит в реестр нежелательных организаций или иноагентов в РФ), предназначенная для обучения визуальных представлений с использованием текстовых описаний. Модель основана на принципе контрастивного обучения, позволяющего сопоставлять изображения и текстовые подписи к ним в едином векторном пространстве. CLIP была представлена в январе 2021 года и стала одной из ключевых разработок в области мультимодального искусственного интеллекта, объединяющего компьютерное зрение и обработку естественного языка.
Архитектура и принцип работы
Контрастивное обучение
CLIP обучается на парах «изображение — текст», используя метод контрастивного обучения. Модель состоит из двух независимых энкодеров: визуального (на основе архитектуры Vision Transformer или ResNet) и текстового (на основе Transformer). В процессе обучения модель стремится максимизировать косинусное сходство между правильными парами изображений и текстов и минимизировать сходство между неправильными. В результате CLIP формирует общее семантическое пространство, где близкие по смыслу изображения и тексты оказываются рядом.
Компоненты модели
- Визуальный энкодер — обрабатывает изображения, преобразуя их в векторные представления. В оригинальной реализации использовались ResNet-50, ResNet-101 и Vision Transformer (ViT) различных размеров.
- Текстовый энкодер — преобразует текстовые описания (обычно до 77 токенов) в векторы той же размерности. Использует архитектуру Transformer с 12 слоями.
- Проекционные слои — линейные преобразования, приводящие векторы к единой размерности (обычно 512 или 768).
Обучение
Обучение CLIP проводилось на датасете WebImageText, содержащем 400 миллионов пар «изображение — текст», собранных из открытых источников в интернете. Модель обучалась с использованием 256 графических процессоров (GPU) в течение нескольких недель. Размер батча составлял 32 768 пар, что критически важно для контрастивного обучения. Для повышения устойчивости применялись аугментации данных: случайное кадрирование, изменение цвета, размытие и другие.
Возможности и применение
Zero-shot классификация
CLIP способна выполнять классификацию изображений без предварительного обучения на конкретных классах (zero-shot learning). Для этого пользователь задаёт текстовые промпты, например: «фотография кошки», «фотография собаки». Модель вычисляет сходство между изображением и каждым промптом, выбирая наиболее подходящий. Этот подход позволяет CLIP адаптироваться к новым задачам без переобучения.
Поиск изображений по тексту
Модель может использоваться для поиска изображений по текстовому запросу. Достаточно закодировать все изображения в базе данных и сравнить их с вектором запроса. CLIP показывает высокую точность даже при сложных или абстрактных запросах, например: «человек, играющий на саксофоне в дождливый день».
Генерация изображений
CLIP часто применяется в комбинации с генеративными моделями, такими как DALL-E, Stable Diffusion или VQGAN, для управления процессом генерации. В этом случае CLIP выступает в роли «критика», оценивающего соответствие сгенерированного изображения текстовому описанию. Это позволяет создавать изображения, точно соответствующие заданному тексту.
Другие применения
- Классификация медицинских изображений — CLIP адаптируют для анализа рентгеновских снимков и МРТ.
- Анализ видео — модель применяется для поиска ключевых кадров по текстовому описанию.
- Робототехника — CLIP используется для навигации роботов на основе естественно-языковых команд.
- Модерация контента — модель может выявлять нежелательные изображения по текстовым описаниям.
Ограничения и критика
Чувствительность к промптам
CLIP очень чувствительна к формулировке текстового запроса. Небольшие изменения в промпте могут существенно повлиять на результат. Например, запрос «фотография яблока» и «изображение яблока» могут дать разные результаты. Для повышения точности часто используется техника ансамблирования промптов.
Предвзятость (bias)
Поскольку CLIP обучалась на данных из интернета, модель унаследовала социальные стереотипы и предвзятости, присутствующие в этих данных. Исследования показали, что CLIP может ассоциировать определённые профессии с конкретными полами или расами, а также демонстрировать культурные искажения. Это ограничивает применение модели в чувствительных областях без дополнительной калибровки.
Ограниченная точность
Несмотря на впечатляющие результаты в zero-shot задачах, CLIP уступает специализированным моделям, обученным на конкретных датасетах. Например, для классификации пород собак модель может ошибаться чаще, чем модель, обученная исключительно на изображениях собак.
Вычислительные требования
Оригинальная модель CLIP требует значительных вычислительных ресурсов: для инференса необходимы GPU с большим объёмом памяти. Существуют облегчённые версии (например, CLIP-ViT-B/32), но они жертвуют точностью ради скорости.
Варианты и модификации
Официальные версии OpenAI
OpenAI выпустила несколько вариантов CLIP, различающихся архитектурой визуального энкодера:
- CLIP-RN50 — на основе ResNet-50 (самая быстрая, но менее точная).
- CLIP-RN101 — на основе ResNet-101.
- CLIP-ViT-B/32 — на основе Vision Transformer с размером патча 32×32.
- CLIP-ViT-B/16 — на основе Vision Transformer с размером патча 16×16 (более точная, но медленнее).
- CLIP-ViT-L/14 — на основе Vision Transformer с большим количеством параметров (самая точная, но требовательная к ресурсам).
Сторонние реализации
- OpenCLIP — открытая реализация CLIP, обученная на различных датасетах (LAION-400M, LAION-5B). Доступна в открытом доступе.
- SigLIP — модификация от Google, использующая сигмоидную функцию потерь вместо контрастивной, что позволяет обучать модель с меньшими вычислительными затратами.
- CLIP-as-service — сервисы для развёртывания CLIP в облаке, предоставляющие API для поиска и классификации.
Влияние на индустрию
CLIP стала одной из самых влиятельных моделей в области мультимодального ИИ. Она заложила основу для многих последующих разработок:
- DALL-E 2 и DALL-E 3 — генеративные модели, использующие CLIP для понимания текстовых запросов.
- Stable Diffusion — модель, в которой CLIP используется как текстовый энкодер.
- Segment Anything (Meta) — модель для сегментации изображений, использующая CLIP для понимания контекста.
CLIP также стимулировала развитие направления zero-shot обучения и мультимодальных моделей, которые стали основой для современных систем искусственного интеллекта, способных одновременно работать с текстом, изображениями, аудио и видео.
Источники
- Radford, A., Kim, J. W., Hallacy, C., et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. OpenAI.
- Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. Google Research.
- Ilharco, G., Wortsman, M., Wightman, R., et al. (2021). OpenCLIP. GitHub repository.
- Zhai, X., Kolesnikov, A., Houlsby, N., et al. (2023). Sigmoid Loss for Language Image Pre-Training. Google Research.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →