Blog

Marc Tuscher

Vision Language Models: Sehen und Verstehen

PickGPT Interface - packaging material

Ich habe mit eigenen Augen gesehen, welche unglaublichen Fähigkeiten die heutigen Sprachmodelle haben. Sie können kohärente und kontextuell relevante Texte erzeugen, Fragen beantworten, Dokumente zusammenfassen und sogar Sprachen übersetzen. Diese Modelle sind wie ein neues Programmierparadigma. Wir (und unser Code) können nun mit Sprache interagieren. Vielleicht noch aufregender ist, dass wir auch mit Bildern interagieren und die Wahrnehmungsfähigkeiten unserer Modelle verändern können, indem wir sie einfach dazu auffordern. In diesem Blogbeitrag werden einige grundlegende Beispiele für die Fähigkeiten und die konzeptionelle Funktionsweise von VLMs vorgestellt. Schauen wir uns dieses Szenario an. Ich habe GPT-4 gebeten, etwas über Äpfel zu schreiben. In der zweiten Eingabeaufforderung bitte ich ihn zu klassifizieren, ob das Wort Apfel im Text vorkommt... An sich ziemlich einfach.

Tatsächlich kann man das mit einer einzigen Zeile Python lösen.

Code Apple

Sehen wir uns dieses Bild an: Ein paar zufällige Objekte in einer Kiste.

Bin PickGPT

Wenn ich vorhersagen will, ob dieses Bild einen Apfel enthält, ist das Beste, was ich mit einer einzigen Zeile Python tun kann, eine 50/50-Vermutung...

Apple random

Wenn ich jedoch PickGPT (Sereacts Vision Language Action Model) frage, ob das Bild einen Apfel enthält, kann es das sehr genau vorhersagen.

PickGPT Interface with Bin

Überraschenderweise bedeutet dies, dass wir mit Vision-Language-Modellen eine Zero-Shot-Klassifikation durchführen können. Tatsächlich lenken wir die Wahrnehmung unserer Computer Vision mit Sprache. Mit anderen Worten, wir können ihr sagen, dass sie ihre Aufmerksamkeit (hehe) auf die Suche nach Äpfeln richten soll. Diese VLMs und LLMs werden gewissermaßen sofort durch die Aufforderung trainiert. Die Aktivierungen im Netzwerk ändern sich je nach Aufforderung.

Wie funktioniert dies? Zunächst müssen wir ein paar Jahre zurückgehen. CLIP wurde 2021 von OpenAI veröffentlicht und ist im Wesentlichen darauf trainiert, die Distanz zwischen dem Feature-Embedding eines Bildes und dem Feature-Embedding des zugehörigen Textes zu minimieren.

Die sprachliche Einbettung des Textes „ein Foto eines Apfels“ sollte der visuellen Einbettung eines Fotos eines Apfels nahe kommen. CLIP wird mit Paaren von Bildern und Beschriftungen trainiert, von denen einige zusammenpassen und einige nicht. Es lernt, das Bild und die Beschriftung in numerische Repräsentationen (Embeddings) zu kodieren, so dass die Embeddings von passenden Bild-Text-Paaren nahe beieinander liegen (hohe Kosinusähnlichkeit), während die Embeddings von nicht passenden Paaren weit auseinander liegen (niedrige Kosinusähnlichkeit). Dadurch kann CLIP Bilder effizient in textähnliche Embeddings umwandeln.

Kürzlich wurde LLaVa-Next, eine Open-Source Vision Language, veröffentlicht. Bei seiner Veröffentlichung war es auf dem gleichen Stand wie GPT-4 und hat sogar Gemini übertroffen. Es erfasst Bilder und Text und kann bei der Beantwortung von Fragen zum Bild helfen.

Dieses Modell verwendet zunächst CLIP, um die Bildmerkmale in eine digitale Einbettung umzuwandeln, die von einem Sprachmodell verstanden werden kann, und übersetzt das Bild im Wesentlichen in textähnliche Token. Da jedoch der Einbettungsraum von CLIP von den erwarteten Token-Darstellungen des Sprachmodells abweichen kann, wird eine separate „Vision-Language-Connector“-Komponente trainiert. Dieser Connector passt das CLIP-Bild-Embedding an den vom Sprachmodell erwarteten Tokenraum an. Durch diesen Anpassungsschritt ist das Sprachmodell nun in der Lage, visuelle Informationen aus Bildern direkt zu verarbeiten und zu verstehen, wodurch multimodale Fähigkeiten ermöglicht werden.

LLaVa-Next ist nur eines von vielen Vision-Sprachmodellen, die für unterschiedliche Anwendungsfälle und auf unterschiedlichen Datensätzen trainiert wurden. Die Methodik ist jedoch immer dieselbe: Bilder in eine Darstellung zu bringen, die ein Sprachmodell versteht, und diese Darstellung in ein Sprachmodell einzuspeisen. Das bedeutet auch, dass wir unsere Computer Vision verbessern können, indem wir ein größeres Sprachmodell verwenden. Ich kenne die Details von SORA nicht, aber der technische Bericht deutet darauf hin, dass die Videogenerierung dem gleichen Grundprinzip folgt, jedoch mit einem größeren Modell.

Zuerst werden die aufeinanderfolgenden Frames des Videos in eine Darstellung gebracht, die ein Sprachmodell über einen visuellen Encoder verstehen kann. Diese Repräsentation wird dann in ein Sprachmodell eingespeist. Dabei kommt es natürlich auf die Details an, denn das Modell muss die angrenzenden Teile des aktuellen Frames und auch den letzten Frame, den es vorhergesagt hat, berücksichtigen. Dies kombiniert im Wesentlichen das Sehen mit der autoregressiven Natur der Textgenerierung. Dies hat den Vorteil, dass das LLM einfach durch ein größeres ersetzt werden kann, um bessere Ergebnisse zu erzielen. Der Bericht zeigt auch die Ergebnisse der Verwendung von „mehr Rechenleistung“.

Natürlich will ich nicht so tun, als gäbe es keine Herausforderungen. Wie bei jeder neuen Technologie gibt es noch viele Unklarheiten. Aber als jemand, der immer mehr daran interessiert war, Dinge zu tun, als sich über Hindernisse Gedanken zu machen, bin ich zuversichtlich, dass die Deep-Learning-Gemeinschaft sie lösen wird.

Hiermit schließe ich meinen ersten Blog-Beitrag über Vision-Sprachmodelle. Seien Sie gespannt auf weitere Diskussionen über Vision-Sprachmodelle. Im nächsten Beitrag werde ich beschreiben, wie wir Vision-Sprachmodelle in der Robotik bei Sereact einsetzen.