Retrieval Augmented Generation (RAG) ist eine Technik, die die Funktionen von generativen KI-Modellen verbessert, insbesondere von Large Language Models (LLMs). Ein häufiges Problem bei LLMs besteht darin, dass sie halluzinieren, das heißt, das Modell generiert falsche oder irreführende Ergebnisse. RAG löst dieses Problem durch die Kombination der Leistungsfähigkeit von LLMs mit externen Wissensquellen wie z. B. eine Vielzahl textbasierter Dokumente und andere Arten von Datenquellen, um genauere und informativere Antworten zu generieren.
Durch die Kombination zusätzlicher Wissensquellen mit dem vorhandenen Wissen von LLMs wird ein besserer Kontext bereitgestellt. Der verbesserte Kontext zusammen mit der Abfrage verbessert die Qualität der LLM-Antwort.
Die folgenden Konzepte sind der Schlüssel zum Verständnis von RAG. Diese Konzepte sind in der Reihenfolge des RAG-Prozesses aufgeführt.
Datenaufnahme: Nehmen Sie Daten aus verschiedenen Datenquellen auf. Zum Beispiel lokale Dateien, Cloud Storage und Google Drive.
Datentransformation: Konvertierung der Daten in der Vorbereitung auf die Indexierung. Beispielsweise werden Daten in Blöcke unterteilt.
Einbettung: Numerische Darstellungen von Wörtern oder Textabschnitten. Diese Zahlen erfassen die semantische Bedeutung und den Kontext des Texts. Ähnliche oder verwandte Wörter oder Text haben in der Regel ähnliche Einbettungen. Das bedeutet, dass sie im hochdimensionalen Vektorbereich näher beieinander liegen.
Datenindexierung: Strukturiert die Wissensdatenbank so, dass sie für die Suche optimiert ist, d. h. ein Korpus. Das ist beispielsweise mit der Erstellung eines äußerst detaillierten Inhaltsverzeichnisses für ein großes Referenzbuch vergleichbar.
Abrufen: Wenn ein Nutzer eine Frage stellt oder einen Prompt bereitstellt, durchsucht die Abrufkomponente in RAG in ihrer Wissensdatenbank nach relevanten Informationen.
Generierung: Die abgerufenen Informationen werden zum Kontext, der der ursprünglichen Nutzeranfrage als Leitfaden für das generative KI-Modell hinzugefügt wurde, um faktisch fundierte und relevante Antworten zu generieren.
Auf dieser Seite wird die Verwendung von RAG erläutert. Außerdem finden Sie hier Python-Beispiele, die die Verwendung der RAG API zeigen.
Informationen zu den Dateigrößenbeschränkungen finden Sie unter Unterstützte Dokumenttypen. Informationen zu Kontingenten für RAG finden Sie unter RAG-Kontingente. Informationen zum Anpassen von Parametern finden Sie unter Parameter.
RAG mit dem Vertex AI SDK ausführen
So verwenden Sie RAG:
Führen Sie diesen Befehl in der Google Cloud Console aus, um Ihr Projekt einzurichten.
gcloud config set {project}
Führen Sie diesen Befehl aus, um Ihre Anmeldung zu autorisieren.
gcloud auth application-default login
Kopieren Sie diesen Beispielcode und fügen Sie ihn in die Google Cloud Console ein, um RAG auszuführen.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Unterstützte Modelle
Die folgenden Gemini-Modelle und ihre Versionen, die RAG unterstützen, sind:
Modell | Version |
---|---|
Gemini | gemini-experimental |
Gemini 1.0 Pro | gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision-001 |
Gemini 1.0 Ultra | gemini-1.0-ultra |
Gemini 1.0 Ultra Vision | gemini-1.0-ultra-vision |
Gemini 1.5 Pro | gemini-1.5-pro-preview-0409 |
Gemini Open Book QA | gemini-1.0-pro-preview-open-book-qa |
Unterstützte Dokumenttypen
Es werden reine Textdokumente unterstützt, einschließlich der folgenden Dateitypen mit ihren Größenbeschränkungen für Dateien:
File type | Maximale Dateigröße |
---|---|
PDF-Datei | 50 MB |
Google-Dokumente | 10 MB beim Export aus Google Workspace |
Google-Präsentationen | 10 MB beim Export aus Google Workspace |
Google Drawings | 10 MB beim Export aus Google Workspace |
JSON-Datei | 1 MB |
Textdatei | 10 MB |
Markdown-Datei | 10 MB |
Die Verwendung von RAG mit anderen Dokumenttypen ist möglich, kann jedoch Antworten von geringerer Qualität generieren.
Unterstützte Datenquellen
Es werden drei Datenquellen unterstützt:
- Ein Upload einer einzelnen Datei mit
upload_file
(bis zu 25 MB), das ein synchroner Aufruf ist.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Importieren Sie Datei(en) aus Cloud Storage.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Importieren Sie ein Verzeichnis aus Google Drive.
Dem Dienstkonto müssen die erforderlichen Berechtigungen zum Importieren von Dateien gewährt werden. Andernfalls werden keine Dateien importiert und keine Fehlermeldung angezeigt. Weitere Informationen zu Dateigrößenbeschränkungen finden Sie unter Unterstützte Dokumenttypen.
So authentifizieren und erteilen Sie Berechtigungen:
- Rufen Sie die Seite "IAM" Ihres Google Cloud-Projekts auf.
- Wählen Sie Von Google bereitgestellte Rollenzuweisung einschließen aus.
- Suchen Sie nach dem Dienstkonto Vertex AI RAG Data Service Agent.
- Klicken Sie im Drive-Ordner auf Freigeben und geben Sie es für das Dienstkonto frei.
- Gewähren Sie dem Dienstkonto in Ihrem Google Drive-Ordner oder Ihrer Datei die Berechtigung
Viewer
. Die Google Drive-Ressourcen-ID finden Sie in der Web-URL.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Unterstützte Datentransformationen
Nachdem ein Dokument aufgenommen wurde, führt RAG eine Reihe von Transformationen für eine optimale Qualität aus. Außerdem gibt es Parameter, die Entwickler für ihre Anwendungsfälle steuern können.
Zu diesen Parametern gehören:
Parameter | Beschreibung |
---|---|
chunk_size |
Wenn Dokumente in einen Index aufgenommen werden, werden sie in Blöcke unterteilt. Der Parameter chunk_size (in Tokens) gibt die Größe des Blocks an. Die standardmäßige Blockgröße beträgt 1.024 Tokens. |
chunk_overlap |
Standardmäßig werden Dokumente in Blöcke unterteilt, mit einem gewissen Grad an Überschneidungen, um die Relevanz und die Abrufqualität zu verbessern. Die standardmäßige Blocküberschneidung beträgt 200 Tokens. |
Abrufparameter
Die folgende Tabelle enthält die Abrufparameter:
Parameter | Beschreibung |
---|---|
similarity_top_k |
Steuert die maximale Anzahl von Kontexten, die abgerufen werden. |
vector_distance_threshold |
Es werden nur Kontexte mit einer kleineren Entfernung als der Grenzwert berücksichtigt. |
Parameter
So wählen Sie Parameter aus:
- Wählen Sie eine Blockgröße aus. Eine kleinere Blockgröße bedeutet, dass die Einbettungen genauer sind. Ein größerer Block bedeutet, dass die Einbettungen allgemeiner sein können, aber bestimmte Details nicht erfasst werden. Wenn Sie beispielsweise 200 Wörter statt 1.000 Wörter in ein Einbettungsarray derselben Dimension umwandeln, gehen möglicherweise Details verloren. Dies ist auch ein gutes Beispiel für die Berücksichtigung der Längenbeschränkung für Modellkontexte. Ein großer Block passt möglicherweise nicht in ein Modell mit kleinen Fenstern.
- Erzwingen Sie einen strengen Schwellenwert. Sie sollten
similarity_top_k
verringern, um festzulegen, wie viele Kontexte während der Generierung referenziert werden. Es kann mehr als ein Kontext zurückgegeben werden und ein Teil des Kontexts ist möglicherweise weniger relevant.
Korpusverwaltung
Ein Korpus ist wie ein Index, in dem verarbeitete Dokumente und relevante Metadaten für die Suche und den Abruf gespeichert werden. Wenn ein Korpus erstellt wird, kann dieser Vorgang aufgrund der Ressourcenzuweisung 30 Sekunden bis 1 Minute dauern.
Die folgenden Korpusvorgänge werden unterstützt:
- Erstellen Sie einen Korpus.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Löschen Sie einen Korpus.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Rufen Sie Details eines Korpus ab.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Listen Sie alle Korpora unter einem bestimmten Projekt auf.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Gleichzeitige Vorgänge für Korpora werden nicht unterstützt. Weitere Informationen findest du in der API-Referenz.
Dateiverwaltung
Die folgenden Dateivorgänge werden unterstützt:
- Laden Sie eine Datei aus dem lokalen Speicher in einen Korpus hoch.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Nehmen Sie Dateien aus einem anderen Speicher in einen Korpus auf.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Rufen Sie Details einer Datei ab.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Listen Sie Dateien in einem Korpus auf.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
- Löschen Sie eine Datei aus einem Korpus.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Weitere Informationen finden Sie in der RAG API-Referenz.
Nächste Schritte
- Generative KI für Vertex AI.
- Weitere Informationen über Fundierung und deren Bezug zu RAG
- Weitere Informationen zur Retrieval-Augmented Generation API
- Weitere Informationen zur RAG-Architektur. Infrastruktur für eine RAG-fähige generative KI-Anwendung mit Vertex AI