Ich habe einen Reranker in meine RAG-Pipeline eingebaut – und es hat alles kaputt gemacht
Ich habe einen Reranker in meine RAG-Pipeline integriert. Sofort schlugen meine Tests fehl.
In Version 2 nutzte ich Hybrid Retrieval mit FAISS und BM25. Dabei wurden alle 19 meiner Testfragen korrekt beantwortet. Dann fügte ich einen Cross-Encoder-Reranker hinzu, um die Präzision zu erhöhen.
Die Theorie ist simpel:
- Stufe 1: Schnelles Retrieval nutzen, um eine breite Menge an Kandidaten zu erhalten.
- Stufe 2: Einen intelligenten Reranker nutzen, um die besten auszuwählen.
Die Implementierung dauerte 20 Minuten. Sofort fielen 2 meiner 19 Tests durch.
Das Problem lag am Datenformat. Meine Daten enthalten dichte, tabellarische Chunks wie diesen: "Company: Zentara Robotics | CEO: Iris Kallas | Employees: 287"
Das Cross-Encoder-Modell wurde auf natürlichen Textabsätzen trainiert. Als es eine Tabellenzeile sah, vergab es einen sehr niedrigen Score. Es hielt den Chunk für irrelevant.
Das Hybrid Retrieval fand die Antwort, aber der Reranker warf sie weg.
Ich habe 7 verschiedene Wege versucht, um das zu beheben:
- Einen größeren Kandidatenpool nutzen.
- Mischen der Scores von Reranker und Retriever.
- Verwendung von Rank Fusion.
Nichts davon hat funktioniert. Der Reranker-Score war so negativ, dass er alles andere überlagerte. Das Modell hat nicht nur niedriger gerankt; es hat das Tabellenformat aktiv abgelehnt.
Ich habe aufgehört, an der Mathematik zu basteln, und stattdessen die Struktur geändert.
Anstatt den Reranker alles entscheiden zu lassen, habe ich meine besten Ergebnisse geschützt. Ich habe eine „Guaranteed Slot“-Strategie angewandt:
- Wenn man die Top-3-Ergebnisse möchte, behält man die Top 2 aus der ersten Stufe.
- Den Reranker nutzt man dann nur noch, um das dritte Ergebnis auszuwählen.
Dies stellt sicher, dass die Ergebnisse der Hybrid-Suche in der finalen Liste bleiben. Der Reranker verbessert lediglich die verbleibenden Plätze.
Das Ergebnis: 19/19 Tests bestanden.
Was ich gelernt habe:
- Reranker sind keine sofortigen Upgrades. Sie können die Performance bei strukturierten oder tabellarischen Daten verschlechtern.
- Dein Evaluation-Set ist dein Sicherheitsnetz. Ohne meine 19 Tests hätte ich ein kaputtes System ausgeliefert.
- Schütze, was funktioniert. Wenn dein Retrieval in der ersten Stufe gut ist, lass es nicht von einem Reranker überschrieben werden.
Baue einen starken Retriever auf, bevor du nach einem Reranker greifst.
Optionale Lern-Community: https://t.me/GyaanSetuAi
