Cross-Encoder Re-Ranking
Embedding-Suche ist schnell, aber unscharf. Ein Cross-Encoder schaut sich Query und Kandidat zusammen an und liefert deutlich genauere Scores — zum Preis von einer LLM-artigen Inference pro Paar. Daher: erst Embedding-Top-50, dann Cross-Encoder auf Top-5.
Bi-Encoder: Query und Doc werden unabhängig in Vektoren übersetzt → Cosine. Doc-Vektoren können vorab gerechnet werden, Query dauert ~10 ms.
Cross-Encoder: Query + Doc werden zusammen durch ein Transformer-Modell gejagt → Score. Pro Paar ~50–100 ms, keine Vorberechnung möglich.
Cross-Encoder: Query + Doc werden zusammen durch ein Transformer-Modell gejagt → Score. Pro Paar ~50–100 ms, keine Vorberechnung möglich.
Bi-Encoder
Query → Encoder → V_q Doc 1 → Encoder → V_1 Doc 2 → Encoder → V_2 … Score_i = cosine(V_q, V_i)
Cross-Encoder
[Query] [SEP] [Doc 1] → Encoder → Score_1 [Query] [SEP] [Doc 2] → Encoder → Score_2 … (N separate Inferences nötig)
„Wie läuft der TLS-Handshake ab?“
#1ATLS verschlüsselt die Verbindung zwischen Browser und Server mit asymmetrischer Krypto im Handshake.0.81
#2BAsymmetrische Kryptographie nutzt ein Schlüsselpaar aus öffentlichem und privatem Schlüssel.0.79
#3CSymmetrische Verschlüsselung ist schnell, braucht aber einen gemeinsamen Schlüssel.0.77
#4DDas TLS-Protokoll führt einen Handshake durch, in dem sich beide Seiten authentifizieren.0.76
#5EHash-Funktionen wie SHA-256 sind keine Verschlüsselung — sie sind Einwegfunktionen.0.74
#6FX.509-Zertifikate binden einen öffentlichen Schlüssel an eine Identität, signiert von einer CA.0.72
#7GAES ist der weltweit am häufigsten genutzte symmetrische Algorithmus.0.70
Warum eigentlich? — Warum macht der Cross-Encoder das besser?
Im Bi-Encoder muss der Query-Vektor zu allen denkbaren Docs passen. Das ist ein Generalisierungs-Kompromiss. Der Cross-Encoder sieht Query und Doc zusammen und kann genau auf diesen einen Vergleich feintunen — z.B. erkennen, dass „TLS-Handshake“ in einer Frage konkret nach dem Protokollablauf fragt, nicht nur nach einer allgemeinen TLS-Erklärung.
Häufiger Denkfehler — Cross-Encoder direkt auf 10.000 Docs
Cross-Encoder skaliert linear mit Korpus-Größe. 10.000 Docs × 50 ms = 8 Minuten pro Query. Das ist nicht praktisch. Daher immer zweistufig: Recall (schnell, Embedding-Suche, Top-50) + Precision (langsamer, Cross-Encoder, Top-5).
Tiefer rein — Welcher Cross-Encoder?
Open Source:
BAAI/bge-reranker-large, cross-encoder/ms-marco-MiniLM-L-12-v2. Managed: Cohere Rerank, Voyage rerank, Jina Reranker. Faustregel: ein Reranker-Modell darf gerne ein Subset der Sprachen unterstützen, die du brauchst (Multi-Lingual-Modelle sind oft schwächer).