Ich diskutiere einen bestimmten Schritt der RAG -Pipeline: den Dokumentenabrufschritt. Dieser Schritt ist für die Leistung eines Lappensystems von entscheidender Bedeutung, wenn man bedenkt, dass es für ein LLM schwierig ist, die relevantesten Dokumente zu erhalten, die Fragen des Benutzers korrekt zu beantworten. Ich werde den traditionellen Ansatz zum Abholen der relevantesten Dokumente, einige Techniken zur Verbesserung und die Vorteile diskutieren, die Sie aus einem besseren Dokumentenabruf in Ihrer Lag -Pipeline sehen werden.
Gemäß meinem letzten Artikel über Anreicherung des LLM -Kontextes mit MetadatenIch werde mein Hauptziel für diesen Artikel schreiben:
Mein Ziel In diesem Artikel soll hervorgehoben werden, wie Sie die relevantesten Dokumente für Ihre KI -Suche abrufen und filtern können.

Inhaltsverzeichnis
Warum ist ein optimales Dokumentenabruf wichtig?
Es ist wichtig zu verstehen, warum das Dokument für jede Lag -Pipeline so kritisch ist. Um dies zu verstehen, müssen Sie auch einen allgemeinen Umriss des Flusses in einer Lappenpipeline haben:
- Der Benutzer geht in seine Abfrage ein
- Die Abfrage ist eingebettet, und Sie berechnen die Einbettung der Ähnlichkeit zwischen der Abfrage und jedem einzelnen Dokument (oder ein Teil des Dokuments)
- Wir holen die relevantesten Dokumente, die auf der Einbettung der Ähnlichkeit basieren
- Die relevantesten Dokumente (oder Brocken) werden in ein LLM eingespeist und werden aufgefordert, die Benutzerfrage angesichts der bereitgestellten Brocken zu beantworten

Jetzt gibt es einige Aspekte der Pipeline, was wichtig ist. Elemente wie:
- Welches Einbettungsmodell verwenden Sie
- Welches LLM -Modell verwenden Sie?
- Wie viele Dokumente (oder Brocken) holen Sie ab?
Ich würde jedoch argumentieren, dass es wahrscheinlich keinen Aspekt gibt, der wichtiger ist als die Auswahl der Dokumente. Dies liegt daran, dass es ohne die richtigen Dokumente keine Rolle spielt, wie intestine Sie LLM sind oder wie viele Brocken Sie abrufen, ist die Antwort am wahrscheinlichsten falsch.
Das Modell wird wahrscheinlich mit einem etwas schlechteren Einbettungsmodell oder einem etwas älteren LLM funktionieren. Wenn Sie jedoch nicht die richtigen Dokumente abrufen, fällt Ihre Lag -Pipeline aus.
Traditionelle Ansätze
Ich werde zunächst einige traditionelle Ansätze verstehen, die heute verwendet werden, wobei ich hauptsächlich die Einbettung der Ähnlichkeit oder der Key phrase -Suche anhand einbettet.
Ähnlichkeit einbetten
Die Verwendung von Ähnlichkeiten, um die relevantesten Dokumente abzurufen, ist heute der Ansatz. Dies ist ein solider Ansatz, der in den meisten Anwendungsfällen anständig ist. RAG mit dem Einbetten von Ähnlichkeitsdokumenten Abruf ist genau so, wie ich oben beschrieben habe.
Key phrase -Suche
Die Key phrase -Suche wird häufig auch zum Abrufen relevanter Dokumente verwendet. Traditionelle Ansätze wie TF-IDF oder BM25 werden bis heute mit Erfolg verwendet. Die Key phrase -Suche hat jedoch auch ihre Schwächen. Beispielsweise holt es nur Dokumente, die auf einer genauen Übereinstimmung basieren, was Probleme einführt, wenn eine genaue Übereinstimmung nicht möglich ist.
Daher möchte ich einige andere Techniken diskutieren, mit denen Sie Ihren Dokumentenabrufschritt verbessern können.
Techniken, um relevantere Dokumente zu holen
In diesem Abschnitt werde ich einige fortgeschrittenere Techniken erörtern, um die relevantesten Dokumente abzurufen. Ich werde den Abschnitt in zwei Teile teilen. Der erste Abschnitt behandelt das Optimieren von Dokumentenabruf für den Rückruf und bezieht sich auf das Abrufen möglichst viele der relevanten Dokumente wie möglich aus dem Korpus der verfügbaren Dokumente. In dem anderen Unterabschnitt wird erläutert, wie die Präzision optimiert werden kann. Dies bedeutet, dass die von Ihnen abgerufenen Dokumente tatsächlich korrekt und für die Benutzerabfrage related sind.
Rückruf: Holen Sie sich mehr von den relevanten Dokumenten
Ich werde die folgenden Techniken diskutieren:
- Kontextabruf
- Mehr Stücke holen
- Wiederbelebung
Kontextabruf

Kontextabruf ist eine von Anthropic im September 2024 eingeführte Technik. Ihr Artikel behandelt zwei Themen: Hinzufügen von Kontext zum Dokumentieren von Brocken und die Kombination der Schlüsselwortsuche (BM25) mit semantischer Suche, um relevante Dokumente abzurufen.
Um den Dokumenten einen Kontext hinzuzufügen, nehmen sie jedes Dokumentanteil und fordern ein LLM auf, angesichts des Chunks und des gesamten Dokuments, um den Chunk um sowohl Informationen aus dem angegebenen Chunk als auch im relevanten Kontext aus dem gesamten Dokument umzuschreiben.
Wenn Sie beispielsweise ein Dokument in zwei Stücke unterteilt haben. Wenn Chunk One wichtige Metadaten wie Adresse, Datum, Ort und Uhrzeit enthält, und der andere Chunk enthält Informationen zu einem Mietvertrag. Die LLM könnte den zweiten Teil umschreiben, um sowohl den Mietvertrag als auch den relevantesten Teil des ersten Teils einzuschließen, in diesem Fall die Adresse, der Ort und das Datum.
Anthropic erläutert auch die Kombination der semantischen Suche und der Key phrase -Suche in ihrem Artikel, das Abrufen von Dokumenten mit beiden Techniken und verwendet einen priorisierten Ansatz, um die von jeder Technik abgerufenen Dokumente zu kombinieren.
Mehr Stücke holen
Ein einfacherer Ansatz, um mehr von den relevanten Dokumenten abzurufen, besteht darin, einfach mehr Stücke zu holen. Je mehr Stücke Sie holen, desto höher ist Ihre Wahrscheinlichkeit, die relevanten Stücke zu holen. Dies hat jedoch zwei Hauptabgriffen:
- Sie werden wahrscheinlich auch irrelevantere Brocken erhalten (Impacting Recall)
- Sie erhöhen die Menge an Token, die Sie Ihrem LLM füttern, was sich negativ auf die Ausgangsqualität der LLM auswirken kann
Umruft erneut zu erinnern
Das Neuaufbau ist auch eine leistungsstarke Technik, mit der die Präzision und das Abrufen relevanter Dokumente an eine Benutzerabfrage erhöht werden können. Wenn Sie Dokumente basieren, die auf semantischer Ähnlichkeit basieren, weisen Sie allen Brocken eine Ähnlichkeitsbewertung zu und halten in der Regel nur die obersten ok ähnlichen Brocken (ok ist normalerweise eine Zahl zwischen 10 und 20, aber es variiert für verschiedene Anwendungen). Dies bedeutet, dass ein Reranker versuchen sollte, die relevanten Dokumente in die relevantesten Dokumente zu stellen und gleichzeitig irrelevante Dokumente aus derselben Liste zu halten. Ich denke, Qwen Reranker ist ein gutes Modell; Es gibt jedoch auch viele andere Reranker da draußen.
Präzision: Filtern Sie irrelevante Dokumente weg
- Wiederbelebung
- LLM -Überprüfung
Präzision neu sein
Wie im letzten Abschnitt zum Rückruf erläutert, können Reranker auch zur Verbesserung der Präzision verwendet werden. Reranker erhöhen den Rückruf, indem sie relevante Dokumente in die oberste Okay -Liste der relevanten Dokumente hinzufügen. Auf der anderen Seite werden die Reranker die Präzision verbessern, indem sie sicherstellen, dass die irrelevanten Dokumente nicht in der Liste der relevantesten Dokumente von Okay fernhalten.
LLM -Überprüfung
Die Verwendung von LLM, um die Relevanz der Chunk (oder Dokument) zu beurteilen, ist auch eine leistungsstarke Technik, um irrelevante Stücke wegzufiltern. Sie können einfach eine Funktion wie unten erstellen:
def is_relevant_chunk(chunk_text: str, user_query: str) -> bool:
"""
Confirm if the chunk textual content is related to the person question
"""
immediate = f"""
Given the offered person question, and chunk textual content, decide whether or not the chunk textual content is related to reply the person question.
Return a json response with {
"related": bool
}
<user_query>{user_query}</user_query>
<chunk_text>{chunk_text}</chunk_text>
"""
return llm_client.generate(immediate)
Anschließend füttern Sie jedes Stück (oder Dokument) durch diese Funktion und behalten nur die Brocken oder Dokumente, die von der LLM als related beurteilt werden.
Diese Technik hat zwei Hauptabgrenzen:
- LLM Kosten
- LLM -Reaktionszeit
Sie werden viele LLM -API -Anrufe senden, die zwangsläufig erhebliche Kosten entstehen. Darüber hinaus dauert das Senden von so vielen Anfragen Zeit, was Ihrer Lag -Pipeline eine Verzögerung verleiht. Sie sollten dies mit der Notwendigkeit einer schnellen Antworten auf die Benutzer ausgleichen.
Vorteile der Verbesserung des Dokumentenabrufs
Die Verbesserung des Dokumentabrufschritts in Ihrer Lag -Pipeline hat zahlreiche Vorteile. Einige Beispiele sind:
- Bessere LLM -Frage zur Beantwortung der Leistung
- Weniger Halluzinationen
- Öfter in der Lage, die Fragen der Benutzer korrekt zu beantworten
- Im Wesentlichen erleichtert es den Job der LLMs
Insgesamt steigt die Fähigkeit Ihres Fragenbeantwortungsmodells in Bezug auf die Anzahl der erfolgreich beantworteten Benutzeranfragen. Dies ist die Metrik, die ich empfehle, um Ihr Lappensystem zu bewerten, und Sie können mehr über LLM -Systembewertungen in meinem Artikel über lesen Bewertung von 5 Millionen Dokumenten mit automatischen Evalen.
Weniger Halluzinationen sind ebenfalls ein unglaublich wichtiger Faktor. Halluzinationen sind eines der wichtigsten Probleme, mit denen wir mit LLMs konfrontiert sind. Sie sind so schädlich, weil sie das Vertrauen der Benutzer in das Frage-Antworten-System senken, wodurch sie weniger wahrscheinlich sind, dass sie Ihre Anwendung weiterhin verwenden. Es ist jedoch wertvoll, die Menge an Halluzinationen zu minimieren, die das Lag -System erzeugt.
Weniger irrelevante Dokumente (Präzision) vermeiden auch die Probleme von Kontext aufblähen (zu viel Lärm im Kontext) oder sogar Kontextvergiftung (falsche Informationen in den Dokumenten angegeben).
Zusammenfassung
In diesem Artikel habe ich besprochen, wie Sie den Dokumentenabrufschritt Ihrer Lag -Pipeline verbessern können. Ich begann zu diskutieren, wie ich glaube, dass der Dokumentenabrufschritt der wichtigste Teil der Rag -Pipeline ist, und Sie sollten Zeit damit verbringen, diesen Schritt zu optimieren. Darüber hinaus habe ich diskutiert, wie herkömmliche Lag -Pipelines relevante Dokumente durch semantische Suche und Keywordsuche abrufen. Weiter diskutierte ich über Techniken, die Sie verwenden können, um sowohl die Präzision als auch den Rückruf von abgerufenen Dokumenten mit Techniken wie dem Kontextabruf und der LLM -Chunk -Überprüfung zu verbessern.
👉 Finden Sie mich in Socials:
✍️ Medium
