Przejdź do treści
4.8Ekspert7 min

Reranking w RAG: cross-encoder vs. bi-encoder

Sebastian KarallZaktualizowano 28 października 2026
Definicja

Reranking to drugi etap wyszukiwania w pipelinie RAG: cross-encoder ponownie ocenia najlepszych kandydatów znalezionych przez szybki bi-encoder i sortuje ich według rzeczywistej trafności względem zapytania. Według Anthropic reranking wyraźnie obniża wskaźnik błędów wyszukiwania w porównaniu z samym wyszukiwaniem wektorowym, kosztem wyższej latencji.

W skrócie

  • Bi-encodery kodują zapytanie i dokument osobno i są na tyle szybkie, że nadają się do wstępnego wyszukiwania w milionach chunków; cross-encodery przetwarzają zapytanie i dokument razem i są dokładniejsze, ale zbyt kosztowne na pierwszy przebieg.
  • Reranking to etap następujący po wyszukiwaniu: wyszukiwanie hybrydowe zwraca od top-50 do top-100 kandydatów, a reranker wybiera z nich najtrafniejsze pozycje, od top-5 do top-10, do promptu LLM.
  • Contextual Retrieval od Anthropic obniża wskaźnik błędów wyszukiwania top-20 o 49%; w połączeniu z rerankingiem o 67% (z 5,7 do 1,9%).
  • Modele istotne w praktyce (stan na październik 2026): Cohere Rerank 3.5 i 4.0 (API, wielojęzyczny, w tym niemiecki), BGE-Reranker v2-m3 (Apache 2.0, nadaje się do wdrożenia on-premise), Jina Reranker v2, v3 i v3.5 (otwarte wagi, ale licencja CC BY-NC 4.0: komercyjnie tylko z licencją, przez API lub oferty chmurowe), Voyage rerank-3 i rerank-3-lite (API) oraz rerankery typu LLM-as-Judge.
  • Kompromis to latencja kontra precyzja: wyszukiwanie hybrydowe z rerankingiem daje zwykle łączną latencję od około 100 do 800 milisekund.
  • Zbyt duże top-k przekazane do LLM powoduje efekt „Lost-in-the-Middle” i wyższe koszty; standardowym środkiem zaradczym jest reranking w połączeniu z top-k na poziomie od 5 do 10.

Reranking to drugi etap wyszukiwania w pipelinie RAG: cross-encoder ponownie ocenia najlepszych kandydatów znalezionych przez szybki bi-encoder i sortuje ich według rzeczywistej trafności względem zapytania. Według Anthropic reranking wyraźnie obniża wskaźnik błędów wyszukiwania w porównaniu z samym wyszukiwaniem wektorowym, kosztem wyższej latencji. Reranking nie jest więc opcjonalnym dodatkiem, tylko w systemach produkcyjnych najpewniejszym narzędziem, które oddziela to, co „semantycznie podobne”, od tego, co „faktycznie trafne”.

  • Co robi: reranking porządkuje na nowo kandydatów znalezionych w pierwszym wyszukiwaniu, zanim trafią do promptu LLM.
  • Dlaczego dwa etapy: szybki bi-encoder zapewnia recall w milionach chunków, a dokładny cross-encoder precyzję w końcowym top-k.
  • Konkretny efekt: Anthropic podaje redukcję wskaźnika błędów wyszukiwania top-20 nawet o 67%, gdy Contextual Retrieval łączy się z rerankingiem.

Dlaczego jednoetapowe wyszukiwanie nie wystarcza

Klasyczne wyszukiwanie wektorowe działa w oparciu o bi-encoder. Koduje on z wyprzedzeniem każdy chunk dokumentu w wektor i zapisuje go w indeksie ANN (najczęściej HNSW). W chwili wysłania zapytania jest ono rzutowane w tę samą przestrzeń wektorową, a podobieństwo oblicza się za pomocą odległości kosinusowej. To niezwykle szybkie i skaluje się do milionów wpisów, ale jest tylko przybliżeniem. Zapytanie i dokument nigdy „nie widzą” się nawzajem; model porównuje jedynie dwie niezależnie wygenerowane, skompresowane reprezentacje.

Skutkiem jest typowy antywzorzec: wyniki top-k są semantycznie podobne, ale niekoniecznie trafne dla konkretnego pytania. Właśnie tu wkracza reranking. To etap następujący po wyszukiwaniu, który stosuje dokładniejszy, choć wolniejszy mechanizm do niewielkiego zbioru kandydatów zamiast do całego korpusu.

Bi-encoder vs. cross-encoder: kluczowa różnica

Architektonicznym sednem rerankingu jest przejście od bi-encodera do cross-encodera.

Bi-encoder przetwarza zapytanie i dokument osobno. Każde z nich jest kodowane w osobny wektor, a trafność wynika dopiero z odległości między tymi wektorami. Ponieważ embeddingi dokumentów można obliczyć i zaindeksować z wyprzedzeniem, bi-encoder jest jedynym praktycznym wyborem do wstępnego wyszukiwania w dużych korpusach.

Cross-encoder przetwarza zapytanie i dokument razem w jednym przebiegu (forward pass). Model widzi oba teksty jednocześnie i może uwzględnić interakcje słowo po słowie, negacje oraz subtelne różnice znaczeniowe. Wynikiem jest znacznie precyzyjniejsza ocena trafności, przy czym obliczenia trzeba wykonać dla każdej pary zapytanie-dokument. Dla milionów chunków byłoby to zaporowo drogie; dla 50 do 100 wstępnie przefiltrowanych kandydatów jest akceptowalne.

Cecha

Bi-encoder

Cross-encoder

Wejście

Zapytanie i dokument osobno

Zapytanie i dokument razem

Wstępne indeksowanie

Tak (wektory dokumentów można zapisać)

Nie (parami, w czasie działania)

Szybkość

Bardzo szybki

Wolny (forward pass dla każdej pary)

Precyzja

Przybliżenie

Wysoka

Rola w pipelinie

Wstępne wyszukiwanie (recall)

Reranking (precyzja)

Skaluje się do

milionów chunków

od kilkudziesięciu do kilkuset kandydatów

Pośrodku znajduje się podejście late interaction (ColBERT): przechowuje embeddingi na poziomie tokenów dla każdego dokumentu i oblicza trafność za pomocą operacji MaxSim między tokenami zapytania i dokumentu. Zapewnia to większą dokładność niż klasyczny bi-encoder przy lepszej skalowalności niż pełny cross-encoder, ale wymaga znacznie więcej pamięci na wektory tokenów.

Miejsce w pipelinie i strategia top-k

Reranking to ściśle określony etap ścieżki zapytania. Kanoniczny układ wygląda tak:

```
[Wyszukiwanie hybrydowe, top_k = 50-100]
-> [Cross-Encoder Reranker (Cohere Rerank / BGE / Jina)]
-> [top_k = 5-10]
-> [Prompt + cytowanie źródeł]
-> [LLM]
```

Kluczowa kwestia: reranker wchodzi do gry dopiero po tanim etapie recall z bi-encoderem. Wstępne wyszukiwanie hybrydowe (wyszukiwanie gęste i BM25, połączone metodą Reciprocal Rank Fusion) celowo zwraca obszerną pulę od 50 do 100 kandydatów, aby zmaksymalizować recall. Następnie cross-encoder zawęża tę pulę do 5–10 naprawdę trafnych chunków, które trafiają do promptu.

To zawężenie nie jest wyłącznie kwestią kosztów. Zbyt duże top-k przekazane do LLM prowadzi do efektu „Lost-in-the-Middle”: istotne informacje ze środka długiego kontekstu są gorzej przetwarzane, a koszty tokenów rosną. Standardowym środkiem zaradczym jest reranking w połączeniu z wąskim top-k na poziomie od 5 do 10, z dodatkową wskazówką, by najważniejsze chunki umieszczać na początku promptu.

Przegląd modeli rerankingu (stan na październik 2026)

Model

Typ

Hosting / licencja

Języki

Uwagi

Cohere Rerank 3.5 / 4.0 (pro, fast)

Cross-encoder

API

wielojęzyczny, w tym niemiecki

Standard wśród API

BGE-Reranker v2-m3

Cross-encoder

Otwarte wagi, Apache 2.0

wielojęzyczny

Do wdrożenia on-premise, swobodne użycie komercyjne

Jina Reranker v2 / v3 / v3.5

Cross-encoder (od v3 listwise)

Otwarte wagi, CC BY-NC 4.0 (komercyjnie tylko z licencją, przez API lub oferty chmurowe)

wielojęzyczny

Jina AI (Berlin), od października 2025 r. część Elastic

Voyage rerank-3 / rerank-3-lite

Cross-encoder

API

wielojęzyczny

Voyage AI, od lutego 2025 r. część MongoDB

LLM-as-Judge (Haystack LLMRanker)

Prompt LLM

własny prompt dla GPT/Claude

dowolne

elastyczny, ale droższy

W europejskich scenariuszach z wymogami suwerenności danych najbardziej oczywistą opcją on-premise jest BGE-Reranker v2-m3: jest dostępny na licencji Apache 2.0, jest wielojęzyczny i można go komercyjnie uruchamiać we własnym centrum danych lub w regionie UE. Starszy bge-reranker-large (licencja MIT) według karty modelu obsługuje tylko chiński i angielski. Jina Reranker v2, v3 i v3.5 (opublikowany 27.07.2026) mają wprawdzie otwarte wagi, ale są objęte licencją CC BY-NC 4.0. Do komercyjnego wdrożenia on-premise potrzebujesz licencji od Jina AI; w przeciwnym razie pozostają API Jina, Elastic Inference Service lub oferty na AWS, Azure i Google Cloud. Jina AI ma siedzibę w Berlinie, ale od października 2025 r. należy do Elastic.

Jeśli akceptujesz API i potrzebujesz wielojęzycznej jakości, także dla niemieckiego, w praktyce sięgniesz po Cohere Rerank. Alternatywa, Voyage, należy od lutego 2025 r. do MongoDB; aktualne modele to rerank-3 i rerank-3-lite. Według wpisu premierowego z 30.09.2026 Voyage przetestował rerank-3 na 95 zbiorach danych z 9 domen, w tym na 51 wielojęzycznych w 31 językach. Podejście LLM-as-Judge (na przykład LLMRanker w Haystack) jest najbardziej elastyczne, ale najdroższe w przeliczeniu na zapytanie i powinno być stosowane tylko tam, gdzie jakość rerankingu jest krytyczna, a budżet latencji duży.

Kompromis między latencją a jakością

Reranking to najdroższy etap w części wyszukiwania ścieżki online (przed generowaniem odpowiedzi przez LLM), ponieważ cross-encoder wykonuje obliczenia dla każdego kandydata. W systemach produkcyjnych łączna latencja wyszukiwania hybrydowego i rerankingu wynosi zwykle od około 100 do 800 milisekund. Tym zakresem można bezpośrednio sterować:

  • Wielkość puli wejściowej: reranking 100 kandydatów kosztuje więcej niż 30. W zależności od korpusu często wystarcza mniejsza pula.
  • Wybór modelu: rerankery dostępne przez API, takie jak Cohere, są zoptymalizowane pod kątem przepustowości; LLM-as-Judge jest znacznie wolniejszy.
  • Sprzęt: samodzielnie hostowane rerankery mocno zyskują na inferencji na GPU; na CPU latencja znacznie rośnie.

Kompromis nie brzmi więc „reranking: tak czy nie”, tylko „ilu kandydatów przy jakim budżecie latencji”. W większości zastosowań korporacyjnych wzrost precyzji jest wart dodatkowej latencji.

Przykład liczbowy: wzrost precyzji

W publikacji „Introducing Contextual Retrieval” (19.09.2024) Anthropic zmierzył konkretne wartości na własnych benchmarkach (kod, beletrystyka, artykuły z ArXiv, nauka); jako reranker posłużył Cohere. Należy to czytać jako ewaluację dostawcy, który ma w tym własny interes, ale udokumentowaną metodologicznie:

  • Punkt wyjścia (samo wyszukiwanie): wskaźnik błędów wyszukiwania top-20 wynosi 5,7%.
  • Same Contextual Embeddings: redukcja o 35% do 3,7%.
  • Contextual Retrieval (embeddingi plus BM25): redukcja o 49% do 2,9%.
  • Contextual Retrieval plus reranking: redukcja o 67% do 1,9%.

W praktyce oznacza to: z 1000 trafnych dokumentów na początku w top-20 brakuje 57, a przy pełnym pipelinie już tylko 19. Sam reranking, czyli krok z 2,9 do 1,9%, eliminuje w tym układzie mniej więcej kolejną jedną trzecią pozostałych błędów. W produkcyjnym systemie RAG każdy uniknięty błąd wyszukiwania oznacza o jeden chunk mniej, który mógłby skłonić LLM do błędnej lub niepopartej źródłami odpowiedzi. Właśnie dlatego praktyka RAG wymienia „brak rerankingu” jako wyraźny antywzorzec: top-k są wtedy wprawdzie semantycznie podobne, ale nie trafne.

Dla agencji i decydentów B2B

Jeśli wdrażasz produkcyjny system RAG w Europie, od początku zaplanuj reranking jako stały etap pipeline'u, a nie jako późniejszy tuning. Efekt jest duży, a nakład pracy przy wdrożeniu umiarkowany: dodatkowe wywołanie API (Cohere) albo samodzielnie hostowany reranker z otwartą licencją, taki jak BGE v2-m3, między wyszukiwaniem a LLM. Dla agencji, które budują dla klientów asystentów wiedzy lub wewnętrzne wyszukiwarki, reranking daje najlepszy stosunek wzrostu jakości do nakładu pracy i jest mierzalnym argumentem w pitchu, bo wzrost precyzji da się wykazać we frameworkach ewaluacyjnych takich jak RAGAS (Context Precision). Blck Alpaca projektuje takie dwuetapowe architektury wyszukiwania, łącznie z wyborem modeli zgodnym z wymogami UE i budżetowaniem latencji. Zleć sprawdzenie swojego obecnego pipeline'u RAG pod kątem tego, czy właściwe chunki rzeczywiście trafiają na początek.

Podsumuj z AIChatGPTClaudePerplexity

Otwiera czat z przygotowanym promptem.

Najczęściej zadawane pytania

Czym różni się bi-encoder od cross-encodera?
Bi-encoder koduje zapytanie i dokument niezależnie od siebie w osobne wektory; podobieństwo oblicza się dopiero potem za pomocą odległości kosinusowej. To szybkie rozwiązanie, które pozwala indeksować z wyprzedzeniem, dlatego idealnie nadaje się do wstępnego wyszukiwania. Cross-encoder przetwarza zapytanie i dokument razem w jednym przebiegu (forward pass), dzięki czemu daje znacznie precyzyjniejszą ocenę trafności, ale jest zbyt wymagający obliczeniowo, by przeszukiwać miliony chunków. Dlatego cross-encoder wkracza dopiero na etapie rerankingu, na niewielkiej liczbie kandydatów.
Czy potrzebuję rerankingu, jeśli już korzystam z wyszukiwania hybrydowego?
W większości wdrożeń produkcyjnych tak. Wyszukiwanie hybrydowe poprawia recall, czyli do puli kandydatów trafia więcej trafnych dokumentów. Reranking poprawia precyzję na szczycie listy: dba o to, by naprawdę najtrafniejsze chunki znalazły się na samym początku i trafiły do ograniczonego kontekstu LLM. Według Anthropic reranking wnosi mierzalny wzrost jakości ponad to, co daje Contextual Retrieval (redukcja wskaźnika błędów top-20 rośnie z 49 do 67%, a sam wskaźnik błędów spada z 2,9 do 1,9%).
Które modele rerankingu liczą się w 2026 roku?
Standardem w formie API jest Cohere Rerank, obecnie w wersji 4.0 (pro i fast) obok 3.5, wielojęzyczny, w tym z obsługą niemieckiego. Otwarte wagi z licencją pozwalającą na swobodne użycie komercyjne ma BGE-Reranker v2-m3 (Apache 2.0); to najbardziej oczywista opcja on-premise. Jina Reranker v2, v3 i v3.5 również mają otwarte wagi, ale są objęte licencją CC BY-NC 4.0: komercyjnie możesz z nich korzystać tylko przez API Jina, przez oferty chmurowe (zależnie od wersji AWS, Azure, Google Cloud lub Elastic Inference Service) albo z licencją od Jina AI. Jina AI należy do Elastic od października 2025 r. Voyage rerank-3 i rerank-3-lite to kolejne warianty dostępne przez API (rerank-2.5 Voyage zalicza już do starszych modeli); Voyage AI należy do MongoDB od lutego 2025 r. Elastyczny, ale droższy jest reranker typu LLM-as-Judge, na przykład LLMRanker w Haystack. Wszystkie informacje według stanu na październik 2026 r.
Ile latencji kosztuje reranking?
Reranking to najdroższy etap w części wyszukiwania ścieżki zapytania (przed generowaniem odpowiedzi przez LLM), ponieważ cross-encoder wykonuje pełny przebieg (forward pass) dla każdego kandydata. W praktyce łączna latencja wyszukiwania hybrydowego i rerankingu wynosi zwykle od około 100 do 800 milisekund. Można nią sterować liczbą kandydatów poddawanych rerankingowi: im mniejsza pula wejściowa, tym niższe latencja i koszty.
Czym jest ColBERT, czyli late interaction?
ColBERT to podejście late interaction, które plasuje się między bi-encoderem a cross-encoderem. Zamiast jednego wektora na dokument przechowuje embeddingi na poziomie tokenów i oblicza trafność za pomocą operacji MaxSim między tokenami zapytania i dokumentu. Daje to wyższą dokładność niż czysty bi-encoder i lepszą skalowalność niż cross-encoder, ale wymaga więcej pamięci na wektory tokenów.

Chcesz zgłębić temat?

Otrzymuj nowe analizy prosto na swoją skrzynkę albo zobacz, jak wykorzystujemy tę wiedzę w firmach.