Reranker und Zwei-Stufen-Retrieval | Pinecone

Inhalt

Retrieval Augmented Generation (RAG) ist ein überlasteter Begriff. Es verspricht die Welt, aber nach der Entwicklung einer RAG-Pipeline fragen sich viele von uns, warum sie nicht so gut funktioniert, wie wir es erwartet hatten.

Wie bei den meisten Werkzeugen ist RAG einfach zu bedienen, aber schwer zu meistern. Die Wahrheit ist, dass bei RAG mehr dazu gehört, Dokumente in eine Vektordatenbank zu legen und dann einen LLM hinzuzufügen. Das kann funktionieren, aber es klappt nicht immer.

Dieses E-Book soll Ihnen sagen, was zu tun ist, wenn die Out-of-the-Box-RAG nicht funktioniert. In diesem ersten Kapitel werden wir uns ansehen, was oft die einfachste und schnellste Lösung für suboptimale RAG-Pipelines ist – wir werden etwas über Neusortierer lernen.

Video-Begleiter für dieses Kapitel.


Rückruf vs. Kontextfenster

Bevor wir zur Lösung übergehen, wollen wir über das Problem sprechen. Mit RAG führen wir eine semantische Suche in vielen Textdokumenten durch – diese könnten zehntausende bis zu zehn Milliarden Dokumente sein.

Um schnelle Suchzeiten im großen Maßstab zu gewährleisten, verwenden wir in der Regel die Vektorsuche - das heißt, wir transformieren unseren Text in Vektoren, platzieren sie alle in einem Vektorraum und vergleichen ihre Nähe zu einem Abfragevektor mithilfe einer Ähnlichkeitsmetrik wie der Kosinus-Ähnlichkeit.

Um die Vektorsuche zu ermöglichen, benötigen wir Vektoren. Diese Vektoren sind im Wesentlichen Kompressionen der 'Bedeutung' eines Textes in (typischerweise) 768 oder 1536-dimensionale Vektoren. Es tritt ein gewisser Informationsverlust auf, da wir diese Informationen in einen einzigen Vektor komprimieren.

Aufgrund dieses Informationsverlusts sehen wir oft, dass die drei besten (zum Beispiel) Vektorsuchdokumente relevante Informationen verpassen. Leider kann die Abfrage relevante Informationen unterhalb unseres top_k-Grenzwerts zurückgeben.

Zusammenfassen
Der Artikel diskutiert die Probleme bei der Implementierung von Retrieval Augmented Generation (RAG) und schlägt eine Lösung in Form von Rerankern vor. RAG ermöglicht eine semantische Suche in vielen Textdokumenten durch die Verwendung von Vektorsuche. Allerdings führt die Informationsspeicherung in einem Kontextfenster zu einer Verschlechterung der Fähigkeit von Language-Modelle (LLMs), relevante Informationen abzurufen. Um dieses Problem zu lösen, schlägt der Artikel vor, die Anzahl der zurückgegebenen Dokumente zu erhöhen, um die Retrieval-Recall zu maximieren, und dann die relevantesten Dokumente für das LLM auszuwählen, um die LLM-Recall zu maximieren. Dies wird durch die Verwendung von Rerankern erreicht, die eine höhere Genauigkeit als Einbettungsmodelle aufweisen, aber langsamer sind. Der Artikel erklärt auch die Implementierung eines zweistufigen Retrieval-Systems mit Rerankern und gibt Anleitungen zur Datenvorbereitung und Einrichtung der Retrieval-Pipeline.