Leitfäden

Wie man einen Reranker ohne Benchmark-Harness auswählt

Sie benötigen kein öffentliches Leaderboard, um einen Reranker auszuwählen. Sie benötigen Abfragen mit bekannten korrekten Passagen, eine Möglichkeit, die Position zu messen, und die Disziplin, unbeantwortbare Abfragen einzubeziehen.

Was ein Reranker ändert

Ein Erststufen-Retriever ist optimiert, um über einen großen Kandidatensatz schnell zu sein, was bedeutet, dass er die Relevanz approximiert. Ein Reranker liest die Abfrage und den Passage zusammen und bewertet sie ordnungsgemäß, über einen viel kleineren Satz. Er verbessert die Reihenfolge dessen, was bereits gefunden wurde. Er kann nicht finden, was die erste Stufe verpasst hat.

Diese einzelne Eigenschaft legt die Bewertung fest: Ein Reranker kann nur anhand von Abfragen beurteilt werden, bei denen der korrekte Passage bereits im Kandidatensatz enthalten ist. Wenn dies nicht der Fall ist, hilft kein Reranker und die Arbeit gehört upstream.

Der minimale funktionsfähige Rahmen

Sie benötigen einen Abfragesatz, den korrekten Passage-Identifizierer für jede Abfrage und eine Möglichkeit, den Rang, bei dem dieser Passage mit und ohne Reranker erscheint, aufzuzeichnen. Für einige hundert Abfragen kann dies ein Skript sein, das zwei geordnete Listen pro Abfrage schreibt und die Unterschiede ausgibt. Es benötigt kein Framework.

  • Aufzeichnen, ob der korrekte Passage überhaupt in den Top-Ergebnissen erscheint und bei welchem Rang. Beides verfolgen, denn ein Reranker, der den mittleren Rang verbessert, während er den Passage aus dem Fenster drängt, hat die Dinge verschlechtert.
  • Abfragen mit keinem korrekten Passage einbeziehen. Ein Reranker gibt immer noch seine beste Schätzung zurück, und die nützliche Messung ist, ob die Top-Punktzahl eines rerankten Fehlers sichtbar bleibt als niedriges Vertrauen oder nicht von einem Treffer zu unterscheiden ist.
  • Die Abfrage-Schwierigkeit im Satz halten. Abfragen, die ohne Reranking funktionieren, tragen nichts zur Vergleichsmessung bei, außer der Latenz.
  • Die Ergebnisse als festen Baseline speichern, damit eine zukünftige Änderung des Rerankers oder der ersten Stufe gegen etwas gemessen wird.

Der Handel, den niemand aufschreibt

Ein Cross-Encoder-Reranker fügt Latenz proportional zur Anzahl der Kandidaten hinzu, die er bewertet, und diese Kosten sitzen auf dem kritischen Pfad jeder Anfrage. Zwei Fragen sollten vor der Einführung beantwortet werden, schriftlich: Wie viele Kandidaten werden rerankt und wie viel mediane Latenz ist akzeptabel. Ein Reranker, der allein auf Qualität abgestimmt ist, neigt dazu, am Ende einen Kandidatensatz zu reranken, der groß genug ist, um den Latenz-Budget zu sprengen, bei dem der Qualitätszuwachs für Timeouts und Wiederholungen aufgewendet wird.

Öffentliche Benchmarks und warum sie hier täuschen

Öffentliche Retrieval-Benchmarks beschreiben einen Korpus und eine Abfrage-Verteilung, die Sie nicht haben. Ein Modell, das bei allgemeinem Text führt, kann bei Ihren Dokumenten zurückliegen, wenn Ihr Korpus strukturiert ist - Klauseln, Tabellen, Spezifikationen - weil die Trainingsverteilung selten wie ein Richtlinien-Dokument aussieht. Behandeln Sie eine Rangliste als eine Shortlist, dann entscheiden Sie auf Ihrem eigenen Korpus mit Ihren eigenen Abfragen, einschließlich der Ablehnungsfälle.

Wann man keinen hinzufügen sollte

Wenn die erste Stufe bereits den korrekten Passage an der Spitze für die meisten Abfragen zurückgibt, optimiert ein Reranker einen gelösten Fall auf Kosten der Latenz für jede Anfrage. Wenn die Fehler konzentriert sind im Schwanz der schwierigen Abfragen, ist die höhere-Hebel-Wirkung in der Regel das Chunking oder Parsen. Ein Reranker ist das richtige Werkzeug, wenn die erste Stufe den Passage findet, aber unter anderen, oberflächlich ähnlichen Texten einstuft - und das ist eine Bedingung, die Sie vor dem Commit messen können.

Was daraus folgt

  • Messung des Recalls am Cut-off und der mittleren Rangposition der korrekten Passage
  • Messung der von dem Reranker verursachten Latenz, nicht nur der Qualität
  • Testen auf dem Korpus, den Sie tatsächlich bereitstellen, nicht auf einem öffentlichen Benchmark