## Halucynacje

*Jakość i bezpieczeństwo*

*Ostatnia zmiana: 28 września 2026*

Model nie ma trybu „nie wiem”: zawsze dopisze prawdopodobny ciąg dalszy, równie pewnym tonem, gdy zna odpowiedź i gdy zgaduje. Halucynacji nie da się wyłączyć, da się je ograniczać i mierzyć.

**Po ludzku:** Student, który na egzaminie ustnym nigdy nie mówi „nie wiem”. Gdy zna odpowiedź, mówi płynnie i pewnie. Gdy nie zna, mówi tak samo płynnie i pewnie, więc po tonie nie poznasz różnicy.

*Interaktywny widżet na stronie: Włączaj źródło w kontekście i zgodę na „nie wiem”, osobno i razem. Patrz, które zmyślenia znikają, które zostają i ile odpowiedzi przy tym tracisz.*

### Skąd się biorą halucynacje

- Model przewiduje następny token i zawsze jakiś zwróci. Nie ma osobnego sygnału „tu kończy się moja wiedza”, a zgadnięte zdanie jest tak samo gładkie jak prawdziwe. Wylosowanego tokena nie da się cofnąć: jeśli odpowiedź zaczęła się od „W 1978 roku”, reszta zdania będzie ten rok uzasadniać (temat „Następny token”).
- Fakty, które w danych treningowych pojawiły się raz albo wcale, są w wagach zapisane słabo albo wcale. Stolicę Australii model widział tysiące razy, rok otwarcia małego muzeum najwyżej raz. Kalai i in. (OpenAI, 2025) pokazują, że dla faktów bez wzorca, takich jak daty urodzenia, odsetek halucynacji po pretrainingu wynosi w przybliżeniu co najmniej tyle, ile odsetek faktów, które w danych wystąpiły dokładnie raz.
- Post-training tego nie usuwa, bo prawie wszystkie popularne benchmarki oceniają 0/1: za „nie wiem” dają zero, tak samo jak za błąd. Przy takiej ocenie wstrzymanie się nigdy nie jest optymalne, więc model trenowany i wybierany pod wynik uczy się zgadywać, jak uczeń na teście bez punktów ujemnych.

### Rodzaje halucynacji

- Zmyślony fakt: zła data, liczba albo nazwisko podane pewnym tonem. Zmyślone źródło: tytuł pracy, wyrok, link albo cytat, których nie ma. W 2023 roku sąd federalny w Nowym Jorku ukarał prawników grzywną 5000 USD za pismo z wyrokami wymyślonymi przez ChatGPT (sprawa Mata v. Avianca).
- Niewierność źródłu: dokument leży w kontekście, a odpowiedź mu przeczy albo dodaje coś, czego w nim nie ma. W RAG to typowy błąd etapu generowania, groźny, bo przypis sprawia, że odpowiedź wygląda na sprawdzoną. Błąd rozumowania: fakty się zgadzają, ale rachunek jest zły albo wniosek nie wynika z przesłanek.
- W agencie: wywołanie narzędzia z wymyślonym argumentem (identyfikator klienta, ścieżka pliku, nazwa pola) albo meldunek „wysłałem maila”, „testy przechodzą”, choć żadne narzędzie tego nie zrobiło. W kodzie: funkcje, parametry i całe pakiety, które nie istnieją. Atakujący może zarejestrować pakiet o zmyślanej przez modele nazwie i czekać, aż agent go zainstaluje.

### Co pomaga i gdzie są granice

- Źródło w kontekście z przypisami (temat „RAG”) pomaga najbardziej, ale tylko wtedy, gdy wyszukiwanie znajdzie fragment z odpowiedzią. Do tego jawna zgoda na „nie wiem” i polecenie „najpierw wypisz dosłowne cytaty ze źródła, potem odpowiedz tylko na ich podstawie”. Cytat da się sprawdzić zwykłym wyszukiwaniem tekstu. Ceną jest to, że model odpowie na mniej pytań.
- Narzędzia zamiast pamięci: kod albo kalkulator do rachunków, wyszukiwarka i baza do faktów, dokumentacja do API (temat „Narzędzia (function calling)”). Drugi krok sprawdzający, czyli osobne wywołanie, które czyta odpowiedź razem ze źródłami i skreśla twierdzenia bez pokrycia, łapie część błędów, ale sam też się myli.
- Niższa temperatura nie leczy: temperatura 0 wybiera najbardziej prawdopodobny token, więc zmyślona data staje się po prostu powtarzalna. Rozumowanie przed odpowiedzią (temat „Modele rozumujące”) pomaga w logice i rachunkach, bo model może sprawdzić kroki, ale wiedzy, której nie ma w wagach, nie doda. Fine-tuning słabo się do tego nadaje: nowe fakty model przyswaja powoli, a gdy już je przyswoi, rośnie jego skłonność do zmyślania (Gekhman i in., 2024).

### Próg pewności i pomiar

*Interaktywny widżet na stronie: Przesuwaj próg pewności, poniżej którego model mówi „nie wiem”. Porównaj punkty w ocenie 0/1 i w ocenie z karą za błąd i sprawdź, przy której opłaca się wstrzymać.*

- Próg wybierasz pod koszt pomyłki i mierzysz na własnym zestawie (temat „Ewaluacje”): osobno poprawne, błędne i wstrzymane, plus pytania, na które w źródłach celowo nie ma odpowiedzi. Sama trafność nagradza zgadywanie, sam odsetek błędów nagradza milczenie.
- Pewność modelu z `logprobs` nie jest miernikiem prawdy. Model bywa pewny błędu, pewność rozkłada się na różne sformułowania tej samej odpowiedzi, a post-training psuje kalibrację: w raporcie o GPT-4 model bazowy był dobrze skalibrowany na pytaniach z MMLU, a po post-trainingu wyraźnie gorzej. Bez źródeł lepszy sygnał daje spójność: kilka próbek odpowiedzi na to samo pytanie i sprawdzenie, czy znaczą to samo (semantic entropy, Farquhar i in., Nature 2024). Zgadnięte fakty zmieniają się między próbkami, znane zostają.
- Wierność i przypisy sprawdzasz kodem. Najpierw, czy cytowany fragment dosłownie istnieje w dokumencie. Natywne cytowania w API, np. w Claude, gwarantują poprawny wskaźnik do dokumentu, ale nie to, że fragment popiera twierdzenie. Potem, twierdzenie po twierdzeniu, czy fragment je potwierdza: model NLI albo sędzia-LLM z oceną tak/nie.

### Sprawdź się

**Pytanie:** Skąd biorą się halucynacje i jak je ograniczasz oraz mierzysz na produkcji?

**Krótka odpowiedź:** Model zawsze generuje prawdopodobny ciąg dalszy i nie ma wbudowanego „nie wiem”, więc przy rzadkich faktach zgaduje tym samym pewnym tonem. Trening i benchmarki oceniane 0/1 nagradzają trafienie, a za wstrzymanie dają zero, więc zgadywanie się opłaca. Nie da się tego wyłączyć, można ograniczać: źródła z przypisami w kontekście, zgoda na „nie wiem”, narzędzia do faktów i rachunków, sprawdzanie cytatów kodem. Niższa temperatura tylko powtarza ten sam strzał. Mierz osobno błędy, wstrzymania i wierność źródłom, a próg odpowiadania ustawiaj pod koszt pomyłki.

### Pytania pogłębiające

- **Czy da się wykryć halucynację po logprobs?** Częściowo. Niska pewność bywa sygnałem, ale model potrafi być pewny błędu, pewność rozkłada się na różne sformułowania tej samej odpowiedzi, a post-training psuje kalibrację. Lepszy sygnał daje kilka próbek i sprawdzenie, czy znaczą to samo.
- **Czemu system z RAG nadal zmyśla?** Wyszukiwarka zawsze coś zwraca. Jeśli fragment nie zawiera odpowiedzi, model często uzupełnia lukę z wag i dokleja przypis do najbliższego źródła. Do tego potrafi przekręcić fragment, który ma przed sobą.
- **Agent melduje „testy przechodzą”, a nie przechodzą. Co robisz?** Nie ufasz meldunkom, tylko sprawdzasz stan. Testy uruchamia kod i odsyła wynik modelowi, a warunek końca zadania sprawdza narzędzie, nie deklaracja modelu. W ewaluacji oceniasz stan końcowy, a przebiegi z fałszywym meldunkiem dopisujesz do zestawu jako nowe przypadki.
- **Jak zmierzyć halucynacje we własnym systemie?** Zestaw pytań ze sprawdzoną odpowiedzią plus pytania, na które w źródłach odpowiedzi nie ma. Liczysz osobno poprawne, błędne i wstrzymane, a dla RAG także wierność: czy każde twierdzenie ma pokrycie w podanym fragmencie.

### Źródła

- [Kalai i in.: Why Language Models Hallucinate (arXiv, 2025)](https://arxiv.org/abs/2509.04664)
- [Dokumentacja Claude: Reduce hallucinations](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations)
- [Lilian Weng: Extrinsic Hallucinations in LLMs](https://lilianweng.github.io/posts/2024-07-07-hallucination/)

Strona interaktywna: https://howaiworks.dev/pl/halucynacje/
