Abrufener Augmented Generation (RAG) ist immer beliebter geworden, um die Qualität des Textqualität zu verbessern, das von Großsprachenmodellen erzeugt wird. Jetzt, da multimodale LLMs in der Nähe sind, ist es Zeit, Lappen auf multimodale Daten zu erweitern.
Wenn wir die Möglichkeit hinzufügen, Daten über mehrere Modalitäten hinweg zu suchen und abzurufen, erhalten wir ein leistungsstarkes Tool für die Interaktion mit den leistungsstärksten KI -Modellen, die heute verfügbar sind. Wir fügen dem Prozess jedoch auch brandneue Komplexitätsebenen hinzu.
Zu den Überlegungen, die wir berücksichtigen müssen, gehören:
Auf praktischerer Ebene finden Sie hier einige der grundlegenden Knöpfe, die wir drehen können:
Dieses Projekt ist ein Testbett für die Erforschung dieser und mehr Fragen. Es verwendet drei Open-Source-Bibliotheken, Fiftyone, Llamaindex und Milvus, um mit multimodalen Daten zu arbeiten, mit verschiedenen multimodalen RAG-Techniken zu experimentieren und zu finden, was für Ihren Anwendungsfall so einfach wie möglich funktioniert.
Beachten Sie auch, dass llamaNdex seine API häufig aktualisiert. Aus diesem Grund sind die Version von LlamaNdex und seinen zugehörigen Paketen alle festgehalten?
Installieren Sie zuerst fünfzigne:
pip install fiftyoneAls nächstes laden Sie das FiftyOne Multimodal Rag Plugin mit der CLI -Syntax von FiftyOne herunter und installieren Sie sie:
fiftyone plugins download https://github.com/jacobmarks/fiftyone-multimodal-rag-pluginLlamaindex hat einen ausführlichen Installationsprozess (wenn Sie zumindest etwas multimodal erstellen möchten). Zum Glück wird dies (und alle anderen Installationsabhängigkeiten) mit dem folgenden Befehl betreut:
fiftyone plugins requirements @jacobmarks/multimodal_rag --installStarten Sie die Fiftyone App. Sie können dies aus dem Terminal durch Laufen tun:
fiftyone app launchOder Sie können den folgenden Python -Code ausführen:
import fiftyone as fo
session = fo . launch_app () Drücken Sie nun die Backtick -Taste ( ` ) und geben Sie create_dataset_from_llama_documents ein. Drücken Sie Enter , um das Modal des Bedieners zu öffnen. Dieser Bediener gibt Ihnen eine Benutzeroberfläche, um ein Verzeichnis auszuwählen, das Ihre multimodalen Daten (Bilder, Textdateien, PDFs usw.) enthält und ein Fiftyone -Datensatz daraus erstellt.
Sobald Sie ein Verzeichnis ausgewählt haben, führen Sie den Bediener aus. Es wird in Ihrer Fiftyone -Sitzung einen neuen Datensatz erstellt. Für Textdateien sehen Sie eine Bildwiedergabe des abgeschnittenen Textes. Für Bilder sehen Sie das Bild selbst.
Mit dem Operator add_llama_documents_to_dataset können Sie zusätzliche Verzeichnisse multimodaler Daten hinzufügen.
Nachdem Sie einen multimodalen Datensatz haben, können Sie ihn mit LlamaNdex und Milvus indexieren. Verwenden Sie den Operator create_multimodal_rag_index , um diesen Prozess einzugeben. Dieser Bediener fordert Sie auf, den Index zu benennen, und gibt Ihnen die Möglichkeit, die Bilder über Clip -Einbettungen oder Untertitel zu indizieren. Wenn Sie Bildunterschriften auswählen, werden Sie aufgefordert, das Feld Text als Bildunterschrift auszuwählen.
Wenn Sie keine Bildunterschriften in Ihrem Datensatz haben, interessieren Sie sich möglicherweise für das FiftyOne -Bildunterschrift -Plugin.
fiftyone plugins download https://github.com/jacobmarks/fiftyone-image-captioning-plugin Sobald Sie einen Index erstellt haben, können Sie ihn inspizieren, indem Sie den Operator get_multimodal_rag_index_info ausführen und den Index auswählen, den Sie aus der Dropdown -Art überprüfen möchten.
Schließlich können Sie den Index mit dem Operator query_multimodal_rag_index abfragen. Dieser Bediener fordert Sie auf, eine Abfragezeichenfolge und einen Index zur Abfrage einzugeben.
Sie können auch das multimodale Modell angeben, das zur Erzeugung der retrieval-Augmented-Ergebnisse sowie die Anzahl der Bild- und Textergebnisse zum Abrufen verwendet werden soll.