100% accuracy i nadal brak zgody na strojenie. Jak uczciwie kalibrować RAG?

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:

KlasaDefinicjaPrzykładWymagana interwencja
SupportedOdpowiedź w pełni potwierdzona przez źródłoCena i dostępność zgodne z kartą produktuBrak
PartialCzęść twierdzeń potwierdzona, część bez pokryciaCena poprawna, ale gwarancja dodana od siebieOznaczenie niepotwierdzonych twierdzeń
UnsupportedBrak potwierdzenia w pobranych fragmentachSystem generuje treść bez cytatuLepszy retrieval lub blokada odpowiedzi
ContradictedOdpowiedź 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ę.

KlasaLiczba rekordówUdział w próbie
Supported867%
Partial217%
Unsupported18%
Contradicted18%
Razem12100%

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.

BramkaWymaganieNasz wynikStatus
Gate 1: Minimalna liczba rekordów≥ 6012FAIL
Gate 2: Minimalna liczba domen≥ 53FAIL
Gate 3: Przykłady per klasa≥ 15 per klasa8 / 2 / 1 / 1FAIL
Gate 4: Niezależne etykietyCohen’s kappa ≥ 0,71 oceniającyFAIL

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?

ParametrMinimumRekomendowaneUzasadnienie
Liczba rekordów60100+CI95 dla accuracy 90% = ±6 pp. przy n=100
Liczba domen58-10Różne typy treści (blog, e-commerce, FAQ, dokumentacja)
Przykłady per klasa1520+Recall obliczalny dla każdej klasy
Niezależni oceniający23 (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 proguWymaganie
Bramki 1-4Wszystkie PASS
Macro F1 na zbiorze walidacyjnym≥ 0,75
Recall per klasaŻadna klasa < 0,5
Analiza wpływu produkcyjnegoSymulacja: 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 raportuZamiast tegoPisz 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.

SklepRuch org.ChatGPTAIOPerplexityCopilotGrok
mediaexpert.pl12,3 mln27 92917 16922 54723 40218 058
euro.com.pl2,8 mln25 17910 06221 8469 4908 640
x-kom.pl1,9 mln6 7555 2777 0022 6344 158
morele.net703 tys.8 9467 90627 6959 5589 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

AI Citations cross-industry - porownanie 4 branz e-commerce
Cytowania AI w 6 polskich sklepach e-commerce z 4 branz. Dane: Ahrefs AI Responses Count, snapshot sierpien 2026.

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ć.

SklepBranżaChatGPTPerplexityAIOCopilotGrok
rossmann.plDrogerie12 4765 2544 3674 7113 653
hebe.plDrogerie3 0581 7061 9312 6532 770
ccc.euObuwie2 3702 8251 7169971 630
eobuwie.plObuwie00019
zooplus.plZwierzęta5 3642 8061 7161 4471 360
agata.plMeble2817001

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.

Podobne wpisy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *