Szybka odpowiedź
Zacznij od rankingu PIRB: to 41 polskich zadań wyszukiwania przygotowanych przez zespół OPI PIB. Na 30 września 2026 prowadzi w nim PolDense-1B (64,11 NDCG@10), przed modelami mającymi 8-9 mld parametrów. Popularne modele wielojęzyczne radzą sobie po polsku słabiej: Qwen3-Embedding-8B ma 60,93, multilingual-e5-large 57,29, a BGE-M3 55,98. Najwięcej zyskuje się na rerankerze: polski polish-reranker-roberta-v3 (443M) osiąga 65,17, blisko Qwen3-Reranker-8B. Ranking zawęża wybór do dwóch lub trzech kandydatów. Rozstrzyga test na około stu pytaniach z własnych dokumentów.
Dlaczego wybór modelu ma po polsku większe znaczenie
Model embeddingowy zamienia fragment tekstu w wektor, a wyszukiwanie znajduje fragmenty, których wektory leżą najbliżej wektora pytania. Jeśli model słabo rozumie język dokumentów, nawet najlepszy model językowy na końcu łańcucha dostanie złe fragmenty. Jak działa cały łańcuch, opisujemy w artykule jak RAG czyni AI mądrzejszym.
Polski utrudnia to na kilka sposobów:
- Odmiana. „Umowa”, „umowy”, „umowie”, „umową”: jedno słowo, wiele form. Wyszukiwanie pełnotekstowe bez polskiego analizatora traktuje je jak różne słowa.
- Mniej danych treningowych. Modele wielojęzyczne uczą się głównie na tekstach angielskich. Polski dostaje ułamek danych, a słownictwo specjalistyczne (prawo, medycyna, administracja) jeszcze mniej.
- Mieszane dokumenty. W firmach polski miesza się z angielskim: umowy dwujęzyczne, dokumentacja techniczna, korespondencja. Model musi znaleźć polski fragment na angielskie pytanie i odwrotnie.
Benchmarki angielskie (np. MTEB dla angielskiego) mówią o tym niewiele. Dlatego warto patrzeć na rankingi polskie.
Czym jest PIRB i jak go czytać
PIRB (Polish Information Retrieval Benchmark) to benchmark opublikowany w 2024 r. przez Sławomira Dadasa, Michała Perełkiewicza i Rafała Poświatę z OPI PIB (Dadas i in., 2024). Obejmuje 41 zadań wyszukiwania w pięciu grupach:
- MaupQA: automatycznie utworzony zbiór polskich pytań i odpowiedzi (IPI PAN);
- PolEval-2022: zadania z konkursu PolEval, w tym pytania prawnicze;
- BEIR-PL: zbiory BEIR przetłumaczone maszynowo na polski (Politechnika Wrocławska);
- Web Datasets: prawdziwe pytania i odpowiedzi z polskich serwisów internetowych, w tym prawniczych i medycznych;
- Inne: m.in. MFAQ i GPT-exams.
Główna miara to NDCG@10: ocena, czy właściwe fragmenty są w pierwszej dziesiątce wyników i jak wysoko. Ranking ma trzy sekcje: pojedyncze modele, wyszukiwanie hybrydowe i dwuetapowe wyszukiwanie z rerankerem.
Szerszy obraz daje PL-MTEB tych samych autorów: 30 zadań w pięciu kategoriach (klasyfikacja, klasteryzacja, klasyfikacja par, wyszukiwanie i podobieństwo semantyczne), włączony do MTEB (Poświata i in., 2024). Do RAG najważniejsza jest jednak kategoria wyszukiwania, a tę PIRB pokrywa najdokładniej.
Jedna uwaga dla porządku: PIRB, PolDense, rodzina mmlw i polskie rerankery pochodzą z tego samego zespołu. Benchmark jest otwarty, a kod ewaluacji publiczny (github.com/sdadas/pirb), ale to kolejny powód, żeby wynik rankingu potwierdzić na własnych danych.
Ranking modeli embeddingowych (stan na 30 września 2026)
Średnia NDCG@10 z 41 zadań, wyliczona z danych rankingu PIRB. Kolumna „prawo” to średnia z czterech zadań prawniczych: dwóch z PolEval-2022 (legal questions) oraz eprawnik i specprawnik.
| Model | Parametry | PIRB, średnia | PIRB, prawo | Licencja |
|---|---|---|---|---|
| OPI-PIB/PolDense-1B | 1,0 mld | 64,11 | 73,05 | Gemma |
| nvidia/llama-embed-nemotron-8b | 7,5 mld | 63,73 | 69,39 | tylko niekomercyjna |
| BAAI/bge-multilingual-gemma2 | 9,2 mld | 63,26 | 71,82 | Gemma |
| OPI-PIB/PolDense-400M | 395 mln | 63,21 | 71,91 | Gemma |
| sdadas/stella-pl-retrieval-8k | 1,5 mld | 62,69 | 68,38 | Gemma |
| OPI-PIB/PolDense-150M | 149 mln | 61,07 | 68,54 | Gemma |
| Qwen/Qwen3-Embedding-8B | 7,6 mld | 60,93 | 64,49 | Apache 2.0 |
| Qwen/Qwen3-Embedding-4B | 4,0 mld | 59,19 | 62,38 | Apache 2.0 |
| sdadas/mmlw-retrieval-roberta-large | 435 mln | 58,46 | 60,13 | Apache 2.0 |
| intfloat/multilingual-e5-large | 560 mln | 57,29 | 57,89 | MIT |
| BAAI/bge-m3 (dense) | 568 mln | 55,98 | 59,80 | MIT |
| Qwen/Qwen3-Embedding-0.6B | 596 mln | 50,71 | 50,80 | Apache 2.0 |
| BM25 (bez modelu) | b.d. | 41,85 | 45,24 | b.d. |
Co z tego wynika:
- Rozmiar to nie wszystko. PolDense-400M ma wynik zbliżony do modeli 20 razy większych. Według karty modelu PolDense-150M zbliża się do Qwen3-Embedding-8B (karta modelu), a najmniejsze warianty (17M, 32M, 68M) są według OPI PIB pomyślane do pracy na CPU i urządzeniach brzegowych (OPI PIB).
- Modele wielojęzyczne tracą po polsku. Qwen3-Embedding-8B był w czerwcu 2025 na 1. miejscu wielojęzycznego MTEB (70,58) (karta modelu). Po polsku jest solidny, ale za modelami trenowanymi pod polski. Mała wersja 0.6B wypada słabiej niż multilingual-e5-large.
- Dziedzina powiększa różnice. Na zadaniu specprawnik (pytania z polskiego serwisu prawniczego) PolDense-1B ma 46,6, Qwen3-Embedding-8B 31,3, a BGE-M3 25,5. Jeśli Twoje dokumenty są specjalistyczne, ogólna średnia może zaniżać przepaść.
- Licencja odsiewa kandydatów. Karta llama-embed-nemotron-8b mówi wprost, że model jest tylko do użytku niekomercyjnego i badawczego (karta modelu). PolDense, stella-pl i polskie rerankery są udostępnione na licencji Gemma, z własnymi zasadami użycia. Licencję warto sprawdzić z prawnikiem przed wdrożeniem.
Rerankery: gdzie jest największy zysk
Model embeddingowy koduje pytanie i fragment osobno, więc musi być szybki. Reranker (cross-encoder) czyta parę pytanie i fragment razem i ocenia, czy fragment odpowiada na pytanie. Jest wolniejszy, dlatego ocenia tylko kilkadziesiąt najlepszych kandydatów z pierwszego etapu.
W sekcji rerankerów PIRB ocenia na 1000 pytaniach na zbiór, a pierwszym etapem jest domyślnie mmlw-retrieval-roberta-large. Wyniki:
| Reranker | Parametry | PIRB, średnia | Licencja |
|---|---|---|---|
| BAAI/bge-reranker-v2.5-gemma2-lightweight | 9,2 mld | 66,68 | Gemma |
| Qwen/Qwen3-Reranker-8B | 8,2 mld | 65,77 | Apache 2.0 |
| sdadas/polish-reranker-roberta-v3 | 443 mln | 65,17 | Gemma |
| Qwen/Qwen3-Reranker-4B | 4,0 mld | 62,80 | Apache 2.0 |
| BAAI/bge-reranker-v2-m3 | 568 mln | 61,69 | Apache 2.0 |
| Qwen/Qwen3-Reranker-0.6B | 596 mln | 53,18 | Apache 2.0 |
Dla orientacji: sam pierwszy etap (mmlw-retrieval-roberta-large) ma na pełnych danych 58,46. Porównanie jest przybliżone, bo rerankery liczono na podzbiorze pytań, ale kierunek jest jasny:
- Dobry reranker podnosi wynik o kilka punktów. polish-reranker-roberta-v3 obsługuje kontekst do 8192 tokenów i według autorów wygrywa z Qwen3-Reranker-8B w 18 z 41 zadań, mając 5% jego parametrów (karta modelu).
- Słaby reranker może zaszkodzić. Qwen3-Reranker-0.6B ma po polsku średnio mniej niż sam pierwszy etap. Reranker trzeba zmierzyć, a nie dokładać w ciemno.
- Lepszy pierwszy etap pomaga rerankerowi. Ten sam polish-reranker-roberta-v3 z pierwszym etapem BGE-Multilingual-Gemma2 osiąga 66,21 zamiast 65,17.
Wynik rerankera to też dobry sygnał do progu, poniżej którego system odpowiada „nie wiem”. Piszemy o tym w artykule o bazie wiedzy, która mówi „nie wiem”.
Wyszukiwanie hybrydowe: nie wyrzucaj BM25
W PIRB samo BM25 ma 41,85, ale połączenie BM25 z mmlw-retrieval-roberta-large daje 59,14, więcej niż ten sam model w pojedynkę (58,46). Pełny tekst łapie to, czego wektory nie lubią: numery artykułów, sygnatury, nazwy własne, kody produktów.
Warunek: wyszukiwanie pełnotekstowe musi rozumieć polską odmianę. W Elasticsearch służy do tego wtyczka Stempel z analizatorem polish i filtrami polish_stem oraz polish_stop (dokumentacja Elastic). Obie listy wyników łączy się zwykle metodą RRF, która patrzy na pozycje, a nie na wyniki (Cormack i in., 2009). BGE-M3 potrafi zwrócić wektor gęsty i wagi słów naraz (karta modelu), ale w PIRB jego tryb hybrydowy (55,75) nie poprawia wyniku wersji dense.
Kryteria praktyczne poza rankingiem
| Kryterium | Na co patrzeć | Przykład |
|---|---|---|
| Długość kontekstu | Ile tokenów model przeczyta z fragmentu, zanim utnie resztę | multilingual-e5-large: 512, BGE-M3 i PolDense: ok. 8 tys., Qwen3-Embedding: 32 tys. |
| Prefiksy i instrukcje | Bez właściwego prefiksu wynik spada | PolDense: [query]: przed pytaniem; multilingual-e5: query: i passage: ; Qwen3-Embedding: instrukcja zadania, według autorów zwykle +1 do 5% |
| Wymiar wektora | Pamięć indeksu rośnie liniowo z wymiarem | Milion fragmentów po 4096 liczb float32 to ok. 16 GB, po 1024 ok. 4 GB. Qwen3-Embedding pozwala skrócić wektor od 32 do 4096 |
| Rozmiar modelu | Koszt i czas zaindeksowania całej bazy, sprzęt do zapytań | 8 mld parametrów w BF16 to ok. 15 GB samych wag; PolDense-17M do 68M ma działać na CPU |
| Języki | Czy dokumenty i pytania mieszają polski z angielskim | PolDense w pierwszym etapie uczono wyrównania polsko-angielskiego; EuroDense obejmuje 9 języków |
| Serwowanie | Czy model działa w Twoim serwerze inferencji | PolDense: karta podaje komendę dla vLLM (--runner pooling --convert embed) |
| Licencja | Użycie komercyjne, zasady użycia | Apache 2.0 i MIT bez niespodzianek; Gemma z zasadami użycia; Nemotron 8B tylko niekomercyjnie |
Jedna rzecz, o której łatwo zapomnieć: zmiana modelu embeddingowego to przeliczenie całej bazy. Wektory z różnych modeli nie są porównywalne. Wybór warto więc zrobić porządnie na początku i zapisać wersję modelu w metryczce indeksu.
Jak zmierzyć to na własnych danych
Ranking mówi, który model jest dobry średnio na 41 zadaniach. Twoja baza to jedno zadanie: Twoje dokumenty i Twoje pytania. Test nie musi być duży:
- Zbierz około stu prawdziwych pytań od ludzi, którzy będą korzystać z bazy. Do każdego dopisz fragment, który na nie odpowiada.
- Dodaj pytania bez odpowiedzi w dokumentach. Przydadzą się do kalibracji progu rerankera.
- Zaindeksuj te same fragmenty dwoma lub trzema modelami z czołówki rankingu, które pasują licencją i rozmiarem.
- Zmierz recall@10 i NDCG@10 dla każdego modelu, osobno dla pierwszego etapu i z rerankerem.
- Sprawdź błędy ręcznie. Często okazuje się, że winny jest podział na fragmenty albo OCR, a nie model. O przygotowaniu danych piszemy w artykule o przygotowaniu danych do AI.
Lista kontrolna wyboru
- Sprawdzony aktualny ranking PIRB, sekcje modeli i rerankerów.
- Wybrani 2-3 kandydaci zgodni licencją z Twoim zastosowaniem.
- Długość kontekstu modelu dopasowana do rozmiaru fragmentów.
- Prefiksy i instrukcje ustawione zgodnie z kartą modelu.
- Wyszukiwanie pełnotekstowe z polskim analizatorem odmiany.
- Fuzja list (np. RRF) i reranker na kilkudziesięciu najlepszych kandydatach.
- Zestaw testowy: około stu pytań z oczekiwanym źródłem i pytania bez odpowiedzi.
- Wynik zmierzony na własnych danych, nie tylko odczytany z rankingu.
- Wersja modelu zapisana w metryczce indeksu, plan na przeliczenie bazy przy zmianie.
Jak robimy to u siebie
W naszych bazach wiedzy wyszukiwanie jest hybrydowe: wektory i indeks pełnotekstowy z polską odmianą wyrazów, łączone i porządkowane przez model rerankingowy. Cały łańcuch działa na serwerze w sieci klienta, na GPU NVIDIA Blackwell, więc dokumenty nie trafiają do zewnętrznych API. Jak to wygląda od skanu do cytatu, pokazujemy na stronie Bazy wiedzy, a próbę na własnych dokumentach można zamówić przez demo.
Nie mamy jednego ulubionego modelu. Model embeddingowy i reranker dobieramy za każdym razem do potrzeb: rodzaju dokumentów, języka, wolumenu i sprzętu, na którym system ma działać, a wybór sprawdzamy na próbce danych klienta.
Źródła
- PIRB: Polish Information Retrieval Benchmark, ranking (Hugging Face, stan na 30.09.2026)
- Dadas, Perełkiewicz, Poświata: PIRB: A Comprehensive Benchmark of Polish Dense and Hybrid Text Retrieval Methods (arXiv, 2024)
- Dadas, Poświata, Grębowiec, Perełkiewicz: Parameter-Efficient Retrievers for Polish and European Languages (arXiv, 2026)
- OPI PIB: PolDense, nowa generacja polskich modeli do wyszukiwania informacji
- Poświata, Dadas, Perełkiewicz: PL-MTEB: Polish Massive Text Embedding Benchmark (arXiv, 2024)
- Karta modelu OPI-PIB/PolDense-1B
- Karta modelu Qwen/Qwen3-Embedding-8B
- Karta modelu BAAI/bge-m3
- Karta modelu intfloat/multilingual-e5-large
- Karta modelu sdadas/polish-reranker-roberta-v3
- Karta modelu nvidia/llama-embed-nemotron-8b
- Elastic: Stempel Polish analysis plugin
- Cormack, Clarke, Büttcher: Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods (SIGIR 2009)
