Открыть сервис

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), который преобразует последовательность токенов в вектор фиксированной размерности.

Визуальный энкодер

Обрабатывает изображения. Визуальным энкодером может быть:

Функция потерь

Обучение модели происходит с использованием контрастивной функции потерь (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 →