CLIP (Contrastive Language-Image Pre-training)
CLIP ist ein Modell von OpenAI, das Bilder und Text in einen gemeinsamen Raum einbettet, sodass es Bilder anhand von Bezeichnungen in Klartext klassifiziert. So funktionieren Training und Zero-Shot-Verfahren.
CLIP (kontrastives Bild-Text-Vortraining) ist ein Modell von OpenAI, das lernt, Bilder ihren Textbeschreibungen zuzuordnen. Es kombiniert einen Bildencoder mit einem Textencoder und trainiert beide so, dass ein Bild und eine dazugehörige Bildbeschreibung im selben Einbettungsraum auf nahe beieinanderliegende Vektoren abgebildet werden. Mit 400 Millionen im Internet gesammelten Bild-Text-Paaren trainiert, kann CLIP Bilder klassifizieren, indem es sie Kategorien zuordnet, die nur als Text vorgegeben sind, ohne dass annotierte Beispiele dieser Kategorien vorliegen – eine Fähigkeit, die Zero-Shot-Lernen genannt wird. Im Paper von 2021 erreichte das beste Modell auf ImageNet eine Zero-Shot-Top-1-Genauigkeit von 76,2 % und lag damit gleichauf mit dem ursprünglichen, vollständig überwacht trainierten ResNet-50, ohne eines der 1,28 Millionen annotierten Bilder zu verwenden, mit denen ResNet-50 trainiert wurde.
Wie CLIP trainiert wird#
CLIP verfügt über zwei Encoder. Der Bildencoder ist ein ResNet oder ein Vision Transformer (ViT), der Textencoder ein 12-schichtiger Transformer mit 63 Millionen Parametern in der Basisgröße. Eine lineare Projektion überführt die Ausgabe jedes Encoders in den gemeinsamen Raum, in dem jeder Vektor auf die Einheitslänge normalisiert wird.
Das Training nutzt kontrastives Lernen mit Stapeln aus 32.768 Bild-Bildunterschrift-Paaren. Für einen Stapel aus N Paaren berechnet CLIP die Kosinusähnlichkeit jedes Bildes mit jeder Bildunterschrift. So entsteht eine N×N-Matrix, deren Diagonale die tatsächlichen Paare enthält. Ein Softmax-Kreuzentropieverlust über jede Zeile fordert jedes Bild auf, aus N Möglichkeiten seine eigene Bildunterschrift auszuwählen. Ein zweiter Verlust über jede Spalte fordert jede Bildunterschrift auf, ihr Bild auszuwählen. Eine lernbare Temperatur skaliert die Ähnlichkeiten vor der Softmax-Funktion.
Da die Bildunterschriften frei formuliert sind, lernt CLIP aus allem, was im Internet beschrieben wird – darunter Objekte, Szenen, Kunststile, Text in Bildern und Handlungen – statt aus einer festen Klassenliste.
Zero-Shot-Klassifizierung#
Um ein Bild zu klassifizieren, bettet CLIP jedes mögliche Label als kurzen Satz ein, etwa „ein Foto von einem Hund“, bettet das Bild ein und wählt das Label mit der höchsten Kosinusähnlichkeit aus. Die Formulierung des Prompts ist wichtig: Das Paper berichtet, dass allein die Vorlage „Ein Foto von {label}.“ die ImageNet-Genauigkeit um 1,3 % erhöhte. Der Mittelwert der Texteinbettungen aus 80 Vorlagen brachte weitere 3,5 %. Die folgende Pipeline von Hugging Face Transformers setzt jedes Label in die Vorlage „Dies ist ein Foto von {}.“ ein und führt das ursprüngliche ViT-B/32-Modell aus:
from transformers import pipeline
# Load OpenAI's CLIP ViT-B/32 for zero-shot image classification
classifier = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32")
# The classes are free-form text, chosen at inference time
labels = ["a city bus", "a tram", "a delivery truck", "a bicycle"]
predictions = classifier("https://ultralytics.com/images/bus.jpg", candidate_labels=labels)
# Scores are a softmax over the image's similarity to each caption
for prediction in predictions:
print(f"{prediction['label']}: {prediction['score']:.3f}")Das Skript gibt a city bus: 0.657, a tram: 0.341, a delivery truck: 0.001 und a bicycle: 0.000 aus. Die Straßenbahn, ein weiteres großes Personentransportfahrzeug, erhält fast die gesamte verbleibende Wahrscheinlichkeit. Für eine neue Labelmenge ist lediglich eine neue Liste von Zeichenfolgen nötig.
Anwendungen in der Praxis#
- Semantische Suche: Bildsammlungen werden einmal eingebettet und in einer Vektordatenbank gespeichert. Eine Textanfrage wie „rote Turnschuhe auf einem Holzboden“ wird zum Suchzeitpunkt eingebettet und mit ihnen abgeglichen. So lassen sich Bilder anhand ihres Inhalts finden, ohne sie manuell zu verschlagworten.
- Text-zu-Bild-Generierung: Stable Diffusion 1.x steuert seinen Bildgenerator mit den Texteinbettungen von CLIP ViT-L/14. Die CLIP-Ähnlichkeit wird häufig verwendet, um zu bewerten, wie genau ein generiertes Bild der Eingabeaufforderung entspricht.
- Erkennung mit offenem Vokabular: Die YOLO-World-Modelle von Tencent AI Lab, die im Ultralytics-Paket ausgeführt werden, kodieren die an
set_classesübergebenen Klassennamen mit CLIPs ViT-B/32-Textencoder. Dadurch kann ein einmal trainierter Detektor anhand des Namens „roter Rucksack“ oder „Gabelstapler“ finden. Googles OWLv2 baut auf CLIPs vortrainierten Bild- und Textencodern auf. Die VLM-Bestenliste vergleicht OWLv2 mit anderen Detektoren mit offenem Vokabular und VLMs auf realen Erkennungsdatensätzen. - Bildencoder für VLMs: Viele Vision-Language-Modelle basieren auf einem vortrainierten CLIP-Bildencoder. LLaVA speist beispielsweise Merkmale von CLIP ViT-L/14 in ein Sprachmodell ein.
- Filtern von Datensätzen: Große offene Bild-Text-Datensätze wie LAION-5B behalten nur die im Web gefundenen Paare, deren CLIP-Bild-Text-Ähnlichkeit einen Schwellenwert überschreitet. So werden Bildunterschriften entfernt, die das jeweilige Bild nicht beschreiben.
CLIP im Vergleich zu verwandten Ansätzen#
- Klassifikatoren mit überwachtem Lernen: Ein herkömmlicher Klassifikator hat eine Ausgabe pro Trainingsklasse und kann keine Klasse bewerten, die er noch nie gesehen hat. Der „Klassifikator“ von CLIP besteht aus Texteinbettungen und ändert sich daher mit den Labels.
- SigLIP: Diese Variante von Google ersetzt die stapelweite Softmax-Funktion von CLIP durch einen Sigmoid-Verlust, der jedes Bild-Text-Paar einzeln bewertet. Das spart Speicher und funktioniert bei kleinen Stapelgrößen besser.
- Selbstüberwachtes kontrastives Lernen: Methoden wie SimCLR vergleichen zwei erweiterte Ansichten desselben Bildes und lernen ausschließlich aus Bildern. CLIP stellt zwei Modalitäten gegenüber und verknüpft dadurch seine Bildmerkmale mit Wörtern.
- Generative VLMs: CLIP bewertet die Ähnlichkeit von Bild und Text, kann aber weder Bildunterschriften verfassen noch Fragen beantworten. Generative Modelle verbinden ein Sprachmodell mit einem Bildencoder, häufig mit dem eigenen Bildencoder von CLIP.
Einschränkungen#
Die Zero-Shot-Genauigkeit von CLIP sinkt bei feinkörnigen Kategorien wie Flugzeug- oder Automodellen, beim Zählen von Objekten und bei abstrakten Aufgaben wie dem Schätzen von Entfernungen. Außerdem übernimmt CLIP die Verzerrungen in Bildunterschriften aus dem Web. Da CLIP gelernt hat, Text in Bildern zu lesen, lässt es sich damit täuschen: In der Forschung zu multimodalen Neuronen von OpenAI wurde ein Apfel mit einem handgeschriebenen Etikett mit der Aufschrift „iPod“ als iPod klassifiziert.










