Abruf-erweiterte Eraoder LAPPENist eine Methode, um die Antwort eines Sprachmodells auf externe Daten zu stützen, auf die es während des Trainings keinen Zugriff hatte. Anstatt sich nur auf das zu verlassen, was das Modell gelernt hat, geben Sie ihm direkt vor der Generierung einer Antwort neue Fakten aus einer Wissensdatenbank.
Die Technik besteht aus drei Phasen:
- Abrufen. Das System durchsucht eine bereitgestellte Wissensdatenbank und ruft Textabschnitte ab, die für die Anfrage des Benutzers related sind.
- Increase. Diese Blöcke werden mit der Frage des Benutzers in einer einzigen Eingabeaufforderung kombiniert, die den Modellkontext für die Arbeit bereitstellt.
- Erzeugen. Das Sprachmodell erzeugt eine Antwort unter Verwendung sowohl des abgerufenen Kontexts als auch seiner allgemeinen Sprachkenntnisse.
Die Idee geht zurück auf a Papier aus dem Jahr 2020 von Patrick Lewis und einem Forscherteam von Fb AI Analysis, dem College School London und der NYUdas RAG als allgemeinen Ansatz zur Verbindung von Sprachmodellen mit externen Wissensquellen einführte. Seitdem ist es zu einem der Standardansätze für die Entwicklung von KI-Anwendungen geworden, die mit privaten, aktuellen oder domänenspezifischen Daten arbeiten müssen.
Warum LLMs überhaupt RAG brauchen
Große Sprachmodelle werden anhand großer Textmengen trainiert, was ihnen ein umfassendes Wissen und ein ausgeprägtes Gespür dafür vermittelt, wie Sprache funktioniert. Allerdings haben sie ein paar Schwächen, die schnell zu Tage treten, wenn man versucht, echte KI-Anwendungen darauf aufzubauen:
- Ihre Trainingsdaten haben ein Stichdatum, sodass sie nichts darüber wissen, was danach passiert ist.
- Sie haben keinen Zugriff auf non-public Informationen, wie zum Beispiel die internen Dokumente Ihres Unternehmens oder die Unterlagen Ihrer Kunden.
- Wenn sie etwas nicht wissen, geben sie es selten zu. Stattdessen produzieren sie eine selbstbewusst klingende Antwort, die sich als erfunden herausstellt, ein Versagensmodus namens Halluzination.
- Sie generieren Textual content aus ihren Parametern und nicht aus einer bestimmten Datenquelle; Sie können Ihnen nicht sagen, woher die Antwort kam.
Bei guter Umsetzung löst RAG alle vier Probleme auf einmal. Der abgerufene Kontext liefert dem Modell aktuelle Fakten, non-public Daten, auf denen es arbeiten kann, etwas Konkretes, in dem es verankert bleiben kann, und klare Quellen, die der Benutzer überprüfen kann. Aus diesem Grund ist RAG in LLM-Anwendungen so verbreitet, von Help-Chatbots bis hin zu internen Dokumentationsassistenten und anderen Systemen, die Antworten benötigen, die auf bestimmten Quellen basieren.
Wie Retrieval-Augmented Era funktioniert, Schritt für Schritt
Ein RAG-System hat zwei Aufgaben. Zunächst wird eine durchsuchbare Wissensdatenbank erstellt. Anschließend wird diese Wissensdatenbank zur Beantwortung von Fragen zur Laufzeit verwendet.
Schritt 1. Erfassen und indizieren Sie Ihre Wissensdatenbank
Bevor ein RAG-System eine Antwort geben kann, benötigt es Dokumente, auf die es zurückgreifen kann. Sie beginnen damit, diese Dokumente in kleinere Teile zu zerlegen Brocken. Die Stückgröße ist wichtig. Zu klein und ein Teil verliert den Kontext. Zu groß, und es verwässert das, was beim Abrufen related ist.
Jeder Block durchläuft dann einen Einbettungsmodellder es in einen Vektor umwandelt, im Grunde eine Liste von Zahlen, die die Bedeutung des Blocks erfasst. Diese Vektoreinbettungen werden in einer Vektordatenbank wie Pinecone, Weaviate, Chroma oder pgvector gespeichert. Die Datenbank ist für das schnelle Auffinden ähnlicher Vektoren optimiert, was einen schnellen Abruf im großen Maßstab ermöglicht.
Schritt 2: Relevante Blöcke für die Benutzerabfrage abrufen
Wenn ein Benutzer eine Abfrage sendet, bettet das System die Frage mithilfe desselben Einbettungsmodells ein und durchsucht dann die Vektordatenbank nach Blöcken, deren Einbettungen der Einbettung der Abfrage am nächsten kommen. Am nächsten bedeutet normalerweise die ähnlichste Bedeutung, weshalb dies auch so genannt wird semantische Suche. Es geht um das Abrufen von Informationen, aber mit Bedeutung statt nur mit Schlüsselwörtern.
Einige Systeme kombinieren die semantische Suche mit der Schlüsselwortsuche (oft als „ Hybridsuche), um Fälle zu erfassen, in denen der Benutzer bestimmte Begriffe wie Produktnamen oder Akronyme eingibt. Die besten Ergebnisse durchlaufen dann ein Reranking-Modell, das sie sorgfältiger bewertet, bevor sie an den nächsten Schritt weitergeleitet werden.
Schritt 3. Erweitern Sie die Eingabeaufforderung
Der abgerufene Kontext wird zusammen mit der Frage des Benutzers in eine Eingabeaufforderungsvorlage eingefügt. Eine einfache Vorlage sieht so aus:
CONTEXT:
<retrieved chunks>
QUESTION:
<person's query>
PROMPT:
Reply the QUESTION utilizing solely the CONTEXT above.
If the CONTEXT does not comprise the reply, say you do not know.
Die letzte Anweisung ist wichtig. Dadurch wird das Modell angewiesen, ehrlich zu bleiben, wenn die Abfrage leer ausgeht. Ohne sie greift das Modell auf seine Trainingsdaten zurück und erfindet fröhlich eine Antwort.
Schritt 4. Generieren Sie die begründete Antwort
Die erweiterte Eingabeaufforderung geht an das LLM, das eine Antwort basierend auf dem abgerufenen Kontext und nicht nur auf dem, was es während des Trainings gespeichert hat, erstellt. Ein intestine konzipiertes RAG-System gibt auch die Quelle der abgerufenen Informationen zurück, sodass der Benutzer die Antwort selbst überprüfen kann.
Durchlaufen einer RAG-Abfrage von Ende zu Ende
Schauen wir uns an, wie der vollständige Ablauf für eine einzelne Frage aussieht. Stellen Sie sich vor, ein Unternehmen hat seine API-Referenzdokumente in eine Vektordatenbank aufgenommen, damit seine Entwickler Fragen im Klartext stellen können. Ein Entwickler fragt:
Benutzeranfrage: Wie hoch ist die Ratenbegrenzung auf unserem /users-Endpunkt?
Der Abrufschritt. Das System bettet die Benutzeranfrage ein und durchsucht die Vektordatenbank. Das oberste Ergebnis ist ein Teil der API-Dokumente (die folgenden Werte dienen der Veranschaulichung; tatsächliche Grenzwerte variieren je nach API):
Retrieved chunk (API Reference, Fee Limits part):
The /customers endpoint is rate-limited to 60 requests per minute
per API key. Exceeding this restrict returns a 429 Too Many
Requests response. Fee limits reset on a rolling 60-second
window. Contact the platform crew to request a better restrict
for manufacturing workloads.
Die erweiterte Eingabeaufforderung. Der abgerufene Kontext wird in die Eingabeaufforderungsvorlage eingefügt:
CONTEXT:
The /customers endpoint is rate-limited to 60 requests per minute
per API key. Exceeding this restrict returns a 429 Too Many
Requests response. Fee limits reset on a rolling 60-second
window.
QUESTION:
What is the fee restrict on our /customers endpoint?
Reply the query utilizing solely the context above.
If the context does not comprise the reply, say you do not know.
Die generierte Antwort. Der LLM antwortet:
Generierte Antwort: Der /users-Endpunkt ist auf 60 Anfragen professional Minute und API-Schlüssel begrenzt. Darüber hinausgehende Anfragen geben eine 429-Antwort zurück und das Restrict wird in einem fortlaufenden 60-Sekunden-Fenster zurückgesetzt. (Quelle: API-Referenz, Abschnitt „Ratenbegrenzungen“)
Beachten Sie, was das Modell nicht getan hat. Es wurde keine Zahl erraten. Es wurde nicht auf eine vage Erinnerung an das zurückgegriffen, was typische REST-APIs normalerweise ermöglichen. Es wurde genau die Richtlinie verwendet, die beim Abruf zurückkam, und auf die Quelle verwiesen. Das ist der Wert von RAG in einer Abfrage.
Wann RAG die richtige Wahl ist (und wann nicht)
RAG ist das richtige Software, wenn sich die Informationen, die Ihr Modell benötigt, häufig ändern, wenn sie in privaten Dokumenten gespeichert sind, wenn Benutzer Quellen überprüfen müssen oder wenn die Wissensdatenbank zu groß ist, um in eine Eingabeaufforderung zu passen.
Es ist nicht immer die beste Wahl. Wenn Sie möchten, dass das Modell einen bestimmten Schreibstil, Ton oder Ausgabeformat lernt, Feinabstimmung passt normalerweise besser. Wenn die von Ihnen benötigten Informationen klein und stabil genug sind, um jedes Mal direkt in die Eingabeaufforderung eingefügt zu werden, kann die Verwaltung von Eingabeaufforderungen mit langem Kontext einfacher und kostengünstiger sein. Für einige Aufgaben verwenden Sie mehr als einen Ansatz zusammen, z. B. die Feinabstimmung eines Modells auf den Ton Ihres Unternehmens und die Verwendung von RAG, um ihm aktuelle Fakten zu vermitteln.
Hier ist ein kurzer Vergleich dieser drei Ansätze:
| LAPPEN | Feinabstimmung | Eingabeaufforderung mit langem Kontext | |
|---|---|---|---|
| Am besten für | Bereitstellung der Modellfakten aus einer externen Datenquelle | Bringen Sie dem Modell einen Stil, einen Ton oder ein Format bei | Kleines, stabiles Wissen, das in jede Eingabeaufforderung passt |
| Verarbeitet neue Daten | Ja, aktualisieren Sie einfach die Wissensdatenbank | Nein (erfordert einen weiteren Feinabstimmungsjob professional Replace) | Ja, aber Sie fügen es jedes Mal ein |
| Verarbeitet non-public Daten | Ja | Ja, aber die Daten werden in das Modell integriert | Ja |
| Unterstützt Zitate | Ja | Nicht von Natur aus; Kein Stay-Quellenabruf | Beschränkt |
| Kosten für die Aktualisierung | Niedrig (Dokumente neu indizieren) | Hoch (Modell neu trainieren) | Niedrig (Bearbeiten Sie die Eingabeaufforderung) |
Die nützliche Frage lautet nicht: „Soll ich RAG verwenden?“ Es geht darum: „Was braucht mein Modell, was es noch nicht hat?“ Wenn die Antwort „Fakten“ lautet, ist RAG quick immer ein guter Ausgangspunkt.
So erkennen Sie, ob Ihr RAG-System funktioniert
Der Versand eines RAG-Methods ist relativ einfach. Um sicherzustellen, dass die Fragen tatsächlich intestine beantwortet werden, bedarf es einer Evaluierung.
Drei Kennzahlen decken den Großteil dessen ab, was Sie frühzeitig benötigen:
- Treue misst, ob die generierte Antwort sich an den abgerufenen Kontext hält, anstatt Particulars zu erfinden.
- Antwortrelevanz misst, ob die Antwort tatsächlich auf die Benutzeranfrage eingeht.
- Kontextpräzision misst, ob beim Abrufen überhaupt die richtigen Brocken aufgetaucht sind.
Werkzeuge wie RAGAS Und DeepEval Automatisieren Sie diese Prüfungen anhand einer Reihe von Testfragen und erwarteten Antworten. Selbst ein kleiner Bewertungssatz von 20 bis 50 Fragen, die Ihnen wichtig sind, reicht aus, um Regressionen zu erkennen, wenn Sie Ihre Chunking-Strategie ändern, Einbettungsmodelle austauschen oder Ihr LLM aktualisieren.
Lernen, mit Retrieval-Augmented Era zu bauen
RAG vereint mehrere Kompetenzen. Sie benötigen etwas Python, ein Verständnis für Einbettungen, Vertrautheit mit Vektordatenbanken und Vektorsuche, Kenntnisse im Umgang mit LLM-APIs und ein Gespür für schnelles Engineering. Keines davon ist für sich genommen exotisch. Die interessante Arbeit besteht darin, wie sie zusammenpassen und in den praktischen Beurteilungen (Blockgröße, Abrufstrategie, Evaluierungsaufbau), die eine Demo von einem Produktionssystem unterscheiden.
Die Kernidee von RAG ist unkompliziert, aber der Wert, den sie bietet, ergibt sich aus der richtigen Anwendung. Beginnen Sie mit einer kleinen Wissensdatenbank, erstellen Sie einen Bewertungssatz und verbessern Sie die Abrufqualität weiter. Das ist der Weg von einer „coolen Demo“ zu einem KI-System, dem Sie in der Produktion vertrauen können.
FAQs
Was ist RAG in der Gen-KI?
In der generativen KI ist RAG (Retrieval-Augmented Era) eine Technik, die es einem Sprachmodell ermöglicht, externe Informationen einzubeziehen, bevor es antwortet. Anstatt sich nur auf das zu verlassen, was das Modell während des Trainings gelernt hat, ruft das System relevante Textabschnitte aus einer Wissensdatenbank ab und fügt sie in die Eingabeaufforderung ein. Dies stützt die Reaktion auf reale, überprüfbare Daten und reduziert Halluzinationen.
Ist ChatGPT ein RAG LLM?
Nicht standardmäßig. ChatGPT ist ein großes Sprachmodell, das Antworten allein aus seinen Trainingsdaten generiert. Es wird zu einem RAG-System, wenn Sie es mit einer externen Wissensquelle verbinden, indem Sie beispielsweise das Durchsuchen aktivieren, Dokumente in einem benutzerdefinierten GPT hochladen oder eine benutzerdefinierte App auf der OpenAI-API erstellen. Das zugrunde liegende Modell ist dasselbe; RAG ist die Architektur, die Sie darum herum aufbauen.
Was ist der Unterschied zwischen RAG und MCP?
RAG ist eine Technik zur Verankerung der Antworten eines LLM in abgerufenen Daten. MCP (Mannequin Context Protocol) ist ein Normal für die Verbindung von KI-Anwendungen mit externen Instruments und Datenquellen. Sie lösen unterschiedliche Probleme und arbeiten oft zusammen. Sie können MCP verwenden, um einem Modell Zugriff auf eine Wissensdatenbank zu gewähren, und dann RAG-Muster verwenden, um die richtigen Informationen abzurufen und in Eingabeaufforderungen einzufügen.
Was ist der Unterschied zwischen RAG und einem LLM?
Ein LLM ist das Sprachmodell selbst: ein neuronales Netzwerk, das darauf trainiert ist, Textual content zu generieren. RAG ist eine Technik, die auf ein LLM angewendet wird, um ihm zur Laufzeit Zugriff auf externe Informationen zu ermöglichen. RAG ist additionally keine Different zur Verwendung eines LLM. Dies ist eine Möglichkeit, eines effektiver zu nutzen, wenn Sie Antworten benötigen, die auf privaten, aktuellen oder domänenspezifischen Daten basieren.
Beseitigt RAG Halluzinationen?
Nein, aber es reduziert sie deutlich. Selbst mit abgerufenem Kontext kann ein Modell immer noch halluzinieren, wenn der Abruf irrelevante Teile zurückgibt, die Eingabeaufforderung das Modell nicht stark einschränkt oder die Frage über das hinausgeht, was der Kontext unterstützt. Der richtige Weg, RAG zu betrachten, besteht darin, dass es sich um eine deutliche Reduzierung des Halluzinationsrisikos handelt und nicht um eine Garantie dagegen. Eine solide Suche, klare, zeitnahe Anweisungen und eine fortlaufende Bewertung verringern dieses Risiko weiter.
Benötige ich eine Vektordatenbank, um RAG nutzen zu können?
Nicht unbedingt. Für kleine oder einfache Wissensdatenbanken können Sie die Stichwortsuche, die In-Reminiscence-Ähnlichkeitssuche mit einer Bibliothek wie FAISS oder sogar einen einfachen SQL-Volltextindex verwenden. Vektordatenbanken werden wertvoll, wenn Sie über Tausende von Dokumenten verfügen, eine schnelle semantische Suche benötigen oder Funktionen wie Metadatenfilterung und Hybridsuche benötigen. Fangen Sie einfach an und fügen Sie eine Vektordatenbank hinzu, wenn Ihr Abrufbedarf Ihren Bestand übersteigt.