Multimodale semantische Suche mit Bildern und Text
Als Menschen interpretieren wir die Welt mit unseren Sinnen. Wir hören Geräusche, sehen Bilder, Videos und Texte, die sich oft überlagern. Wir verstehen die Welt durch diese verschiedenen Modalitäten und die Beziehungen zwischen ihnen. Damit künstliche Intelligenz den menschlichen Fähigkeiten wirklich ebenbürtig ist oder sie sogar übertrifft, muss sie die gleiche Fähigkeit entwickeln, die Welt durch mehrere Linsen gleichzeitig zu verstehen.
In diesem Beitrag, dem dazugehörigen Video (in Kürze) und dem Notebook werden wir die jüngsten Durchbrüche bei Modellen vorstellen, die sowohl Text als auch Bilder gleichzeitig verarbeiten können. Wir werden dies anhand einer semantischen Suchanwendung demonstrieren, die über den einfachen Abgleich von Schlüsselwörtern hinausgeht - sie versteht die Beziehung zwischen dem, wonach Benutzer fragen, und den visuellen Inhalten, die sie durchsuchen.
Was dieses Projekt besonders aufregend macht, ist die Tatsache, dass es vollständig mit Open-Source-Tools erstellt wurde: die Vektordatenbank Milvus, die Bibliotheken für maschinelles Lernen von HuggingFace und ein Datensatz von Amazon-Kundenrezensionen. Es ist bemerkenswert, wenn man sich vorstellt, dass noch vor einem Jahrzehnt für die Entwicklung eines solchen Projekts erhebliche firmeneigene Ressourcen erforderlich gewesen wären. Heute sind diese leistungsstarken Komponenten frei verfügbar und können von jedem, der neugierig ist, auf innovative Weise kombiniert werden.
Unsere multimodale Suchanwendung ist vom Typ Retrieve-and-Rerank. Wenn Sie mit Retrieval-Augmented-Generation (RAG) vertraut sind, ist sie sehr ähnlich, nur dass die endgültige Ausgabe eine Liste von Bildern ist, die durch ein großes Sprach-Vision-Modell (LLVM) neu bewertet wurden. Die Suchanfrage des Benutzers enthält sowohl Text als auch Bild, und das Ziel ist eine Reihe von Bildern, die in einer Vektordatenbank indiziert sind. Die Architektur besteht aus drei Schritten - Indizierung, Abruf und Neueinstufung (ähnlich wie bei der "Generierung") - die wir nacheinander zusammenfassen.
Indizierung
Unsere Suchanwendung muss etwas zu durchsuchen haben. In unserem Fall verwenden wir eine kleine Teilmenge des "Amazon Reviews 2023"-Datensatzes, der sowohl Text als auch Bilder von Amazon-Kundenrezensionen für alle Arten von Produkten enthält. Sie können sich vorstellen, dass eine semantische Suche wie diese, die wir aufbauen, eine nützliche Ergänzung für eine E-Commerce-Website ist. Wir verwenden 900 Bilder und verwerfen den Text. Beachten Sie jedoch, dass dieses Notebook mit der richtigen Datenbank und dem richtigen Einsatz von Inferenzen auf Produktionsgröße skaliert werden kann.
Das erste "magische" Element in unserer Pipeline ist die Wahl des Einbettungsmodells. Wir verwenden ein kürzlich entwickeltes multimodales Modell namens Visualized BGE, das in der Lage ist, Text und Bilder gemeinsam oder getrennt in denselben Raum mit einem einzigen Modell einzubetten, in dem nahe beieinander liegende Punkte semantisch ähnlich sind. In jüngster Zeit wurden weitere Modelle dieser Art entwickelt, z. B. MagicLens.
Die obige Abbildung veranschaulicht: Die Einbettung für [ein Bild eines Löwen von der Seite] plus den Text "front view of this" liegt nahe an einer Einbettung für [ein Bild eines Löwen von vorne] ohne Text. Dasselbe Modell wird sowohl für Text- und Bildeingaben als auch für reine Bildeingaben (wie auch für reine Texteingaben) verwendet. Auf diese Weise ist das Modell in der Lage, die Absicht des Benutzers zu verstehen, wie der Suchtext mit dem Suchbild zusammenhängt.
Wir betten unsere 900 Produktbilder ohne entsprechenden Text ein und speichern die Einbettungen in einer Vektordatenbank mit Milvus.
Abruf
Nun, da unsere Datenbank aufgebaut ist, können wir eine Benutzerabfrage durchführen. Stellen Sie sich vor, ein Benutzer kommt mit der Anfrage: "eine Handyhülle mit diesem" plus [ein Bild eines Leoparden]. Das heißt, er sucht nach Handytaschen mit Leopardenfellmuster.
Beachten Sie, dass der Text der Benutzeranfrage "dies" und nicht "ein Leopardenfell" lautet. Unser Einbettungsmodell muss in der Lage sein, "dies" mit dem zu verbinden, worauf es sich bezieht, was eine beeindruckende Leistung ist, wenn man bedenkt, dass frühere Modelle nicht in der Lage waren, solche offenen Anweisungen zu verarbeiten. Das MagicLens-Papier enthält weitere Beispiele.
Wir betten den Abfragetext und das Bild gemeinsam ein und führen eine Ähnlichkeitssuche in unserer Vektordatenbank durch, wobei die neun besten Treffer zurückgegeben werden. Die Ergebnisse sind in der obigen Abbildung zusammen mit dem Suchbild des Leoparden dargestellt. Es zeigt sich, dass der oberste Treffer nicht derjenige ist, der für die Abfrage am relevantesten ist. Das siebte Ergebnis scheint am relevantesten zu sein - es handelt sich um eine Handyhülle mit einem Leopardenfellaufdruck.
Generation
Es scheint, dass unsere Suche fehlgeschlagen ist, da das oberste Ergebnis nicht das relevanteste ist. Wir können dies jedoch mit einem Reranking-Schritt beheben. Sie wissen vielleicht, dass das Reranking der abgerufenen Elemente ein wichtiger Schritt in vielen RAG-Pipelines ist. Wir verwenden Phi-3 Vision als Re-Ranking-Modell.
Zunächst bitten wir eine LLVM, eine Bildunterschrift für das angefragte Bild zu generieren. Der LLVM gibt aus:
"Das Bild zeigt eine Nahaufnahme des Gesichts eines Leoparden mit Fokus auf sein geflecktes Fell und seine grünen Augen."
Wir füttern dann diese Beschriftung, ein einzelnes Bild mit den neun Ergebnissen und das Abfragebild und erstellen eine Textaufforderung, die das Modell auffordert, die Ergebnisse neu zu ordnen, die Antwort als Liste anzugeben und eine Begründung für die Wahl der besten Übereinstimmung zu liefern.
Das Ergebnis ist in der obigen Abbildung zu sehen - das relevanteste Element ist nun die erste Übereinstimmung - und die Begründung lautet:
"Der am besten geeignete Artikel ist der mit dem Leopardenmotiv, der mit der Suchanfrage des Benutzers nach einer Handyhülle mit einem ähnlichen Motiv übereinstimmt."
Unser LLVM-Rankingsystem war in der Lage, Bilder und Text zu verstehen und die Relevanz der Suchergebnisse zu verbessern. Ein interessantes Artefakt ist, dass der Re-Ranker nur acht Ergebnisse lieferte und eines verworfen hat, was die Notwendigkeit von Leitplanken und strukturierter Ausgabe unterstreicht.
Zusammenfassung
In diesem Beitrag und dem dazugehörigen Video (in Kürze) sowie dem Notebook haben wir eine Anwendung für die multimodale semantische Suche in Text und Bild entwickelt. Das Einbettungsmodell war in der Lage, Text und Bilder gemeinsam oder getrennt in denselben Raum einzubetten, und das Basismodell war in der Lage, Text und Bild einzugeben und gleichzeitig Text als Antwort zu generieren. Wichtig ist, dass das Einbettungsmodell in der Lage war, die Absicht des Benutzers einer offenen Anweisung mit dem Abfragebild in Beziehung zu setzen und auf diese Weise zu spezifizieren, wie der Benutzer die Ergebnisse mit dem eingegebenen Bild in Beziehung setzen wollte.
Dies ist nur ein Vorgeschmack auf das, was uns in naher Zukunft erwarten wird. Wir werden viele Anwendungen der multimodalen Suche, des multimodalen Verstehens und Schlussfolgerns usw. in verschiedenen Modalitäten sehen: Bilder, Video, Audio, Moleküle, soziale Netzwerke, Tabellendaten, Zeitreihen - das Potenzial ist grenzenlos.
Und das Herzstück dieser Systeme ist eine Vektordatenbank, die das externe "Gedächtnis" des Systems enthält. Milvus ist eine ausgezeichnete Wahl für diesen Zweck. Es ist quelloffen, voll funktionsfähig (siehe diesen Artikel über die Volltextsuche in Milvus 2.5) und skaliert effizient auf Milliarden von Vektoren mit Datenverkehr im Web und einer Latenzzeit von unter 100 ms. Erfahren Sie mehr in den Milvus-Dokumenten, treten Sie unserer Discord-Community bei, und wir hoffen, Sie bei unserem nächsten Unstructured Data Meetup zu sehen. Bis dahin!
Ressourcen
Notizbuch: "Multimodale Suche mit Amazon-Rezensionen und LLVM-Reranking"
Youtube AWS Developers Video (bald verfügbar)
Modell einbetten: Visualisierte BGE-Modellkarte
Alternatives Einbettungsmodell: MagicLens-Modell-Repositorium
LLVM: Phi-3 Vision Modellkarte
Papier: "MagicLens: Self-Supervised Image Retrieval with Open-Ended Instructions"
Datensatz: Amazon Bewertungen 2023
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word