RAG (Retrieval-Augmented Generation) obiecuje odpowiedzi oparte na źródłach. W praktyce mierzenie jakości tych odpowiedzi jest trudniejsze, niż sugerują dashboardy z zielonymi wskaźnikami. Nasz własny system kalibracji osiągnął 100% accuracy na zbiorze kontrolnym – i mimo to nie pozwolił na zmianę progów. Dlaczego? Bo accuracy bez kontekstu próby jest liczbą, która wygląda dobrze, ale niczego nie potwierdza. Zbadaliśmy to na 12 rekordach z 3 domen, z czterema bramkami walidacyjnymi i confusion matrix jako narzędziem diagnostycznym.
Kevin Indig w State of AI Search Optimization 2026 przeanalizował 16 851 zapytań i 353 799 stron w pipeline ChatGPT. Jego dane pokazują, że retrieval rozbija zapytanie użytkownika na fan-out queries (podpytania tematyczne), a następnie ocenia fragmenty – nie całe strony. To potwierdza, że kalibracja powinna testować dokładność na poziomie fragmentu, nie dokumentu.
Dlaczego 100% accuracy może nie znaczyć prawie nic?
Accuracy (odsetek poprawnych klasyfikacji) jest najbardziej intuicyjną metryką. Jeśli system prawidłowo sklasyfikował 12 z 12 odpowiedzi, accuracy wynosi 1,0. Problem polega na tym, że ta liczba nie uwzględnia trzech rzeczy: wielkości próby, rozkładu klas i niezależności etykiet.
Skala problemu widoczna jest w danych rynkowych. Według badania Ahrefs z maja 2026, zaledwie 38% cytowań w AI Overviews pochodzi ze stron z top 10 wyników organicznych – spadek z 76% rok wcześniej. To oznacza, że systemy retrieval coraz częściej sięgają poza tradycyjne rankingi, a kalibracja tego, co retrieval „widzi” i jak ocenia jakość źródła, staje się kluczowa nie tylko dla wewnętrznych pipeline’ów RAG, ale też dla widoczności w AI Search.
Przy 12 rekordach z 3 domen nawet losowy klasyfikator może trafić 100%. Dlatego w ramach audytu treści weryfikujemy nie tylko wynik końcowy, ale też warunki, w jakich został uzyskany. Interwał ufności 95% dla tak małej próby rozciąga się od około 74% do 100%, co oznacza, że rzeczywista accuracy systemu może być o 26 punktów procentowych niższa. Żadna decyzja o zmianie progu nie powinna opierać się na tak szerokim przedziale.
Dodatkowo, jeśli etykiety (ground truth) ustaliła ta sama osoba, która skonfigurowała system, nie ma niezależnej weryfikacji. System może nauczyć się potwierdzać własne założenia zamiast mierzyć rzeczywistą jakość odpowiedzi. To problem znany z oceny wiarygodności audytów AI – metryka bez kontekstu próby jest bezwartościowa.
Jakie są cztery klasy odpowiedzi w kalibracji RAG?
Patent US20260064780A1 opisuje mechanizm weryfikacji odpowiedzi generowanych przez model językowy względem źródeł. W diagnostyce Semgence każda odpowiedź wygenerowana przez RAG jest klasyfikowana do jednej z czterech kategorii na podstawie relacji między treścią odpowiedzi a źródłem, z którego pobrano fragment:
| Klasa | Definicja | Przykład | Wymagana interwencja |
|---|---|---|---|
| Supported | Odpowiedź w pełni potwierdzona przez źródło | Cena i dostępność zgodne z kartą produktu | Brak |
| Partial | Część twierdzeń potwierdzona, część bez pokrycia | Cena poprawna, ale gwarancja dodana od siebie | Oznaczenie niepotwierdzonych twierdzeń |
| Unsupported | Brak potwierdzenia w pobranych fragmentach | System generuje treść bez cytatu | Lepszy retrieval lub blokada odpowiedzi |
| Contradicted | Odpowiedź sprzeczna ze źródłem | Źródło: „dostępny”, odpowiedź: „niedostępny” | Natychmiastowa blokada |
Partial jest najtrudniejszą klasą do wykrycia automatycznie, bo odpowiedź brzmi wiarygodnie. Contradicted to najpoważniejsza klasa, bo użytkownik widzi cytat i zakłada, że odpowiedź jest z nim zgodna. Patent US20250103640A1 (Google, 2023) opisuje system generowania odpowiedzi z cytatami do konkretnych fragmentów dokumentów źródłowych, co pokazuje, że weryfikowalność odpowiedzi jest wbudowana w architekturę od etapu projektowania.
Co pokazuje case study z 12 rekordami i 3 domenami?
Próba: 12 par pytanie-odpowiedź z 3 domen (blogi firmowe i serwisy e-commerce). Okres: lipiec 2026. Źródło danych: wewnętrzne narzędzia diagnostyczne Semgence. Dla każdej pary pobrano top 3 fragmenty ze źródeł i ręcznie przypisano klasę.
| Klasa | Liczba rekordów | Udział w próbie |
|---|---|---|
| Supported | 8 | 67% |
| Partial | 2 | 17% |
| Unsupported | 1 | 8% |
| Contradicted | 1 | 8% |
| Razem | 12 | 100% |
To natychmiast sygnalizuje problem – klasa supported stanowi 67% zbioru, a trzy pozostałe klasy mają po 1-2 przykłady. Przy takim rozkładzie system, który zawsze odpowiada „supported”, osiągnąłby 67% accuracy bez jakiejkolwiek inteligencji.
Etykietowanie: jedna osoba (audytor Semgence) przeczytała fragment źródłowy i odpowiedź, następnie oznaczyła klasę. Nie było drugiego oceniającego ani ślepej próby. Inter-rater agreement: nieokreślone. Zbiór nie spełnia minimalnych wymagań niezależnej weryfikacji. Więcej o tym, jak AI wybiera źródła do cytowania i dlaczego weryfikacja jest kluczowa.
Jakie bramki zablokowały tuning?
System kalibracyjny Semgence zawiera cztery bramki (gates), które muszą być spełnione, zanim operator może zmienić próg klasyfikacji. Analogiczne podejście wieloetapowej walidacji stosuje Google w patencie US20230342411A1, który opisuje ekstrakcję i scoring odpowiedzi z wielu źródeł z użyciem modelu predykcyjnego uwzględniającego kontekst, tytuły i samo zapytanie.
| Bramka | Wymaganie | Nasz wynik | Status |
|---|---|---|---|
| Gate 1: Minimalna liczba rekordów | ≥ 60 | 12 | FAIL |
| Gate 2: Minimalna liczba domen | ≥ 5 | 3 | FAIL |
| Gate 3: Przykłady per klasa | ≥ 15 per klasa | 8 / 2 / 1 / 1 | FAIL |
| Gate 4: Niezależne etykiety | Cohen’s kappa ≥ 0,7 | 1 oceniający | FAIL |
Wynik bramek: 0/4 PASS. System zwrócił status HOLD: dane są niewystarczające do podjęcia decyzji o zmianie progu. Accuracy 100% nie zmienia tego wyniku, bo bramki dotyczą warunków, których sama accuracy nie jest w stanie zastąpić.
Co powinien zawierać prawdziwy zbiór kalibracyjny?
| Parametr | Minimum | Rekomendowane | Uzasadnienie |
|---|---|---|---|
| Liczba rekordów | 60 | 100+ | CI95 dla accuracy 90% = ±6 pp. przy n=100 |
| Liczba domen | 5 | 8-10 | Różne typy treści (blog, e-commerce, FAQ, dokumentacja) |
| Przykłady per klasa | 15 | 20+ | Recall obliczalny dla każdej klasy |
| Niezależni oceniający | 2 | 3 (trzeci rozstrzyga) | Cohen’s kappa ≥ 0,7 |
Klasy partial i contradicted są trudniejsze do zebrania, więc w praktyce zbiór będzie miał nadreprezentację supported – to jest akceptowalne, o ile pozostałe klasy mają po 15+ przykładów. Oceniający nie powinni widzieć, jak system sklasyfikował odpowiedź przed podaniem własnej oceny. Każda strona, która ma być cytowana przez AI, powinna przejść strategię content marketingową uwzględniającą wymogi retrieval.
Dlaczego precision, recall i macro F1 mówią więcej niż accuracy?
Accuracy jest metryką globalną. Przy niezbalansowanych klasach nie pokazuje, które kategorie system myli. Już patent US20110295888A1 (Google, 2005/2011) pokazywał, jak system wyszukiwania wyświetla snippety z wyników zawierające zarówno frazy z zapytania, jak i terminy odpowiedzi – co wymaga wielowymiarowej oceny trafności. Dlatego kalibracja wymaga trzech dodatkowych metryk:
Precision per klasa odpowiada na pytanie: ile z odpowiedzi oznaczonych przez system jako „contradicted” faktycznie jest sprzecznych ze źródłem? Niska precision w klasie contradicted oznacza fałszywe alarmy – system blokuje poprawne odpowiedzi.
Recall per klasa odpowiada na pytanie: ile z faktycznie sprzecznych odpowiedzi system wykrył? Niski recall w klasie contradicted oznacza, że system przepuszcza sprzeczności – użytkownik widzi odpowiedź, która kłóci się ze źródłem, bez ostrzeżenia.
Macro F1 to średnia harmoniczna precision i recall po wszystkich klasach, nieważona liczbą przykładów. W naszym przypadku macro F1 jest nieokreślone, bo klasy z jednym przykładem nie pozwalają na sensowne obliczenie recall. Więcej o mierzeniu jakości treści pod kątem AI w artykule o extractability.
Confusion matrix pokazuje wzorce pomyłek. Typowy problem RAG: system klasyfikuje partial jako supported, bo odpowiedź zawiera poprawne fragmenty – tyle że zawiera też nieudokumentowane twierdzenia. W macierzy widać to jako wartości w komórce (predicted: supported, actual: partial).
Kiedy wolno zmienić próg?
Próg klasyfikacji (threshold) to wartość, powyżej której system przypisuje odpowiedzi klasę supported. Domyślny próg w naszym systemie diagnostycznym wynosi 0,7. Zmiana progu wpływa na balans precision/recall: niższy próg przepuszcza więcej odpowiedzi (wyższy recall, niższa precision), wyższy próg jest bardziej konserwatywny (wyższa precision, niższy recall).
| Warunek zmiany progu | Wymaganie |
|---|---|
| Bramki 1-4 | Wszystkie PASS |
| Macro F1 na zbiorze walidacyjnym | ≥ 0,75 |
| Recall per klasa | Żadna klasa < 0,5 |
| Analiza wpływu produkcyjnego | Symulacja: ile odpowiedzi zmieni klasę |
Zmiana progu bez spełnienia tych warunków to nie optymalizacja – to zgadywanie. W konsultacjach SEO spotykamy klientów, którzy zmieniają progi na podstawie kilkudziesięciu rekordów i dziwią się, gdy wyniki w produkcji odbiegają od testowych. System zwraca HOLD nie po to, żeby blokować postęp, ale żeby zapobiec sytuacji, w której operator zmniejsza próg na podstawie 12 przykładów, a w produkcji system zaczyna przepuszczać sprzeczne odpowiedzi.
Jak raportować wynik uczciwie?
Każdy raport kalibracyjny powinien zawierać pięć elementów, bez których wynik accuracy jest niemożliwy do interpretacji. Zasady te dotyczą nie tylko RAG, ale każdego audytu gotowości do AI Search:
| Element raportu | Zamiast tego | Pisz tak |
|---|---|---|
| Accuracy + interwał ufności | „accuracy 100%” | „accuracy 100% (n=12, CI95 74%-100%)” |
| Rozkład klas | „system działa poprawnie” | „supported 8, partial 2, unsupported 1, contradicted 1” |
| Status bramek | „przeszło walidację” | „Gate 1: FAIL (12/60), Gate 2: FAIL (3/5)…” |
| Confusion matrix | „brak błędów” | Macierz 4×4 z wartościami per klasa |
| Decyzja | „możemy zmienić próg” | „HOLD: próba za mała, brak niezależnych etykiet” |
Perspektywę Google podsumowuje Gary Illyes w podcaście Search Off the Record: „Quality affects pretty much everything that the Search systems do” – jakość wpływa na każdą decyzję crawlingu i indeksowania. W kontekście kalibracji RAG ta zasada działa w obie strony: system retrieval musi nie tylko wybrać jakościowe źródło, ale też poprawnie ocenić, czy wygenerowana odpowiedź faktycznie odzwierciedla to źródło.
Jak cytowania AI korelują z ruchem organicznym w polskim e-commerce?
Aby zilustrować, dlaczego kalibracja retrieval wymaga rygorystycznego podejścia, przeprowadziliśmy analizę czterech dużych polskich sklepów elektronicznych w ramach audytu widoczności w AI z wykorzystaniem Ahrefs AI Responses Count (sierpień 2026). Porównaliśmy liczbę cytowań w sześciu silnikach AI z ruchem organicznym.
| Sklep | Ruch org. | ChatGPT | AIO | Perplexity | Copilot | Grok |
|---|---|---|---|---|---|---|
| mediaexpert.pl | 12,3 mln | 27 929 | 17 169 | 22 547 | 23 402 | 18 058 |
| euro.com.pl | 2,8 mln | 25 179 | 10 062 | 21 846 | 9 490 | 8 640 |
| x-kom.pl | 1,9 mln | 6 755 | 5 277 | 7 002 | 2 634 | 4 158 |
| morele.net | 703 tys. | 8 946 | 7 906 | 27 695 | 9 558 | 9 225 |
Wyniki ujawniają trzy zjawiska istotne dla kalibracji:
Rozbieżność między silnikami AI. morele.net z ruchem organicznym 17,5x mniejszym od mediaexpert.pl uzyskuje w Perplexity 27 695 cytowań – więcej niż mediaexpert (22 547). Jednocześnie w ChatGPT morele ma zaledwie 8 946 cytowań vs 27 929 mediaexpert. To oznacza, że każdy silnik retrieval stosuje inne kryteria selekcji źródeł. Kalibracja jednego pipeline’u RAG nie przenosi się na inny – accuracy zmierzona na danych z ChatGPT może być bezwartościowa dla Perplexity.
Ruch organiczny nie przewiduje AI visibility. euro.com.pl z 2,8 mln ruchu organicznego ma prawie identyczną liczbę cytowań ChatGPT (25 179) co mediaexpert (27 929) przy 12,3 mln ruchu. x-kom.pl z 1,9 mln ruchu ma 2,6x mniej cytowań ChatGPT niż euro z 2,8 mln – różnica w ruchu to 32%, ale w cytowaniach 73%. Klasyczny ranking organiczny i ranking w AI retrieval to dwa różne systemy z różnymi sygnałami. Dla sklepów e-commerce oznacza to, że pozycjonowanie sklepu internetowego w wyszukiwarkach nie gwarantuje widoczności w AI, co potwierdza tezę Search Engine Land, że retrieval i tradycyjny ranking to odrębne pipeline’y.
Implikacja dla kalibracji RAG: jeśli budujesz system retrieval i kalibrowujesz go na danych z jednego silnika (np. Google AIO), uzyskana accuracy nie jest transferowalna na inny silnik (np. Perplexity). Zbiór kalibracyjny powinien zawierać odpowiedzi z wielu silników, a metryki raportować osobno per silnik – dokładnie tak, jak postuluje confusion matrix per klasa w sekcji powyżej. Bez tej separacji accuracy 100% na danych z AIO może maskować recall 40% na danych z Perplexity.
Case study cross-industry: kalibracja nie jest branżowa

Powyższy case study dotyczył wyłącznie elektroniki. Czy rozbieżności między silnikami AI powtarzają się w innych branżach? Przeanalizowaliśmy dane Ahrefs AI Responses Count (snapshot z sierpnia 2026) dla czterech kolejnych sektorów e-commerce. Uwaga: dane Ahrefs to szacunek oparty na próbce zapytań – rzeczywiste liczby cytowań mogą się różnić.
| Sklep | Branża | ChatGPT | Perplexity | AIO | Copilot | Grok |
|---|---|---|---|---|---|---|
| rossmann.pl | Drogerie | 12 476 | 5 254 | 4 367 | 4 711 | 3 653 |
| hebe.pl | Drogerie | 3 058 | 1 706 | 1 931 | 2 653 | 2 770 |
| ccc.eu | Obuwie | 2 370 | 2 825 | 1 716 | 997 | 1 630 |
| eobuwie.pl | Obuwie | 0 | 0 | 0 | 1 | 9 |
| zooplus.pl | Zwierzęta | 5 364 | 2 806 | 1 716 | 1 447 | 1 360 |
| agata.pl | Meble | 28 | 17 | 0 | 0 | 1 |
Zjawisko zerowej widoczności AI. eobuwie.pl – jeden z największych polskich e-commerce obuwniczych – ma dosłownie zero cytowań w ChatGPT, Perplexity i Google AIO. Jednocześnie konkurent CCC (ccc.eu) zbiera 2 370 cytowań ChatGPT i 2 825 w Perplexity. Podobna przepaść widoczna w meblach: agata.pl ma 28 cytowań ChatGPT, podczas gdy IKEA globalnie (ikea.com) osiąga 145 069 – ale sam subdirectory ikea.com/pl/ ma zero. Lokalizacja treści nie dziedziczy AI visibility z domeny głównej. To zjawisko potwierdzają nasze obserwacje z projektów pozycjonowania pod AI, gdzie domeny z silnym contentem lokalnym osiągają lepsze wyniki niż globalne marki z przetłumaczonymi stronami.
Rozbieżność między silnikami jest uniwersalna. W drogeriach hebe.pl ma w Copilot (2 653) prawie tyle samo cytowań co w Grok (2 770), ale w ChatGPT tylko 3 058 vs Rossmann 12 476 – proporcje 1:4. Z kolei ccc.eu w Perplexity (2 825) przewyższa nawet ChatGPT (2 370), co jest odwrotne do wzorca rossmann.pl, gdzie ChatGPT dominuje 2,4x nad Perplexity. Każda branża i każda domena ma inny „profil silnikowy”.
Wniosek dla kalibracji RAG: rozbieżności między silnikami AI nie są artefaktem jednej branży. Niezależnie od tego, czy kalibrowujesz retrieval dla drogerii, obuwia czy mebli, confusion matrix musi być budowana per silnik. W audycie SEO już teraz uwzględniamy osobną warstwę diagnostyki per silnik AI. Pojedynczy benchmark „AI visibility” bez podziału na silniki maskuje fundamentalne różnice w tym, jak ChatGPT, Perplexity i Copilot selekcjonują źródła.
Ramka metodologiczna. Dane źródłowe: 12 par pytanie-odpowiedź z 3 domen, zbierane w okresie lipiec 2026 z użyciem wewnętrznych narzędzi diagnostycznych Semgence. Etykietowanie: manualne, jeden audytor Semgence. Ograniczenia: brak inter-rater agreement, próba poniżej minimum statystycznego, brak walidacji na zbiorze out-of-sample. Dane AI citations: Ahrefs AI Responses Count, snapshot sierpień 2026. Patenty Google służą jako kontekst architektury retrieval, nie jako dowód wdrożenia w produkcji.
Czym różni się accuracy od macro F1 w kontekście RAG?
Accuracy mierzy odsetek poprawnych klasyfikacji globalnie, bez rozróżniania klas. Macro F1 oblicza precision i recall dla każdej klasy osobno, a następnie uśrednia je bez ważenia liczebnością. Przy niezbalansowanych zbiorach (np. 67% klasy supported) accuracy może być wysoka nawet gdy system nie wykrywa żadnych sprzeczności – macro F1 ujawnia ten problem, bo klasa contradicted z recall 0% obniża średnią.
Ile rekordów potrzebuję do kalibracji RAG?
Minimum 60, rekomendowane 100+. Przy czterech klasach (supported, partial, unsupported, contradicted) każda powinna mieć minimum 15 przykładów. Próba powinna obejmować minimum 5 domen i dwa niezależne etykietowania (Cohen’s kappa >= 0,7). Przy 100 rekordach interwał ufności 95% dla accuracy 90% wynosi +/-6 punktów procentowych.
Co oznacza status HOLD w kalibracji?
HOLD oznacza, że dane są niewystarczające do podjęcia decyzji o zmianie progu klasyfikacji. System nie mówi, że próg jest zły – mówi, że nie ma wystarczających dowodów, aby go zmieniać. HOLD jest wywoływany, gdy co najmniej jedna z czterech bramek (wielkość próby, liczba domen, przykłady per klasa, niezależne etykiety) nie jest spełniona.
Czy halucynacje AI to to samo co klasa unsupported?
Nie do końca. Unsupported oznacza, że odpowiedź nie ma potwierdzenia w dostarczonych źródłach – może być prawdziwa, ale system nie dostarczył dowodu. Halucynacja to szersza kategoria obejmująca zarówno unsupported (brak źródła), jak i contradicted (sprzeczność ze źródłem). W kalibracji RAG rozdzielamy te klasy, bo wymagają różnych interwencji: unsupported wymaga lepszego retrieval, contradicted wymaga naprawy generowania.

