Reranker
Ein Reranker bewertet die Vorauswahl eines Retrieval-Systems mit einem langsameren, genaueren Modell wie einem Cross-Encoder erneut, bevor die Ergebnisse einen Nutzer oder ein LLM erreichen.
Ein Reranker ist ein Modell, das eine kurze Kandidatenliste eines schnellen Abrufmodells der ersten Stufe übernimmt, jeden Kandidaten sorgfältiger anhand der Anfrage bewertet und die Liste neu ordnet. Suchmaschinen, Pipelines zur abrufgestützten Generierung (RAG) und Empfehlungssysteme verwenden dieses Verfahren, weil die genauesten Relevanzmodelle zu langsam sind, um Millionen von Dokumenten zu verarbeiten, aber schnell genug für einige Dutzend bis einige Hundert Top-Kandidaten. Bei der Textsuche ist ein Cross-Encoder der gängige Reranker: ein Transformer, der Anfrage und einen Kandidaten gemeinsam einliest und einen einzelnen Relevanzwert ausgibt. Nogueira und Cho (2019) stimmten BERT auf diese Weise fein ab und erreichten auf der Rangliste für die MS-MARCO-Passagebewertung einen um 27 % höheren MRR@10 als der bisherige Spitzenwert, relativ betrachtet.
So funktioniert erst Abruf, dann Neubewertung#
Die erste Stufe legt den Schwerpunkt auf Recall: Durch Schlüsselwortsuche mit BM25, Vektorsuche auf Grundlage vorberechneter Embeddings oder beides werden in Millisekunden einige Hundert plausible Kandidaten aus der gesamten Sammlung abgerufen. Der Reranker legt den Schwerpunkt auf Precision: Für jedes Anfrage-Kandidaten-Paar führt er einen vollständigen Modelllauf aus. Nur die besten Ergebnisse gehen an den Nutzer oder in das Kontextfenster eines LLM. Die Ultralytics-Lösung VisualAISearch ist ein Abrufmodell dieser ersten Stufe. Sie erstellt mit CLIP ViT-B/32 Embeddings für einen Bilderordner, ordnet die Bilder anhand ihrer Kosinusähnlichkeit zu einer Textanfrage und gibt standardmäßig bis zu 30 Treffer mit einer Ähnlichkeit über dem Schwellenwert 0,1 zurück.
Cross-Encoder und Bi-Encoder#
Ein Bi-Encoder, das übliche Abrufmodell, erstellt separat Embeddings für die Anfrage und jedes Dokument. Dadurch lassen sich Dokumentvektoren einmal berechnen und in einer Vektordatenbank speichern. Diese Unabhängigkeit begrenzt das Verfahren aber auch: Der Dokumentvektor steht fest, bevor die Anfrage bekannt ist. Ein Cross-Encoder fügt Anfrage und Dokument zu einer Eingabe zusammen. So kann die Selbstaufmerksamkeit jedes Anfragewort mit jedem Dokumentwort vergleichen, allerdings ist zum Zeitpunkt der Anfrage für jedes Paar ein vollständiger Vorwärtslauf nötig. ColBERT liegt zwischen beiden Ansätzen: Es speichert einen Vektor pro Dokumenttoken und gleicht die Anfragetokens durch späte Interaktion mit diesen ab. Die Sentence-Transformers-Klasse CrossEncoder führt einen Reranker wie ms-marco-MiniLM-L6-v2 aus, der mit MS-MARCO-Suchanfragen trainiert wurde:
from sentence_transformers import CrossEncoder
query = "When was the transformer architecture introduced?"
# Shortlist returned by a fast first-stage retriever, in its original order
candidates = [
"Transformer models such as GPT and BERT are widely used in natural language processing.",
"An electrical transformer changes the voltage of an alternating current.",
"Convolutional neural networks became popular after AlexNet won ImageNet in 2012.",
"The transformer was introduced in the 2017 paper Attention Is All You Need.",
]
# The cross-encoder reads the query and each candidate together and scores their relevance
reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2")
ranked = reranker.rank(query, candidates)
for hit in ranked:
print(f"{hit['score']:6.2f} {candidates[hit['corpus_id']]}")Die Passage mit der Antwort auf die Frage steigt mit einem Wert von 6,97 vom letzten auf den ersten Platz und liegt damit deutlich vor dem nächsten Kandidaten mit −4,48. Der Satz über einen elektrischen Transformator enthält zwar das Schlüsselwort der Anfrage, erzielt aber nur −5,29.
Arten von Rerankern#
- Cross-Encoder: Kompakte Transformer, die anhand von Relevanzkennzeichnungen feinabgestimmt wurden, etwa die MS-MARCO-MiniLM-Modelle und die bge-Reranker-Familie von BAAI. Sie sind auch als gehostete Reranking-APIs verfügbar.
- LLM-Reranker: Ein großes Sprachmodell (LLM) erhält die Anweisung, Kandidaten zu bewerten oder eine ganze Liste auf einmal zu sortieren. RankGPT zeigte, dass ChatGPT und GPT-4 Passagen neu ordnen können, indem sie eine sortierte Liste ausgeben, und übertrug die Rangfolgen von ChatGPT durch Destillation auf einen kleinen, spezialisierten Reranker.
- Learning-to-Rank-Modelle: Empfehlungs- und E-Commerce-Systeme ordnen Kandidaten mit Modellen wie Gradient-Boosted Trees anhand von Merkmalen wie Klickverlauf, Preis und Aktualität neu. Trainiert werden sie mit Rangordnungszielen wie LambdaMART, das in LightGBM und XGBoost verfügbar ist.
Reranker und verwandte Konzepte#
- Semantische Suche: Sucht nach Bedeutung, meist mit einem Bi-Encoder als Abrufmodell. Ein Reranker kann optional als zweite Stufe darauf aufsetzen.
- Hybride Suche: Führt Ergebnislisten aus der Schlüsselwort- und Vektorsuche zusammen, häufig mit Reciprocal Rank Fusion. Dabei werden Ranglisten kombiniert, ohne die Inhalte erneut auszuwerten. Ein Reranker verarbeitet häufig die zusammengeführte Liste.
- Wissensdestillation: Trainiert ein schnelles Abrufmodell darauf, die Bewertungen eines langsamen Rerankers nachzuahmen, und überträgt damit einen Teil der Reranking-Qualität in die erste Stufe.
- Zweistufige Objektdetektoren: Verwenden bei Bildern dasselbe Prinzip: In einer Stufe zur Regionsvorschlagserzeugung werden mögliche Bounding Boxes vorgeschlagen. Eine zweite Stufe bewertet jede Box neu und verfeinert sie, bevor Non-Maximum Suppression (NMS) überlappende Duplikate entfernt.










