CLIP

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

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

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

Коротко

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

Что это такое

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

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

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

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

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

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

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

  • приблизить вектор изображения к его настоящей подписи;
  • отдалить его от остальных подписей в batch.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Image encoder и text encoder

Обе половины 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. Это разные типы текстовых энкодеров с разным обучением и поведением на длинных инструкциях.

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

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

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

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

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

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

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

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

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

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

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

Главное

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