OpenCLIP
OpenCLIP — это открытая реализация модели CLIP (Contrastive Language-Image Pre-training), разработанная исследовательской группой LAION (Large-scale Artificial Intelligence Open Network) и сообществом. OpenCLIP представляет собой набор инструментов, предобученных весов и кода для обучения и использования моделей, способных сопоставлять текстовые и визуальные данные, обучаясь на парах «изображение — подпись». Проект является свободным программным обеспечением и распространяется под лицензией MIT.
История
Модель CLIP была представлена компанией OpenAI в январе 2021 года. Она обучалась на 400 миллионах пар «изображение — текст», собранных из интернета, и продемонстрировала способность к нуль-шотовой (zero-shot) классификации изображений, то есть к распознаванию объектов без предварительного обучения на конкретных классах. Однако OpenAI не опубликовала полный код обучения и исходные наборы данных, что ограничивало воспроизводимость и дальнейшее развитие технологии.
В ответ на это сообщество исследователей, в первую очередь группа LAION, запустило проект OpenCLIP. Целью проекта было создание открытой альтернативы, включающей:
- Полный код обучения модели.
- Предобученные веса на различных архитектурах.
- Инструменты для оценки и использования.
Первый релиз OpenCLIP состоялся в 2021 году. В 2022 году была опубликована статья «OpenCLIP: A Reproducible and Open Implementation of CLIP», в которой описывались детали обучения и результаты. Проект быстро приобрёл популярность в академической среде и индустрии, став основой для многих последующих исследований в области мультимодального обучения.
Архитектура
OpenCLIP, как и оригинальный CLIP, основан на двухмодульной архитектуре:
Текстовый энкодер
Обрабатывает текстовые описания. В качестве текстового энкодера обычно используется трансформер (например, архитектура GPT или BERT), который преобразует последовательность токенов в вектор фиксированной размерности.
Визуальный энкодер
Обрабатывает изображения. Визуальным энкодером может быть:
- ResNet (Residual Network) — свёрточная нейронная сеть с остаточными связями.
- ViT (Vision Transformer) — архитектура на основе трансформера, применяемая к изображениям, разбитым на патчи.
Функция потерь
Обучение модели происходит с использованием контрастивной функции потерь (contrastive loss). Для каждой пары «изображение — текст» в батче вычисляются векторы обоих энкодеров. Затем модель учится увеличивать косинусное сходство между правильными парами и уменьшать его между неправильными. Это позволяет модели выучить общее семантическое пространство, где изображения и их текстовые описания находятся близко друг к другу.
Наборы данных
OpenCLIP обучается на открытых наборах данных, в первую очередь на LAION-400M и LAION-5B. Эти наборы содержат сотни миллионов и миллиарды пар «изображение — текст», собранных из интернета. Данные проходят фильтрацию для удаления нежелательного контента, но, как и в случае с любыми большими интернет-наборами, могут содержать шум, предвзятости и неточности.
Предобученные модели
OpenCLIP предоставляет множество предобученных моделей, отличающихся:
- Архитектурой визуального энкодера (ResNet, ViT различных размеров).
- Размером (количество параметров от десятков миллионов до миллиардов).
- Набором данных (LAION-400M, LAION-5B, DataComp-1B и другие).
- Разрешением входных изображений (224x224, 336x336, 384x384 пикселей).
Примеры популярных моделей OpenCLIP:
ViT-B/32— базовая модель ViT с размером патча 32x32.ViT-L/14— большая модель ViT с размером патча 14x14.ViT-H/14— ещё более крупная модель.ResNet-50— модель на основе ResNet.
Применение
OpenCLIP используется в широком спектре задач:
Нуль-шотовая классификация
Модель может классифицировать изображения по произвольным текстовым описаниям классов без дополнительного обучения. Например, для изображения кошки модель может вычислить сходство с текстами «фотография кошки» и «фотография собаки» и выбрать наиболее подходящий.
Поиск изображений по тексту
Пользователь может ввести текстовый запрос, и модель найдёт наиболее релевантные изображения в базе данных.
Поиск текста по изображению
Обратная задача: по изображению найти наиболее подходящее текстовое описание.
Генерация изображений
OpenCLIP часто используется в качестве компонента в моделях генерации изображений, таких как Stable Diffusion. В этом случае CLIP выступает в роли текстового энкодера, который преобразует текстовый запрос в вектор, управляющий процессом генерации.
Мультимодальные исследования
OpenCLIP служит основой для многих исследовательских проектов, связанных с пониманием изображений и текста, обучением с подкреплением, робототехникой и другими областями.
Критика и ограничения
Предвзятость (bias)
Как и любая модель, обученная на больших интернет-данных, OpenCLIP может воспроизводить и усиливать социальные стереотипы и предвзятости, присутствующие в данных. Например, модель может ассоциировать определённые профессии с конкретными полами или этническими группами.
Недостаточная точность
Несмотря на впечатляющие результаты, OpenCLIP может ошибаться в сложных или неоднозначных случаях, особенно при работе с изображениями, содержащими мелкие детали или абстрактные понятия.
Вычислительные ресурсы
Обучение и даже использование больших моделей OpenCLIP требует значительных вычислительных мощностей (GPU с большим объёмом памяти), что может быть недоступно для многих исследователей и разработчиков.
Качество данных
Наборы данных LAION, несмотря на фильтрацию, содержат шум, нерелевантные пары и потенциально вредоносный контент. Это может негативно влиять на качество и безопасность модели.
Сравнение с оригинальным CLIP
| Характеристика | Оригинальный CLIP (OpenAI) | OpenCLIP |
|---|---|---|
| Лицензия | MIT (только веса) | MIT (веса и код) |
| Код обучения | Не опубликован | Полностью открыт |
| Наборы данных | Закрытые (400M пар) | Открытые (LAION-400M, LAION-5B) |
| Воспроизводимость | Ограничена | Высокая |
| Разнообразие моделей | Ограниченное | Широкое (множество архитектур и размеров) |
Интересные факты
- OpenCLIP стал основой для многих популярных моделей генерации изображений, включая Stable Diffusion 2.0 и выше.
- Проект поддерживается сообществом и активно развивается, добавляя новые архитектуры и улучшения.
- OpenCLIP используется в академических исследованиях для изучения мультимодального обучения и его свойств.
Источники
- Ilharco, G., Wortsman, M., Wightman, R., et al. (2021). OpenCLIP. Zenodo.
- Radford, A., Kim, J. W., Hallacy, C., et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. ICML.
- Schuhmann, C., Beaumont, R., Vencu, R., et al. (2022). LAION-5B: An open large-scale dataset for training next generation image-text models. NeurIPS.
- Cherti, M., Beaumont, R., Wightman, R., et al. (2023). Reproducible scaling laws for contrastive language-image learning. CVPR.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →