CLIP

clip — модель, связывающая текст и изображения в общем пространстве

Раздел
Генеративные модели
Сокращ.
Contrastive Language-Image Pretraining
Обновлено
05.09.26

CLIP состоит из текстового и визуального энкодеров, обученных сближать подходящие пары «изображение — подпись» и отдалять неподходящие. Благодаря этому текст и картинку можно сравнивать как векторы. Текстовые энкодеры семейства CLIP также используются в ряде диффузионных моделей для кодирования промпта.

Коротко

Коротко. CLIP учит текст и изображение встречаться в одном векторном пространстве. Визуальный энкодер превращает картинку в вектор, текстовый — подпись. Подходящая пара должна оказаться близко, неподходящая — дальше. Это позволяет искать изображения по словам, сравнивать с текстовыми названиями классов без дообучения под эти классы и передавать смысл промпта генеративной модели.

Что это такое

OpenAI представила CLIP в 2021 году; устройство и результаты описаны в оригинальной работе. Название расшифровывается как Contrastive Language-Image Pretraining — контрастное предобучение на языке и изображениях.

В обычном классификаторе заранее задают классы вроде «кот», «собака» и «машина». CLIP обучается на парах изображений и свободных подписей. Поэтому после обучения класс можно описать текстом и сравнить его вектор с вектором картинки.

Например, для фотографии корги модель может сравнить несколько фраз:

фотография рыжего корги
рисунок городской улицы
снимок стеклянной кружки

Из предложенных вариантов модель выбирает наиболее близкий. Если верного описания среди них нет, лучший по оценке вариант всё равно может оказаться неверным. Это не символическое понимание предмета, а статистически выученная близость двух представлений.

Как работает контрастное обучение

В обучающую пачку попадает набор пар «картинка — подпись». Два энкодера строят векторы, после чего модель получает две задачи:

  • приблизить вектор изображения к его настоящей подписи;
  • отдалить его от остальных подписей в пачке. Они считаются отрицательными примерами для обучения, хотя некоторые случайно могут подходить и к этому изображению.

Та же логика работает в обратную сторону: текст должен быть ближе к своей картинке, чем к соседним. После большого числа таких сравнений возникает пространство, где визуально и семантически близкие объекты часто группируются рядом.

Для сравнения обычно используют косинусную близость или связанную с ней нормированную меру. Чем меньше угол между векторами, тем больше соответствие по мнению модели.

Роль CLIP в генерации изображений

В ряде диффузионных моделей текстовый энкодер семейства CLIP превращает промпт в последовательность эмбеддингов. Генеративная сеть обращается к ним через механизм внимания и постепенно формирует изображение, связанное с описанием.

Разные семейства используют разные энкодеры:

  • один CLIP;
  • несколько CLIP-энкодеров;
  • CLIP вместе с большим текстовым энкодером;
  • другую языковую архитектуру без CLIP.

Поэтому текстовый энкодер — часть совместимости чекпоинта. Нельзя заменить его похожим файлом только потому, что у обоих в названии есть CLIP: размер векторов, токенизатор и способ обучения должны совпадать с генеративной моделью.

Почему длина промпта ограничена

У конкретного текстового энкодера есть максимальная последовательность токенов. Интерфейс может обрезать длинный промпт, разбить его на части или обработать части отдельными проходами. Эти способы дают разные результаты.

Предел энкодера и длина, которую принимает интерфейс, не всегда совпадают. Дополнительное разбиение промпта не увеличивает собственное контекстное окно энкодера. Проверить её можно в документации и по предупреждениям токенизатора.

Длинный промпт не обязательно точнее короткого. Если несколько описаний спорят за один объект, модель может смешать признаки или потерять отношения между ними.

Пример на практике

Дизайнер ищет в медиатеке изображения для статьи о домашней записи звука. Он заранее вычисляет векторы всех картинок через визуальный энкодер. Затем запрос человек записывает голос у микрофона дома проходит через текстовый энкодер.

Система сравнивает один текстовый вектор с векторами медиатеки и показывает ближайшие изображения. Новый классификатор под тему «домашняя запись» обучать не пришлось.

Для генерации похожая строка становится условием, но задача меняется: модель не ищет готовую фотографию, а использует текстовое представление при создании нового кадра.

Ограничения данных

Пары из интернета несут особенности своих источников:

  • популярные предметы представлены лучше редких;
  • языки встречаются неравномерно;
  • подпись может описывать настроение или автора, а не содержание кадра;
  • стереотипы из данных переходят в пространство эмбеддингов;
  • текст на изображении и мелкие отношения между объектами могут пониматься плохо;
  • неизвестное название иногда распадается на знакомые части и получает случайную ассоциацию.

Повторение непонятного слова не обучает энкодер новому понятию. Узнаваемый персонаж может потребовать изображения-референса, совместимого адаптера или обучения на разрешённых примерах. Не каждый такой способ меняет сам текстовый энкодер.

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

Обе половины CLIP полезны отдельно.

Текстовый энкодер (text encoder) кодирует запросы и промпты. Он встречается в текстовом условии диффузионных моделей и текстовом поиске по изображениям.

Визуальный энкодер (image encoder) кодирует референс. Его используют в визуальном поиске, классификации и системах переноса признаков вроде некоторых IP-Adapter-пайплайнов.

Вектор изображения не содержит готовый промпт. Он сохраняет признаки в форме, удобной для сравнения, а обратное превращение в точное словесное описание требует отдельной модели.

С чем часто путают

  • CLIP и LLM. CLIP-энкодер создаёт представление текста, а не пишет длинные ответы токен за токеном.
  • CLIP и генератор изображений. Он кодирует условие или оценивает соответствие, но сам не рисует финальный кадр.
  • CLIP и captioning. Captioning-модель создаёт подпись по картинке. CLIP главным образом сравнивает уже заданные пары.
  • CLIP и IP-Adapter. IP-Adapter использует визуальный энкодер и дополнительные слои, чтобы передать референс генеративной модели.
  • CLIP и OpenCLIP. OpenCLIP — открытая реализация и семейство моделей, обученных на других наборах и конфигурациях. Совместимость не определяется одним похожим названием.
  • CLIP и T5. Это разные типы текстовых энкодеров с разным обучением и поведением на длинных инструкциях.

Частые ошибки и заблуждения

«Набор слов качества всегда улучшает картинку». Эффект зависит от данных и чекпоинта. Шаблонные усилители могут влиять на стиль, но не исправляют композицию и иногда только делают результат однообразным.

«Повтор слова заставит CLIP его понять». Повтор может изменить существующий сигнал, но не создаёт новое понятие в весах.

«Одинаковый промпт переносится между любыми моделями». Токенизатор, энкодер и обучение отличаются, поэтому смысловые акценты меняются.

«Близкий вектор означает объективную истину». Это оценка модели, сформированная данными. Она может наследовать ошибки и предвзятость.

«Чем больше размер эмбеддинга, тем лучше понимание». Размер — только одна характеристика. Важны данные, цель обучения, архитектура и способ подключения.

Частые вопросы

Почему русский промпт иногда работает хуже английского? Это зависит от языкового покрытия точного энкодера и данных генеративной модели. Перевод может помочь одной системе и почти не изменить другую, поэтому сравнение делают на нескольких типичных сценах.

Что делать с редким именем или предметом? Сначала помогает описание видимых признаков простыми словами. Если нужна стабильная новая сущность, используют совместимый адаптер или обучение на собственных разрешённых данных.

Можно ли использовать CLIP для поиска дубликатов? Он хорошо находит семантически похожие изображения. Для почти пиксельных дубликатов лучше дополнить его перцептивным хешем или специализированным визуальным признаком.

Почему модель путает отношения «слева», «под» и «за»? Контрастное обучение по общей подписи сильнее поощряет совпадение объектов и темы, чем точную геометрию каждого отношения. Некоторые системы добавляют другие энкодеры и структурный контроль.

Главное

CLIP связывает текст и изображение через общее векторное пространство. Благодаря этому одна модель поддерживает поиск, классификацию и текстовое условие для генерации. Её сильная сторона — широкие визуально-языковые ассоциации; ограничение — зависимость от подписей, языкового покрытия и совместимости точного энкодера с остальной схемой.