BM25, Embeddings und Reranker: Suchstufen auswählen

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

BM25 rankt Text anhand übereinstimmender Suchbegriffe. Embeddings finden Kandidaten mit ähnlicher Bedeutung. Ein Reranker bewertet die gefundenen Kandidaten erneut, um ihre Reihenfolge zu verbessern. Für Entwickler von Suchsystemen oder RAG lösen diese Stufen unterschiedliche Probleme und sollten getrennt getestet werden.

Beginne mit BM25 und setze Dokumentberechtigungen durch. Ergänze Embeddings, wenn relevante Passagen fehlen, weil die Suchanfrage andere Wörter verwendet. Ergänze einen Reranker, wenn die richtigen Passagen gefunden werden, aber zu weit unten in der Liste stehen. Behalte jede Stufe nur bei, wenn sie die Ergebnisse auf gelabelten Daten innerhalb des Zeit- und Kostenbudgets verbessert.

Eine Suchanfrage nach ERR-42 erfordert beispielsweise einen korrekten Umgang mit Identifikatoren. Eine Frage zu einem Fehler nach dem Aufwachen aus dem Ruhezustand kann semantisches Matching erfordern, wenn im Handbuch „Fehler beim Fortsetzen“ steht. Reranking hilft erst, nachdem die benötigte Passage in die Kandidatenmenge gelangt ist.

Was jede Stufe leistet

StufeMethodeAufgabe
FilterungStrukturierte FilterMandant, Berechtigungen, Produkt, Sprache, Zeit und Verfügbarkeit berücksichtigen.
Lexical RetrievalBM25Begriffe abgleichen; IDs und Fehlercodes mit geeigneten Feldern oder Analyzern erhalten.
Dense RetrievalEmbeddingsSynonyme, Paraphrasen, unklare Absichten und semantischer Recall.
FusionReciprocal Rank Fusion oder gewichtete Kombination von RetrievernSparse- und Dense-Kandidaten zusammenführen, ohne ihre Scores als vergleichbar zu behandeln.
RerankingCross-EncoderSuchanfrage und jeden Kandidaten gemeinsam lesen, um eine kurze Kandidatenliste zu bewerten.
Finale PräzisionLLM-Reranker oder AntwortmodellNuancen der Relevanz erst klären, wenn die Liste klein ist.
EvaluationRecall@k, nDCG, MRR, Klick-Labels, menschliche LabelsPrüfen, ob jede zusätzliche Stufe die Baseline verbessert.

Ausgangspunkte für verschiedene Anwendungsfälle

ProduktZu testender AnsatzWarum
DokumentationssucheBM25 plus Embeddings plus Cross-EncoderExakte API-Namen und semantische Fragen sind gleichermaßen wichtig.
RAG RetrievalBM25-Baseline; Hybrid Retrieval und Reranking vergleichenEvidenzabdeckung, Belege für Antworten und Latency bewerten.
ProduktsucheLexikalische Filter plus Hybrid Retrieval plus GeschäftsmerkmaleVerfügbarkeit, Preis, Popularität und exakte Facetten sind wichtig.
Support-SucheHybrid Retrieval plus Aktualität und Ticket-MetadatenÄhnliche Formulierungen und aktuelle Richtlinien sind gleichermaßen wichtig.
Interne WissensdatenbankBM25-Baseline, danach Dense Retrieval anhand von SuchprotokollenMit messbaren Ergebnissen beginnen, bevor Modellkosten hinzukommen.
Rechts- oder Compliance-SucheLexikalische Baseline plus strikte Filter, danach vorsichtige semantische ErweiterungFalsch positive und falsch negative Ergebnisse sind beide teuer.

Warum BM25 weiterhin in den Stack gehört

Embeddings finden Text mit ähnlicher Bedeutung, ersetzen aber nicht zuverlässig das exakte Matching. Fehlercodes, Funktionsnamen, Produkt-SKUs, juristische Formulierungen und Personennamen vermitteln die Suchabsicht oft durch ihre exakte Schreibweise. BM25 ist eine nützliche Baseline, weil es übereinstimmende Begriffe stärker gewichtet. Die Textanalyse kann diese Begriffe verändern: Der Standard-Analyzer von Elasticsearch teilt Text auf und wandelt ihn in Kleinschreibung um. Erhalte interpunktionssensitive IDs wie ERR-42 mit einem geeigneten Analyzer oder einem Feld für exakte Werte. BM25-Ranking garantiert keine exakte Gleichheit von Zeichenfolgen.

Dense Retrieval kann relevante Ergebnisse ergänzen, wenn Nutzer das Vokabular des Dokuments nicht kennen. Teste es neben BM25. Wenn die beiden Retriever nützliche, sich ergänzende Ergebnisse finden, kann RRF ihre gerankten Listen kombinieren. Es verwendet Ergebnispositionen, statt rohe lexikalische Scores mit Embedding-Scores zu vergleichen.

Wann ein Reranker sinnvoll ist

Ergänze einen Cross-Encoder, wenn relevante Dokumente in die Kandidatenmenge gelangen, aber zu weit unten ranken. Ein Cross-Encoder liest die Suchanfrage gemeinsam mit jedem Kandidatendokument. Dafür ist pro Paar ein Modelldurchlauf nötig; wende ihn daher auf eine kurze Kandidatenliste an. Wähle die Kandidatenanzahl anhand von gemessenem Recall und gemessener Latency; die ersten 50 sind ein sinnvoller Versuch, aber kein universeller Schwellenwert.

Teste einen LLM-Reranker, wenn ein Cross-Encoder Unterschiede übersieht, die deine Anwendung benötigt, etwa welche Version einer Richtlinie gilt. Er verursacht zusätzliche Modellarbeit, deren Kosten von der Kandidatenanzahl und der Eingabelänge abhängen. Vergleiche Qualität, Latency und Kosten auf derselben kurzen Kandidatenliste, bevor du ihn beibehältst.

Recall@k misst, wie viel des gelabelten relevanten Materials in den ersten k Ergebnissen erscheint. MRR belohnt eine hohe Position des ersten relevanten Ergebnisses; nDCG misst die Reihenfolge, wenn Labels unterschiedliche Relevanzstufen haben. Precision@1 prüft, ob das erste Ergebnis relevant ist.

Reihenfolge der Evaluation

  1. Labele reale Suchanfragen über wichtige Absichten, Sprachen, Berechtigungen und Fehlerkosten hinweg. Beginne klein und erweitere die Menge, bis Teilmengen und Unsicherheit die Entscheidung ausreichend stützen.
  2. Miss BM25 allein.
  3. Teste Dense Retrieval, wenn BM25 relevante Passagen verfehlt.
  4. Wenn sich die beiden Ergebnismengen ergänzen, teste Fusion mit nDCG und Recall@k.
  5. Teste Cross-Encoder-Reranking, wenn relevante Kandidaten zu weit unten ranken; miss Precision@1 und nDCG.
  6. Ergänze LLM-Reranking nur, wenn es die Qualität auch unter Berücksichtigung von Kosten und Latency verbessert.
  7. Beobachte Produktionsmetriken: Anteil ergebnisloser Suchanfragen, Reformulierungsrate, Klickrate, Antwortkorrekturen, p95-Latency und Kosten.

Weiterführende Lektüre

Quellen