Kaj so halucinacije in zakaj se pojavljajo
Halucinacija v LLM je generiranje informacije, ki zveni verodostojno, vendar je dejansko neresnična ali neutemeljena. To ni „napaka” v smislu okvare sistema — je posledica načina delovanja jezikovnih modelov. LLM ne „ve” tako kot baza podatkov — napove najverjetnejši naslednji token na podlagi statistike učenja. Ko se v promptu pojavi vprašanje, za katero model nima dobre pokritosti v učnih podatkih, generira „najverjetneje zveneč” odgovor. Pogosto je ta odgovor pravilen. Včasih — ne.
Tipični scenariji halucinacij v poslovnih aplikacijah:
- Navajanje neobstoječih sodnih odločb ali členov zakonov pri pravnem svetovanju
- Izmišljanje imen funkcij, razredov ali knjižnic pri generiranju kode
- Navajanje napačnih statistik ali datumov v poročilih
- Izmišljanje kontaktov, naslovov, telefonskih številk
- Mešanje dejstev o različnih podjetjih ali osebah s podobnimi imeni
Sloj 1 — Grounding (RAG)
Najučinkovitejša posamezna tehnika zmanjševanja halucinacij je grounding — zagotavljanje modelu konkretnih dokumentov ali podatkov kot konteksta, iz katerega mora črpati odgovore. Klasični RAG (Retrieval-Augmented Generation):
- Vprašanje uporabnika → iskanje najustreznejših fragmentov dokumentov (vector search v pgvector / Qdrant / Milvus)
- Fragmenti + vprašanje → prompt z navodilom „odgovori izključno na podlagi spodnjih dokumentov”
- Odgovor modela → preverjanje, da vsebuje citate/reference na vire
RAG tipično zmanjša halucinacije za 60-80% v aplikacijah tipa „odgovarjaj na vprašanja o naši bazi znanja”. Ne odpravi jih popolnoma — model lahko še vedno „interpretira” dokumente na neupravičen način. Od tod potreba po dodatnih slojih.
Sloj 2 — Self-consistency in ensemble
Self-consistency je tehnika, ki temelji na zastavljanju istega vprašanja večkrat (ali več različnim modelom) in primerjanju odgovorov. Ko so odgovori skladni — visoko zaupanje. Ko se razlikujejo — signal, da je tema negotova.
Praktična različica: vprašaj Claude Sonnet, Llama 70B in Bielika isto vprašanje. Če vsi trije vrnejo isto številko, datum, dejstvo — verjetno pravilno. Če se razlikujejo — eskalacija k človeku ali dražjemu modelu (Opus). Ta vzorec, implementiran v 8-stopenjskem LLM routingu, združuje zmanjšanje stroškov z izboljšanjem zanesljivosti.
Sloj 3 — Evaluation pipelines
Produkcijska namestitev LLM brez evaluation pipeline-a je kot pisanje kode brez testov. Konkretne metrike:
- Faithfulness — ali odgovor izhaja iz priloženih dokumentov. Merjeno z drugim AI modelom (LLM-as-judge) ali knjižnico tipa RAGAS, deepeval.
- Answer relevance — ali odgovor naslavlja uporabnikovo vprašanje.
- Context precision — ali so najboljši fragmenti bili vrnjeni z retrievalom (kakovost vector search).
- Groundedness score — delež trditev v odgovoru, za katere je mogoče navesti vir v kontekstu.
Vsak nov build aplikacije, ki temelji na LLM, bi moral prestati nabor 50-500 evaluacijskih vprašanj z znanim ground truth. Če faithfulness pade pod 90% — deployment blocked.
Sloj 4 — Guardrails in validacija outputa
Guardrails so pravila, ki validirajo output LLM pred dostavo uporabniku. Primeri:
- Schema validation — output mora ustrezati konkretni shemi (JSON Schema, Pydantic). Halucinacije tipa „izmišljena polja” so zaznane mehansko.
- Forbidden patterns — zaznavanje in blokiranje nesprejemljivih vzorcev (PII brez maskiranja, finančni podatki izven konteksta, potencialno škodljiva vsebina).
- Citation enforcement — vsaka dejanska trditev mora imeti citat vira. Če model ne citira — odgovor je zavrnjen.
- Numeric range validation — številke v outputu so preverjene glede smiselnosti (npr. cena > 0, datum ≤ danes, odstotek v razponu 0-100).
- Cross-reference check — primerjava outputa z bazo dejstev (npr. KRS, slovar citatov zakonov).
Knjižnice: Guardrails AI, NeMo Guardrails, instructor (za schema enforcement). Lastna implementacija je pogosto enostavnejša in cenejša za vzdrževanje.
Sloj 5 — Human-in-the-loop
Za visoko tvegane aplikacije (pravne, medicinske, finančne, kadrovske odločitve) je sloj human-in-the-loop nepogrešljiv. AI modeli ne sprejemajo končne odločitve — podpirajo človeka. Konkretni vzorci:
- Draft + review — AI generira prvo različico dokumenta/odgovora, človek preveri in sprejme pred pošiljanjem.
- Confidence threshold — odgovori z nizkim zaupanjem (iz self-consistency ali explicit confidence asking) so samodejno eskalirani k človeku.
- Random sampling QA — 5-10% vseh LLM odgovorov je ročno revidiranih, ne glede na zaupanje — osnovna metrika kakovosti v času.
- Feedback loop — uporabnik lahko označi napačen odgovor; sistem se uči in izboljšuje retrieval, prompte, parametre.
Merjenje — kako vedeti, da zmanjševanje deluje
Konkretne produkcijske metrike, ki jih je vredno spremljati:
- Hallucination rate — delež odgovorov, klasificiranih kot halucinacija v ročni evaluaciji (sampling). Cilj: pod 2% za business-critical aplikacije.
- User feedback rate — delež uporabnikov, ki so označili odgovor kot napačen.
- Escalation rate — delež zahtev, eskaliranih k človeku. Prenizek (pod 5%) — sistem verjetno spregleda negotove primere. Previsok (nad 30%) — sistem ne dostavlja avtomatizacijske vrednosti.
- Faithfulness score v regresijskih testih — mesečni trend.
- Time-to-correction — od zaznave halucinacije do namestitve popravka (boljši retrieval, nov guardrail, fine-tuning).
Sklepi za odločevalce
Halucinacije so obvladljive — zahtevajo naložbo v obrambno večslojno arhitekturo. Podjetja, ki nameščajo LLM brez te arhitekture, bodo prej ali slej naletela na resen incident (objava napačne informacije stranki, napačna odločitev na podlagi haluciniranih podatkov, ugledna škoda). Strošek izgradnje celotnega obrambnega stacka (RAG + evaluation + guardrails + human-in-the-loop) je tipično 15-30% stroška same namestitve LLM — in je naložba, absolutno nujna za produkcijske uporabe. Posledice opustitve so asimetrične: nizek strošek opustitve v 95% primerov, katastrofalen v 5%.