Procedura

Hybrydowe wyszukiwanie i reranking

Wzorzec produkcyjny dla RAG: hybrydowe retrieval (BM25 + wektory), deduplikacja, reranking i filtry (ACL/świeżość/DLP). Zorientowane na mierzalną jakość oraz SLO.

Czas czytania: ~14 min Aktualizacja: 2026-01-09
W skrócie
  • BM25 + vector równolegle
  • merge, dedupe i rerank
  • filtry ACL/świeżość + cytowania

Kiedy hybryda jest potrzebna

W klasycznym RAG pojedynczy mechanizm wyszukiwania często nie wystarcza: BM25 jest niezastąpiony dla nazw własnych, numerów, kodów i cytatów, natomiast wyszukiwanie wektorowe lepiej radzi sobie z parafrazą i semantyką. Hybryda łączy oba światy — pod warunkiem, że jest porządnie zrobiona.

Hybrydowe retrieval + rerank
Pipeline: BM25 + vector → merge+dedupe → rerank → filtry → dobór fragmentów i cytowania.

Architektura pipeline

Minimalny, solidny wariant obejmuje:

  1. Normalizację zapytania (język, odmiany, usuwanie śmieci).
  2. Lexical retrieval (BM25) oraz vector retrieval (embeddingi).
  3. Merge + dedupe na poziomie doc_id i chunk_id.
  4. Rerank (cross‑encoder lub inny model rankingowy).
  5. Filtry: ACL, świeżość, DLP, domeny dozwolone.
  6. Wybór fragmentów (K_final) i przygotowanie cytowań.
Reguła porządkowa: filtry dostępu (ACL) wykonuj jak najwcześniej, natomiast filtry jakości („na temat / nie na temat”) po reranku.

Reranking: kiedy i jak

Rerank jest najdroższym, ale najskuteczniejszym elementem jakości. Dobre praktyki:

  • Cross‑encoder jako domyślna opcja jakości (najlepsza precyzja, koszt CPU/GPU).
  • LLM‑rerank tylko, gdy potrzebujesz oceny semantycznej z uzasadnieniem (drożej, wolniej).
  • Heurystyki (boost na tytuł, świeżość) jako tani „pierwszy filtr”.

Filtry i bezpieczeństwo

Retrieval to także wektor ataku. Minimalne zabezpieczenia:

  • sanity‑check zapytania (długość, zakazane wzorce, prompt injection w query),
  • whitelist domen/źródeł w RAG,
  • twarde filtry DLP przed wstrzyknięciem fragmentów do kontekstu,
  • cytowanie na poziomie fragmentu (nie „ogólnie z dokumentu”).

Metryki i ewaluacja

Hybryda wymaga mierzenia. Zalecany zestaw:

Recall@K
Czy dowód znalazł się w top‑K przed rerankiem?
nDCG / MRR
Czy rerank układa wyniki w poprawnej kolejności?
Evidence coverage
Czy odpowiedź jest pokryta cytowaniami (traceable)?
Latency p95
Czy pipeline mieści się w SLO?

Parametry domyślne

  • K_lex: 30–80 (tanie)
  • K_vec: 30–80 (tanie)
  • K_merge: 40–120 (po dedupe)
  • K_rerank: 20–60 (droższe)
  • K_final: 6–12 (do kontekstu i cytowań)

Wartości zależą od domeny; kluczowe jest spójne logowanie K w trace i testy regresji.

Checklist wdrożenia

  • Zdefiniuj pipeline, a następnie go wersjonuj (parametry, modele, progi).
  • Stosuj dedupe po doc_id/chunk_id oraz filtry ACL przed rerankiem.
  • Rerank traktuj jako inwestycję jakości: kontroluj koszt i SLO.
  • Wymuś cytowania do fragmentów i testuj „coverage”.
  • Utrzymuj golden set i porównuj metryki po każdej zmianie.

Powiązane

Skrót operacyjny
  1. BM25 + vector równolegle.
  2. Merge + dedupe (doc/chunk).
  3. Rerank + filtry + cytowania.
Bramki jakości
  • coverage cytowań ≥ próg
  • latency p95 ≤ SLO
  • brak źródeł → no‑answer
Artefakt do wdrożenia
Pipeline retrieval+rerank (wersjonowany) + test harness.
Powiązane: Golden set