CLIP (Contrastive Language-Image Pre-training)
Познакомься с CLIP (контрастивным предварительным обучением языка и изображений), объединяющим зрение и язык. Узнай, как он обеспечивает обучение без примеров и расширяет возможности Ultralytics YOLO26.
CLIP (контрастивное предварительное обучение на данных «текст—изображение») — это революционная архитектура нейронной сети, разработанная компанией OpenAI, которая устраняет разрыв между визуальными данными и естественным языком. В отличие от традиционных систем компьютерного зрения (CV), требующих трудоёмкой разметки данных для фиксированного набора категорий, CLIP учится понимать изображения, обучаясь на миллионах пар изображений и текста, собранных из интернета. Такой подход позволяет модели выполнять обучение без примеров, то есть распознавать объекты, концепции или стили, которые она никогда явно не видела во время обучения, просто читая текстовое описание. Отображая визуальную и лингвистическую информацию в общее пространство признаков, CLIP служит мощной базовой моделью для широкого спектра последующих задач без необходимости масштабной тонкой настройки, специфичной для конкретной задачи.
Как работает архитектура#
Основной механизм CLIP включает два параллельных кодировщика: кодировщик изображений, обычно основанный на трансформере для компьютерного зрения (ViT) или ResNet, и текстовый Transformer, аналогичный используемым в современных больших языковых моделях (LLMs). В рамках процесса, известного как контрастивное обучение, система обучается предсказывать, какой фрагмент текста соответствует какому изображению в пределах одного пакета.
Во время обучения модель оптимизирует свои параметры, сближая векторные эмбеддинги соответствующих пар изображений и текста и отдаляя друг от друга несоответствующие пары. В результате создаётся мультимодальное латентное пространство, в котором математическое представление изображения «золотистого ретривера» пространственно расположено рядом с текстовым эмбеддингом «фотография собаки». Вычисляя косинусное сходство между этими векторами, модель может оценить, насколько изображение соответствует запросу на естественном языке, обеспечивая гибкую классификацию изображений и их поиск.
Практические применения#
Способность связывать зрение и язык сделала CLIP ключевой технологией современных приложений ИИ:
- Интеллектуальный семантический поиск: CLIP позволяет пользователям искать в больших базах изображений с помощью сложных запросов на обработку естественного языка (NLP). Например, в сфере ИИ в розничной торговле покупатель может выполнить поиск по запросу «винтажное летнее платье с цветочным принтом» и получить визуально точные результаты, даже если у изображений нет таких конкретных метаданных. Для этого часто используются высокопроизводительные векторные базы данных.
- Управление генеративным ИИ: такие модели, как Stable Diffusion, используют CLIP для интерпретации пользовательских запросов и управления процессом генерации. CLIP выступает в роли оценщика, определяя, насколько хорошо сгенерированный визуальный результат соответствует текстовому описанию, что необходимо для качественного синтеза текста в изображение.
- Обнаружение объектов с открытым словарём: продвинутые архитектуры, такие как YOLO-World, интегрируют эмбеддинги CLIP для обнаружения объектов на основе произвольных текстовых запросов. Это обеспечивает динамическое обнаружение в таких областях, как ИИ в здравоохранении, где необходимо выявлять новое оборудование или аномалии без повторного обучения.
Использование признаков CLIP с Ultralytics#
В то время как стандартные детекторы объектов ограничены классами, на которых они обучались, использование признаков на основе CLIP позволяет выполнять обнаружение объектов с открытым словарём. В следующем коде на Python показано, как использовать пакет ultralytics для обнаружения объектов с помощью пользовательских текстовых запросов:
from ultralytics import YOLOWorld
# Load a pre-trained YOLO-World model utilizing CLIP features
model = YOLOWorld("yolov8s-world.pt")
# Define custom classes using natural language text prompts
model.set_classes(["person wearing sunglasses", "red backpack"])
# Run inference on an image to detect the text-defined objects
results = model.predict("travelers.jpg")
# Display the results
results[0].show()Различие между связанными понятиями#
Чтобы понять специфику CLIP, полезно отличать его от других распространённых парадигм ИИ:
- CLIP и обучение с учителем: традиционные модели с учителем требуют строгих определений и размеченных примеров для каждой категории (например, «кошка», «автомобиль»). CLIP обучается на исходных парах текста и изображений из интернета, обеспечивая большую гибкость и устраняя узкое место в виде ручной аннотации, которая часто выполняется с помощью таких инструментов, как Ultralytics Platform.
- CLIP и YOLO26: CLIP обеспечивает обобщённое понимание концепций, тогда как YOLO26 — специализированный детектор объектов реального времени, оптимизированный для высокой скорости и точной локализации. CLIP часто используется как экстрактор признаков или классификатор без примеров, тогда как YOLO26 служит движком для высокоскоростного вывода в реальном времени в производственных средах.
- CLIP и стандартное контрастивное обучение: такие методы, как SimCLR, обычно сравнивают два аугментированных представления одного и того же изображения для изучения признаков. CLIP сопоставляет изображение с текстовым описанием, объединяя две различные модальности данных, а не работая только с одной.









