Czym są halucynacje i dlaczego się pojawiają
Halucynacja w LLM to wygenerowanie informacji, która brzmi wiarygodnie, ale jest nieprawdziwa lub nieuzasadniona. Nie jest to „błąd” w sensie awarii systemu, tylko konsekwencja sposobu działania modeli językowych. LLM nie „wie” niczego tak, jak wie baza danych. Przewiduje najbardziej prawdopodobny następny token na podstawie statystyki uczenia. Gdy w prompcie pojawia się pytanie, na które model nie ma dobrego pokrycia w danych treningowych, generuje odpowiedź, która brzmi najbardziej prawdopodobnie. Często jest poprawna. Czasem nie.
Typowe scenariusze halucynacji w zastosowaniach biznesowych:
- Cytowanie nieistniejących orzeczeń sądów lub paragrafów ustaw przy doradztwie prawnym
- Wymyślanie nazw funkcji, klas lub bibliotek przy generowaniu kodu
- Podawanie nieprawidłowych statystyk lub dat w raportach
- Wymyślanie kontaktów, adresów, numerów telefonów
- Mieszanie faktów dotyczących różnych firm lub osób o podobnych nazwach
Warstwa 1: grounding (RAG)
Najskuteczniejsza pojedyncza technika redukcji halucynacji to grounding, czyli dostarczenie modelowi konkretnych dokumentów lub danych jako kontekstu, z którego ma czerpać odpowiedzi. Klasyczny RAG (Retrieval-Augmented Generation) wygląda tak:
- Pytanie użytkownika → wyszukanie najbardziej trafnych fragmentów dokumentów (vector search w bazie pgvector / Qdrant / Milvus)
- Fragmenty + pytanie → prompt z instrukcją „odpowiedz wyłącznie na podstawie poniższych dokumentów”
- Odpowiedź modelu → weryfikacja, że zawiera cytaty lub referencje do źródeł
RAG wyraźnie ogranicza halucynacje w zastosowaniach typu „odpowiadaj na pytania o naszą bazę wiedzy”. Nie eliminuje ich całkowicie: model może wciąż „zinterpretować” dokumenty w sposób nieuprawniony. Stąd potrzebne kolejne warstwy.
Warstwa 2: self-consistency i ensemble
Self-consistency polega na zadaniu tego samego pytania kilkakrotnie (lub kilku różnym modelom) i porównaniu odpowiedzi. Spójne odpowiedzi oznaczają wysokie zaufanie. Rozbieżne to sygnał, że temat jest niepewny.
Wariant praktyczny: zapytaj Claude Sonnet, Llama 70B i Bielika o to samo. Jeśli wszystkie trzy zwracają tę samą liczbę, datę czy fakt, odpowiedź jest prawdopodobnie poprawna. Jeśli się różnią, sprawę przejmuje człowiek albo droższy model (Opus). Ten wzorzec, zaimplementowany w 8-poziomowym routingu LLM, łączy redukcję kosztu z poprawą wiarygodności.
Warstwa 3: evaluation pipelines
Produkcyjne wdrożenie LLM bez evaluation pipeline to jak pisanie kodu bez testów. Konkretne metryki:
- Faithfulness: czy odpowiedź wynika z dostarczonych dokumentów. Mierzone przez drugi model AI (LLM-as-judge) lub bibliotekę typu RAGAS, deepeval.
- Answer relevance: czy odpowiedź dotyczy pytania użytkownika.
- Context precision: czy retrieval zwrócił najlepsze fragmenty (jakość vector search).
- Groundedness score: odsetek twierdzeń w odpowiedzi, dla których można wskazać źródło w kontekście.
Każdy nowy build aplikacji opartej na LLM powinien przechodzić zestaw pytań ewaluacyjnych ze znanym ground truth (przykładowo 50-500 pytań). Przykładowy próg, dobierany per wdrożenie: faithfulness poniżej 90%? Deployment zablokowany.
Warstwa 4: guardrails i walidacja outputu
Guardrails to reguły walidujące output LLM, zanim trafi do użytkownika. Przykłady:
- Schema validation: output musi spełniać konkretny schemat (JSON Schema, Pydantic). Halucynacje typu „wymyślone pola” są wykrywane mechanicznie.
- Forbidden patterns: wykrywanie i blokowanie wzorców niedopuszczalnych (PII bez maskowania, dane finansowe poza kontekstem, treści potencjalnie szkodliwe).
- Citation enforcement: każde twierdzenie faktyczne musi mieć cytat źródła. Jeśli model nie cytuje, odpowiedź jest odrzucana.
- Numeric range validation: liczby w outpucie sprawdzane pod kątem sensu (np. cena > 0, data ≤ dzisiaj, procent w zakresie 0-100).
- Cross-reference check: porównanie outputu z bazą faktów (np. KRS, słownik cytatów ustaw).
Biblioteki: Guardrails AI, NeMo Guardrails, instructor (dla schema enforcement). Implementacja własna jest często prostsza i tańsza w utrzymaniu.
Warstwa 5: human-in-the-loop
Dla aplikacji wysokiego ryzyka (decyzje prawne, medyczne, finansowe, kadrowe) warstwa human-in-the-loop jest niezbędna. Modele AI nie podejmują finalnej decyzji. Wspierają człowieka. Konkretne wzorce:
- Draft + review: AI generuje pierwszą wersję dokumentu lub odpowiedzi, człowiek weryfikuje i akceptuje przed wysłaniem.
- Confidence threshold: odpowiedzi o niskim confidence (z self-consistency lub z jawnego pytania o pewność) automatycznie trafiają do człowieka.
- Random sampling QA: przykładowo 5-10% wszystkich odpowiedzi LLM (próg dobierany per wdrożenie) jest audytowane ręcznie, niezależnie od confidence. To bazowa metryka jakości w czasie.
- Feedback loop: użytkownik może zaznaczyć błędną odpowiedź; system uczy się i ulepsza retrieval, prompty, parametry.
Pomiar: jak wiedzieć, że redukcja działa
Metryki produkcyjne do stałego monitorowania:
- Wskaźnik halucynacji: odsetek odpowiedzi sklasyfikowanych jako halucynacja w ewaluacji manualnej (sampling). Przykładowy cel, dobierany per wdrożenie: poniżej 2% dla aplikacji business-critical.
- User feedback rate: odsetek użytkowników, którzy oznaczyli odpowiedź jako błędną.
- Escalation rate: odsetek zapytań przekazanych człowiekowi. Zbyt niski (poniżej 5%) sugeruje, że system pomija przypadki niepewne. Zbyt wysoki (powyżej 30%) oznacza, że system nie dostarcza wartości automatyzacyjnej.
- Faithfulness score w testach regresyjnych: trend miesięczny.
- Time-to-correction: od wykrycia halucynacji do wdrożenia poprawki (lepszy retrieval, nowy guardrail, fine-tuning).
Wnioski dla decydentów
Halucynacje są zarządzalne, ale wymagają inwestycji w architekturę obronną na wielu warstwach. Firmy, które wdrażają LLM bez tej architektury, prędzej czy później natrafią na poważny incydent: publikację błędnej informacji klientowi, błędną decyzję na podstawie zmyślonych danych, uszczerbek na reputacji. Koszt zbudowania pełnego stacku obronnego (RAG + evaluation + guardrails + human-in-the-loop) to zauważalna, ale mniejsza część kosztu samego wdrożenia LLM. Dla zastosowań produkcyjnych to inwestycja konieczna. Konsekwencje pominięcia są asymetryczne: zwykle zaniechanie nic nie kosztuje, aż do dnia, w którym kosztuje katastrofalnie.