Hybrid search w RAG: jak dobrze łączyć BM25 i podobieństwo wektorowe
Wyszukiwanie hybrydowe w RAG łączy wyszukiwanie leksykalne (BM25/dopasowanie słów kluczowych) z gęstym podobieństwem wektorowym. Oba retrievery działają równolegle, a ich listy trafień są scalane w jeden wynik za pomocą fuzji rankingów (najczęściej Reciprocal Rank Fusion). Dzięki temu system znajduje zarówno semantycznie podobne fragmenty, jak i dokładne terminy, nazwy własne i kody, które same embeddingi pomijają.
W skrócie
- Wyszukiwanie hybrydowe łączy dwa uzupełniające się retrievery: BM25 wyłapuje dokładne terminy, nazwy własne, identyfikatory produktów i kody, a gęste wyszukiwanie wektorowe rozpoznaje synonimy i znaczenie. Czysto wektorowy RAG może przeoczyć dokładne kody, np. kod błędu TS-999 z przykładu Contextual Retrieval firmy Anthropic.
- Reciprocal Rank Fusion (RRF) to najbardziej odporna metoda fuzji, ponieważ korzysta wyłącznie z pozycji w rankingu zamiast z nieporównywalnej surowej punktacji, więc obywa się bez normalizacji punktacji.
- Contextual Retrieval firmy Anthropic łączy Contextual Embeddings z Contextual BM25 i obniża odsetek błędów wyszukiwania w top 20 o 49 procent (z 5,7 do 2,9 procent), a z dodatkowym rerankingiem o 67 procent (stan na 09/2024).
- Hybrydowy retrieval w połączeniu z Gemini 2.5 Flash osiąga w benchmarku Agri-Query ponad 85 procent dokładności i wyraźnie przewyższa naiwne prompty z długim kontekstem (arXiv:2508.18093, 2025).
- Wszystkie gotowe do produkcji bazy wektorowe obsługują wyszukiwanie hybrydowe, w tym Qdrant (Berlin) i Weaviate (Amsterdam), czyli suwerenne opcje dla UE.
Wyszukiwanie hybrydowe w RAG łączy wyszukiwanie leksykalne (BM25/dopasowanie słów kluczowych) z gęstym podobieństwem wektorowym. Oba retrievery działają równolegle, a ich listy trafień są scalane w jeden wynik za pomocą fuzji rankingów. Dzięki temu system znajduje zarówno semantycznie podobne fragmenty, jak i dokładne terminy, nazwy własne i kody, które same embeddingi pomijają. Hybrydowy retrieval jest od 2023 roku stałym elementem Advanced RAG i powinien być częścią każdego produkcyjnego pipeline’u, który przeszukuje coś więcej niż ogólne teksty ciągłe.
- Co jest łączone: wyszukiwanie typu sparse (BM25, dokładne tokeny) plus wyszukiwanie typu dense (embeddingi wektorowe, znaczenie) w jeden zbiór trafień.
- Jak jest łączone: przez fuzję rankingów, najczęściej Reciprocal Rank Fusion (RRF), rzadziej przez ważoną fuzję punktacji z wcześniejszą normalizacją.
- Dlaczego to się opłaca: podejście hybrydowe wygrywa z czysto wektorowym RAG wszędzie tam, gdzie liczą się dokładne terminy, i mierzalnie poprawia recall.
Dwa filary: podejście leksykalne kontra semantyczne
BM25 (podejście sparse / leksykalne). BM25 to sprawdzony standard wyszukiwania pełnotekstowego. Algorytm ocenia dokumenty według dokładnej zgodności terminów, przypisuje większą wagę rzadkim terminom (inverse document frequency) i normalizuje względem długości dokumentu. BM25 jest deterministyczny, szybki, w swoim mechanizmie niezależny od języka i nie wymaga inferencji modelu. Jego siła jest zarazem jego ograniczeniem: znajduje tylko to, co występuje dosłownie (lub po tokenizacji i stemmingu). Synonimy, omówienia i parafrazy mu umykają.
Gęste podobieństwo wektorowe (podejście semantyczne). Dense retrieval osadza zapytanie i dokument w tej samej przestrzeni wektorowej i mierzy ich bliskość, zwykle za pomocą podobieństwa cosinusowego. Indeks przybliżonych najbliższych sąsiadów (w niemal wszystkich bazach wektorowych HNSW autorstwa Malkova i Yashunina) sprawia, że wyszukiwanie dobrze się skaluje. Dense retrieval wychwytuje znaczenie: „okres wypowiedzenia” i „powiadomienie o zakończeniu umowy” lądują blisko siebie, nawet bez wspólnych słów. Druga strona medalu: embeddingi wygładzają dokładne ciągi znaków. Numer artykułu, kod błędu czy rzadko spotykana nazwa własna rozmywa się w przestrzeni semantycznej.
Właśnie tu pojawia się potrzeba łączenia. Anthropic pokazuje ten problem na przykładzie w swoim artykule o Contextual Retrieval: jeśli ktoś pyta o kod błędu „TS-999”, model embeddingów może znaleźć treści o kodach błędów ogólnie, ale pominąć dokładne trafienie. BM25 natomiast szuka dokładnie tego ciągu znaków. Obie metody zawodzą przy różnych zapytaniach, dlatego wzajemnie się uzupełniają.
Kiedy wyszukiwanie hybrydowe wygrywa z klasycznym wektorowym RAG
Wyszukiwanie hybrydowe nie jest konieczne dla każdego korpusu, ale w następujących przypadkach ma wyraźną przewagę:
- Dokładne kody i identyfikatory: numery produktów, artykułów i zamówień, SKU, kody błędów i statusów, numery zgłoszeń.
- Nazwy własne i terminy specjalistyczne: osoby, firmy, nazwy produktów, paragrafy przepisów, rzadkie terminy specjalistyczne niedoreprezentowane w korpusie treningowym modelu embeddingów.
- Wyszukiwanie w kodzie i logach: nazwy funkcji, zmienne, klucze konfiguracyjne: tu dokładne dopasowanie jest często ważniejsze niż znaczenie.
- Zapytania mieszane: język naturalny plus osadzone dokładne tokeny („Jak naprawić kod błędu TS-999?”).
Przy jednorodnych, narracyjnych tekstach bez twardych identyfikatorów może wystarczyć sam dense retrieval. Gdy jednak w grę wchodzą ustrukturyzowane terminy, numery lub regulowana terminologia, a w codzienności B2B to norma, wygrywa podejście hybrydowe.
Fuzja: RRF, ważona punktacja i problem normalizacji
Trudną częścią nie jest równoległe wyszukiwanie, lecz scalanie wyników. Punktacja BM25 i wektorowa funkcjonuje w nieporównywalnych zakresach wartości: punktacja BM25 jest nieograniczona i zależna od korpusu, a podobieństwo cosinusowe mieści się między minus jeden a jeden. Jeśli po prostu je dodasz, dominująca skala zagłuszy wszystko.
Reciprocal Rank Fusion (RRF) rozwiązuje to elegancko: ignoruje surową punktację i korzysta wyłącznie z pozycji w rankingu. Każdy dokument otrzymuje na każdej liście trafień punktację według wzoru:
```
RRF_score(d) = suma po wszystkich listach 1 / (k + rang(d))
```
Tutaj rang(d) to pozycja dokumentu na danej liście, a k to niewielka stała (często 60), która tłumi wpływ bardzo wysokich pozycji. Dokument, który na obu listach znajduje się wysoko, zbiera najwyższą łączną punktację. Ponieważ RRF nie zależy od skali, odpada wszelka normalizacja, co czyni metodę odporną i niemal bezparametrową.
Ważona fuzja punktacji to alternatywa, gdy chcesz świadomie nadać jednej modalności większą wagę (np. 0,7 * dense + 0,3 * sparse). Wymaga ona jednak normalizacji: obie listy punktacji trzeba najpierw sprowadzić do wspólnego zakresu (np. min-max od zera do jednego), zanim połączy się je liniowo. To rozwiązanie daje większe możliwości, ale jest bardziej wrażliwe na strojenie i dryf korpusu.
Aspekt | Reciprocal Rank Fusion (RRF) | Ważona fuzja punktacji |
|---|---|---|
Dane wejściowe | Tylko pozycje w rankingu | Surowa punktacja obu retrieverów |
Wymagana normalizacja | Nie | Tak (np. min-max) |
Parametry | Jedna stała k (często 60) | Wagi dla każdego retrievera + normalizacja |
Odporność | Wysoka, niezależna od korpusu | Średnia, podatna na strojenie i dryf |
Sterowalność | Niska (równorzędna fuzja) | Wysoka (modalność można celowo ważyć) |
Rekomendacja | Domyślny wybór dla większości wdrożeń | Gdy udowodniono, że jedna modalność powinna dominować |
Architektura pipeline’u
Schematycznie pipeline hybrydowego retrievalu działa tak:
```
Query ──┬─► Dense Encoder ──► ANN-Index (HNSW) ──► top_n_dense
│
└─► Tokenizer ──────► BM25-Index ───────► top_n_sparse
│
Rank-Fusion (RRF / weighted) ◄────┘
→ unified top_k
```
W praktyce następnie stosuje się reranking: hybrydowy retrieval przy wysokim recallu dostarcza zwykle od 50 do 100 kandydatów (top_k = 50–100), a reranker typu cross-encoder ocenia zapytanie i dokument łącznie i zawęża wybór do pięciu do dziesięciu najtrafniejszych wyników, które trafiają do LLM. Popularne modele to Cohere Rerank, BGE-Reranker i Jina Reranker v3. Jego dostawca, Jina AI, należy od października 2025 roku do Elastic. Cross-encodery są dokładniejsze, ale wolniejsze, dlatego uruchamia się je dopiero po tanim etapie hybrydowego recallu.
Przykład z praktyki w liczbach
Najistotniejszy wiarygodny punkt danych pochodzi z Contextual Retrieval firmy Anthropic (stan na 09/2024). To podejście rozwija właśnie ideę hybrydową: każdy chunk przed embeddingiem i przed indeksowaniem BM25 otrzymuje na początku krótki nagłówek kontekstowy wygenerowany przez LLM (Contextual Embeddings plus Contextual BM25).
- Same Contextual Embeddings: odsetek błędów wyszukiwania w top 20 obniżony z 5,7 do 3,7 procent, minus 35 procent.
- Contextual Embeddings plus Contextual BM25 (czyli hybryda): z 5,7 do 2,9 procent, minus 49 procent.
- Dodatkowo reranking: do 1,9 procent, minus 67 procent.
Innymi słowy: samo dodanie komponentu BM25 do kontekstualizowanego dense retrievalu obniża odsetek błędów z 3,7 do 2,9 procent. To odczuwalny wzrost recallu, nieosiągalny bez wyszukiwania leksykalnego. Indeksowanie kosztowało przy tym około 1,02 dolara amerykańskiego za milion tokenów dokumentów przy użyciu prompt cachingu (stan na 09/2024). Te liczby pochodzą z ewaluacji przeprowadzonej przez dostawcę i należy je odczytywać właśnie w ten sposób.
Drugi, niezależny dowód: w benchmarku Agri-Query (arXiv:2508.18093, 2025) hybrydowy retrieval w połączeniu z Gemini 2.5 Flash osiąga ponad 85 procent dokładności w wielu językach i wyraźnie przewyższa naiwne prompty z długim kontekstem. Wyszukiwanie hybrydowe jest więc także argumentem w toczącej się debacie „RAG kontra długi kontekst”: przy realistycznych, wieloczęściowych zapytaniach hybrydowy RAG pozostaje architekturą dokładniejszą i bardziej racjonalną kosztowo.
Narzędzia: wyszukiwanie hybrydowe w bazie wektorowej
W 2026 roku wszystkie gotowe do produkcji bazy wektorowe obsługują wyszukiwanie hybrydowe natywnie lub za pomocą rozszerzeń. Qdrant (Berlin) stawia na wektory rzadkie i BM42, Weaviate (Amsterdam) łączy BM25 z wyszukiwaniem gęstym, Pinecone oferuje sparse-dense, a Vespa oraz sprawdzone platformy wyszukiwania Elastic i OpenSearch łączą klasyczny BM25 z kNN. pgvector realizuje wyszukiwanie hybrydowe dzięki dodatkowym rozszerzeniom BM25. Dla projektów w Europie z wymaganiami dotyczącymi suwerenności najoczywistszymi opcjami są Qdrant i Weaviate, hostowane w UE i oferujące granularne filtrowanie metadanych, istotne dla separacji klientów zgodnie z RODO.
Dla agencji i B2B
Wyszukiwanie hybrydowe to dźwignia, dzięki której prototyp RAG staje się niezawodnym rozwiązaniem produkcyjnym, zwłaszcza w branżach z katalogami produktów, normami, sygnaturami akt, taryfami lub instrukcjami technicznymi, gdzie dokładne terminy mają krytyczne znaczenie dla biznesu. Jeśli jako agencja budujesz asystentów opartych na RAG lub portale wiedzy dla klientów w całej Europie, zaplanuj hybrydowy retrieval z RRF i rerankingiem jako rozwiązanie domyślne, a nie dodatek na później. Blck Alpaca projektuje i wdraża takie pipeline’y wyszukiwania z zachowaniem suwerenności w UE jako oprogramowanie na zamówienie dla firm, od wyboru narzędzi i strategii fuzji po ewaluację opartą na RAGAS. Odezwij się do nas, jeśli Twój system RAG ma niezawodnie znajdować właściwe dokumenty.
Otwiera czat z przygotowanym promptem.
Najczęściej zadawane pytania
Kiedy wyszukiwanie hybrydowe wygrywa z czysto wektorowym RAG?
Czym jest Reciprocal Rank Fusion (RRF)?
Dlaczego nie można po prostu dodać punktacji BM25 i wektorowej?
Czy po wyszukiwaniu hybrydowym potrzebuję jeszcze rerankingu?
Które bazy wektorowe natywnie obsługują wyszukiwanie hybrydowe?
Chcesz zgłębić temat?
Otrzymuj nowe analizy prosto na swoją skrzynkę albo zobacz, jak wykorzystujemy tę wiedzę w firmach.