Der sechste Teil unserer Serie über moderne Retrieval-Augmented Generation (RAG)-Systeme.
Im vorherigen Beitrag habe ich Hybridsuche und Reciprocal Rank Fusion erklärt. Die Idee war, Keyword-Suche und Vektorsuche zu kombinieren und ihre Ranglisten-Ergebnisse auf praktische Weise zusammenzuführen.
Das liefert uns bessere Kandidaten. Aber Kandidaten sind nicht dasselbe wie abschließende Belege.
Anders gesagt: Das Retrieval-System hat möglicherweise Dokumente gefunden, die mit der Anfrage verwandt sind, aber nicht unbedingt die Dokumente, die die Anfrage am besten beantworten.
Hier kommt Reranking ins Spiel.

Ein Reranker nimmt die top Kandidatendokumente aus der Retrieval-Phase und bewertet sie erneut mit einem präziseren Modell.
Die erste Retrieval-Phase ist auf Recall optimiert. Sie soll alles finden, was relevant sein könnte.
Der Reranker ist auf Precision optimiert. Er soll entscheiden, welche dieser Kandidaten tatsächlich die nützlichsten Belege sind.
Das ist wichtig, weil die erste Retrieval-Phase in der Regel eine große Dokumentensammlung durchsuchen muss. Sie muss schnell sein. Deshalb verwendet die Vektorsuche vorberechnete Dokument-Embeddings, und die Keyword-Suche verwendet einen Index.
Ein Reranker ist langsamer und aufwändiger, daher führen wir ihn nicht über Millionen von Dokumenten aus.
Stattdessen führen wir ihn nur über die top Kandidaten aus.
Zum Beispiel: Wir rufen die top 100 Dokumente ab, führen Reranking durch, behalten die besten 5 oder 10 und senden diese an das LLM.
Das bietet eine gute Balance zwischen Geschwindigkeit und Qualität. Um zu verstehen, warum Reranking hilft, ist es sinnvoll, Bi-Encoder und Cross-Encoder zu vergleichen. Ein Bi-Encoder verarbeitet die Anfrage und das Dokument separat.

Die Anfrage wird in einen Vektor umgewandelt. Das Dokument wird in einen anderen Vektor umgewandelt. Dann vergleicht das System die Vektoren mit Kosinus-Ähnlichkeit oder einer anderen Ähnlichkeitsfunktion.
Das ist schnell und skalierbar.
Dokument-Embeddings können einmal berechnet und in einer Vektordatenbank gespeichert werden. Wenn ein Nutzer eine Frage stellt, berechnet das System nur das Anfrage-Embedding und vergleicht es mit den gespeicherten Dokument-Embeddings.
Deshalb sind Bi-Encoder für das First-Stage-Retrieval nützlich. Aber sie haben eine Schwäche.
Die Anfrage und das Dokument interagieren nicht innerhalb des Modells. Sie werden separat komprimiert und erst dann verglichen.
Ein Cross-Encoder funktioniert anders.

Er verarbeitet die Anfrage und das Dokument gemeinsam.
Das bedeutet, dass das Modell Wörter, Zahlen, Entitäten, Verneinungen und Beziehungen direkt vergleichen kann. Das macht es langsamer, aber in der Regel präziser.
Stellen Sie sich zum Beispiel diese Anfrage vor:
machine stops with servo alarm F217 after gripper replacement Und diese zwei Dokumente:
Document A:
After replacing the gripper module, recalibrate the servo end positions.
Document B:
Servo alarm F271 can occur after replacing the drive module. Ein Bi-Encoder könnte beide Dokumente als ähnlich betrachten. Beide erwähnen Servo-Alarme, Austausch und Maschinenverhalten.
Aber ein Cross-Encoder kann genauer hinschauen. Er kann erkennen, dass Dokument A zur Reparatursituation passt. Er kann auch erkennen, dass Dokument B einen anderen Alarmcode und ein anderes Modul erwähnt.
Der Reranker könnte sie also so bewerten:
Document A → 0.94
Document B → 0.31 Deshalb werden Cross-Encoder oft als Reranker eingesetzt.
Sie sind zu aufwändig für die Durchsuchung der gesamten Dokumentensammlung, aber sehr nützlich für die Neubewertung der top Kandidaten.
An diesem Punkt haben wir eine starke Retrieval-Pipeline:
keyword search
+ vector search
+ RRF
+ reranking Das ist bereits deutlich besser als eine einfache Top-K-Vektorsuche.
Zusammenfassend: Reranking macht das Retrieval präziser. Der erste Retrieval-Schritt findet Kandidaten, und der Reranker entscheidet, welche Kandidaten tatsächlich nützlich sind.
An diesem Punkt ist die Retrieval-Pipeline bereits recht stark. Aber manche Nutzerfragen sind nicht eine Frage. Sie sind mehrere Fragen, die in einem Satz verpackt sind. Im nächsten Beitrag werde ich Query Planning, Zerlegung und agentisches Retrieval erklären.




