ML Atlas

08 · LLM · 4 min czytania · Interaktywne · aktualizacja

Dlaczego LLM halucynują, czyli zmyślają fakty, i jak to ograniczyć?

W skrócie

Halucynacja to płynna, przekonująca, ale fałszywa lub niepoparta treść wygenerowana przez model. Wynika z tego, jak LLM są trenowane i oceniane.

Co to jest

Halucynacja to treść wygenerowana przez model językowy, która brzmi wiarygodnie, ale jest fałszywa, nieweryfikowalna lub niezgodna z podanym źródłem: zmyślony cytat, nieistniejąca publikacja, błędna data, funkcja biblioteki, której nie ma. Ji i in. (2023) rozróżniają halucynacje wewnętrzne (sprzeczne z dostarczonym tekstem, np. w streszczeniu) i zewnętrzne (niemożliwe do sprawdzenia w źródle, często fałszywe w świecie).

Najgroźniejsza cecha halucynacji to ich forma. Model nie sygnalizuje niepewności zmianą stylu: zmyślony fakt jest podany tym samym spokojnym, kompetentnym tonem co prawdziwy. Dlatego łatwo je przeoczyć.

Słowo „halucynacja” jest metaforą, i to nie najszczęśliwszą — model niczego nie „widzi”. Trafniej mówić o konfabulacji: wypełnianiu luk w wiedzy prawdopodobnie brzmiącą treścią.

Mechanizm — dlaczego tak działa

Model optymalizuje prawdopodobieństwo, nie prawdę. Trening uczy przewidywać tekst typowy dla danego kontekstu. Na pytanie o datę urodzenia mało znanej osoby najbardziej „typowa” kontynuacja to jakaś data, a nie „nie wiem” — bo w danych treningowych pytania o daty zwykle mają odpowiedź. Model nie ma osobnego mechanizmu sprawdzania faktów; płynność i poprawność to dwie różne rzeczy.

Rzadkie fakty są nieuchwytne statystycznie. Ogólne wzorce (gramatyka, styl, częste fakty) występują w danych tysiące razy i model uczy się ich solidnie. Fakt, który pojawił się raz, jest dla modelu nieodróżnialny od szumu. Kalai i Vempala (2024) pokazali, że nawet idealnie skalibrowany model musi halucynować na faktach arbitralnych, a ich częstość wiąże się z odsetkiem faktów widzianych w danych tylko raz.

Ocena nagradza zgadywanie. Kalai i in. (2025) zwracają uwagę na drugi czynnik: większość benchmarków punktuje odpowiedź poprawną jako 1, a błędną i „nie wiem” jednakowo jako 0. W takim systemie zgadywanie zawsze się opłaca — jak na teście wielokrotnego wyboru bez punktów ujemnych. Modele optymalizowane pod takie wyniki uczą się nie przyznawać do niewiedzy. Uczenie z ludzkich preferencji może to wzmacniać, bo oceniający często wolą odpowiedź pewną od ostrożnej.

Generowanie się nie cofa. Jeden zmyślony token — np. nazwisko w cytowaniu — zostaje w kontekście i model konsekwentnie buduje na nim resztę: dodaje tytuł, rok, czasopismo. Wyższa temperatura zwiększa szansę na takie wykolejenie.

Co pomaga, a co nie. RAG daje modelowi źródło do przepisania i umożliwia sprawdzenie odpowiedzi. Narzędzia (wyszukiwarka, kod) zastępują pamięć obliczeniami. Prośba o cytaty i dopuszczenie odpowiedzi „nie wiem” zmniejsza presję na zgadywanie. Większe modele halucynują rzadziej na częstych faktach, ale problem nie znika przy żadnej skali. Niska temperatura zmniejsza losowe wykolejenia, lecz nie usuwa błędów, w które model „wierzy”.

Na przykładzie

Model ocenia, że zna odpowiedź na pytanie z prawdopodobieństwem 0,3. Przy punktacji binarnej (1 za dobrą, 0 za złą lub „nie wiem”) oczekiwany wynik zgadywania to 0,3, a wstrzymania się — 0. Zgadywanie wygrywa przy każdej pewności większej od zera, więc model optymalizowany pod taki benchmark nigdy nie powie „nie wiem”. Jeśli za błąd odejmiemy 1 punkt, zgadywanie daje 0,3 − 0,7 = −0,4 i opłaca się milczeć. Ogólnie: przy karze t za błąd warto odpowiadać, gdy pewność przekracza t / (1 + t) — dla kary 1 próg wynosi 0,5, dla kary 3 aż 0,75. Taki próg pewności proponują jawnie podawać w instrukcjach benchmarków Kalai i in. (2025).

Ci sami autorzy ilustrują drugi mechanizm przykładem urodzin: jeśli 20% dat urodzenia w danych treningowych pojawia się dokładnie raz, należy oczekiwać, że model bazowy będzie halucynował na co najmniej około 20% pytań o takie daty. Fakty widziane raz nie dają modelowi wzorca, który odróżniałby prawdę od wiarygodnego fałszu.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: zabawkowy RAG: dla 5 pytań wyszukiwanie po słowach (TF-IDF lub BM25) umieszcza fragment z odpowiedzią w top 5 w 4 przypadkach, a pytanie sformułowane synonimami nie znajduje go wcale (wynik 0).

W praktyce

  • Do faktów używaj RAG lub wyszukiwania i proś o cytowanie konkretnych fragmentów; sprawdzaj, czy cytat naprawdę jest w źródle.
  • W prompcie wprost dopuść odpowiedź „nie wiem” lub „brak informacji w dokumentach”.
  • Liczby, daty, nazwiska, odnośniki do literatury i nazwy funkcji API zawsze weryfikuj — to kategorie najbardziej podatne na zmyślenia.
  • Do automatycznego wykrywania: porównuj kilka odpowiedzi wygenerowanych z temperaturą > 0 — niespójność między nimi sygnalizuje niepewność modelu.
  • Mierz odsetek halucynacji na własnym zestawie pytań ze znanymi odpowiedziami, osobno dla pytań, na które odpowiedzi w źródłach nie ma.

Najczęstsze pytania

Czy da się całkowicie wyeliminować halucynacje?
Nie przy obecnej konstrukcji modeli: generują prawdopodobny tekst, a nie zweryfikowane fakty. Można je znacząco ograniczyć przez źródła, narzędzia, kalibrację i weryfikację, ale odpowiedzialność za sprawdzenie ważnych faktów pozostaje po stronie człowieka lub systemu.
Czy model wie, kiedy halucynuje?
Częściowo. Badania pokazują, że modele mają pewną wewnętrzną informację o własnej niepewności, a spójność wielu odpowiedzi koreluje z poprawnością. Ta wiedza nie przekłada się jednak automatycznie na ton odpowiedzi.
Czy niższa temperatura usuwa halucynacje?
Usuwa część błędów wynikających z losowania mało prawdopodobnych tokenów. Jeśli jednak model „uważa” błędną odpowiedź za najbardziej prawdopodobną, przy temperaturze 0 poda ją tym pewniej i za każdym razem.

Źródła

  • Ji Z. i in., 2023, „Survey of Hallucination in Natural Language Generation”, ACM Computing Surveys 55(12).
  • Kalai A. T., Vempala S. S., 2024, „Calibrated Language Models Must Hallucinate”, STOC 2024.
  • Kalai A. T., Nachum O., Vempala S. S., Zhang E., 2025, „Why Language Models Hallucinate”, arXiv:2509.04664.
  • Maynez J. i in., 2020, „On Faithfulness and Factuality in Abstractive Summarization”, ACL 2020.
  • Lewis P. i in., 2020, „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”, NeurIPS 2020.

Zobacz też