Skip to main content

Przerankowanie (Cross-Encoder Reranking)

DLA AGENTÓW AIChatGPTClaude

Dwuetapowa metodologia wyszukiwania w systemach RAG: szybka wstępna selekcja kandydatów (Bi-Encoder / BM25) z następowym precyzyjnym rankowaniem za pomocą modelu cross-encoder (Cross-Encoder / Cohere Rerank / BGE-Reranker).

1. Przegląd koncepcji i problem systemowy

W klasycznych potokach RAG pierwotne wyszukiwanie wektorowe cierpi na problem niskiej selektywności (High Recall, Low Precision):

  1. Szum wektorowy: Indeks wektorowy zwraca 20 dokumentów, które wydają się podobne pod względem ogólnego tematu, ale tylko 2 z nich zawierają dokładną odpowiedź na pytanie techniczne.
  2. Zanieczyszczenie generatora: Przekazanie wszystkich 20 znalezionych fragmentów do okna kontekstowego modelu generatywnego powoduje efekt Context Rot: model zużywa tokeny na ponowne czytanie szumu i często gubi właściwy fakt (Lost-in-the-Middle).
  3. Blokada obliczeniowa: Użycie ciężkich, wysokoprecyzyjnych sieci neuronowych do bezpośredniego skanowania bazy wiedzy liczącej miliony artykułów jest niemożliwe – zapytanie trwałoby kilka minut.

Reranking (Cross-Encoder Reranking) rozwiązuje tę sprzeczność dzięki klasycznemu wzorcowi inżynierskiemu dwustopniowego potoku (Two-Stage Retrieval): tani i szybki etap wyszukiwania wybiera 50 potencjalnych kandydatów, a ciężki reranker natychmiast odrzuca wszystko zbędne, pozostawiając top-3 referencyjne fragmenty.

2. Taksonomia architektoniczna i model mentalny

Dwustopniowy potok retrievalu dzieli się na dwie fazy o różnych celach i algorytmach:

  • 1. Etap 1: Wstępna selekcja (Candidate Retrieval - Focus on Recall):
    • Zadanie: zagwarantować, że właściwy dokument trafił do próbek, nawet jeśli jego pozycja nie jest idealna.
    • Narzędzia: hybrydowe wyszukiwanie (wektory HNSW + BM25).
    • Rozmiar próbki: od 30 do 100 fragmentów w ciągu kilku milisekund.
  • 2. Etap 2: Reranking za pomocą Cross-Encodera (Scoring - Focus on Precision):
    • Zadanie: idealne uporządkowanie kandydatów według skali trafności.
    • Narzędzia: modele Cross-Encoder, wytrenowane do klasyfikowania pary «Zapytanie + Tekst» pod kątem prawdopodobieństwa bezpośredniej odpowiedzi.
    • Rozmiar wyjścia: top-3 lub top-5 najbardziej precyzyjnych dokumentów.
  • 3. Próg odcięcia (Score Thresholding): Rerankery zwracają bezwzględną ocenę trafności (Relevance Score od 0.0 do 1.0). Pozwala to ustawić surowy filtr: jeśli najlepszy dokument ma ocenę poniżej 0.4, system natychmiast wie, że odpowiedź nie istnieje w bazie wiedzy, zapobiegając halucynacjom generatora.

3. Potok techniczny i mechanika wewnętrzna

Cykl życia pracy rerankera:

  1. Candidate Ingestion (Przyjęcie puli kandydatów): Reranker otrzymuje wejściowe zapytanie użytkownika $Q$ oraz tablicę $N$ kandydatów $[D_1, D_2, \dots, D_n]$, znalezionych w pierwszym etapie.
  2. Pairwise Sequence Assembly (Składanie par tokenów): Dla każdego dokumentu tworzony jest pojedynczy, konkatenowany ciąg znaków ze specjalnymi separatorami: [CLS] Query: Co to jest mutex? [SEP] Document: Mutex to prymityw synchronizacji... [SEP].
  3. Full Cross-Attention Computation (Obliczanie wzajemnej uwagi): Transformer oblicza macierze uwagi, gdzie każdy token zapytania bezpośrednio oddziałuje z każdym tokenem dokumentu, analizując przeczenia, logiczne inwersje oraz dokładny kontekst.
  4. Logit Scoring & Truncation (Sortowanie i odcinanie): Głowa klasyfikacyjna modelu wyprowadza ocenę $P(\text{relevant} \mid Q, D)$. Kandydaci są sortowani malejąco według oceny. Dokumenty z niskim scorem są odrzucane, a top-$K$ przekazywane do finalnego promptu.

4. Praktyczne scenariusze inżynierskie w produkcji

01. Radykalna redukcja kosztów tokenów generatora

Zamiast wysyłania 15 000 tokenów surowych wyników do drogiego flagowego modelu (Claude 3.7 Sonnet / GPT-4o), reranker kompresuje wybór do 3 najdokładniejszych fragmentów (1 500 tokenów). Koszty generacji spadają 5–10-krotnie przy jednoczesnym wzroście jakości odpowiedzi.

02. Obsługa złożonych zapytań z przeczeniami

Zapytanie: «Pokaż serwisy, w których NIE używa się Docker». Zwykłe wyszukiwanie wektorowe znajdzie wszystkie artykuły ze słowem Docker. Reranker, analizując cząstkę «NIE» poprzez Cross-Attention, przesunie dokumenty dotyczące Dockera na dno rankingu i wyeksponuje alternatywne rozwiązania infrastrukturalne.

03. Wybór dokładnej wersji frameworku

Spośród 50 znalezionych plików dokumentacji reranker bezbłędnie umieszcza na pierwszym miejscu przewodnik dla wersji Next.js 15, odrzucając przestarzałe poradniki Next.js 12, nawet jeśli słowa kluczowe się pokrywają.

5. Pułapki, typowe błędy i bezpieczeństwo

  • Limit kontekstu modelu rerankera: Większość kompaktowych cross-encoderów ma limit wejścia wynoszący 512 lub 1024 tokeny. Jeśli Twój fragment jest dłuższy, reranker po prostu utnie jego koniec, gdzie mogła znajdować się kluczowa odpowiedź. Utrzymuj rozmiar fragmentów zgodny z parametrem max_length rerankera.
  • Narzut opóźnienia (Latency Tax): Pełne przetworzenie 100 kandydatów przez ciężki reranker na CPU może zająć do 1 sekundy. Ogranicz pulę kandydatów do rerankingu do 30–50 sztuk lub używaj lekkich, zoptymalizowanych modeli (FlashRank/ONNX).
  • Śmieci z pierwszego etapu: Jeśli algorytmy pierwszego etapu (Hybrid Search) w ogóle nie znalazły właściwego dokumentu i nie uwzględniły go w początkowym top-50, żaden reranker nie będzie w stanie go uratować (Garbage In, Nothing Out).
/ Najczęściej zadawane pytaniaSchema.org FAQPage

FAQ: Przerankowanie (Cross-Encoder Reranking)

Bi-Encoder (standardowy model osadzeń) oblicza wektory dla zapytania i dokumentu niezależnie od siebie, kompresując tekst do stałego punktu w przestrzeni współrzędnych – jest to szybkie (wyszukiwanie w indeksie HNSW trwa milisekundy), ale prowadzi do utraty subtelnych niuansów. Cross-Encoder przyjmuje zapytanie i dokument razem jako jedną sekwencję tokenów: mechanizm uwagi (Cross-Attention) porównuje każde słowo zapytania z każdym słowem dokumentu, co zapewnia maksymalną dokładność, ale wymaga intensywnych obliczeń dla każdego dokumentu.
/ Linki wewnętrzne
Wszystkie hasła