Hallucinationer — orsaker och motmedel
Kunna förklara varför modeller hittar på och vilka metoder (grundning, kalibrering, avstå) som minskar det.
Förkunskaper
Intuition
En modell hallucinerar när den producerar något som låter rimligt men inte stämmer. Det är inte en bugg som kan fixas bort — det följer av hur modellen fungerar.
Varför det händer:
- Träningsmålet belönar sannolik text, inte sann text. Ett påhittat årtal på rätt plats i meningen är sannolikt.
- Modellen har ingen intern markering av vad den «vet». Allt är vikter.
- Preferensträning (RLHF) belönar hjälpsamma, säkra svar — och straffar sällan «jag vet inte» tillräckligt hårt.
- Sällsynta fakta har svag signal i träningsdatan; modellen interpolerar.
Var det är värst: exakta siffror, årtal, citat, källhänvisningar, namn på personer, sällsynta ämnen, och allt som hänt efter träningsdatans slut.
Formellt
Motmedlen, i effektordning:
| Metod | Vad den gör | Begränsning |
|---|---|---|
| Grundning (RAG) | ge modellen källtexten i prompten | hjälper bara om rätt text hämtas |
| Citatkrav | varje påstående ska peka på en hämtad passage | modellen kan citera fel passage |
| Avstå-instruktion | «svara 'framgår inte' om underlaget saknas» | sänker recall, måste tränas/promptas in |
| Självkonsistens | sampla n svar, ta majoriteten | dyrt, hjälper mest på resonemang |
| Verifieringssteg | en andra modell kontrollerar mot källan | dubbel kostnad |
| Kalibrering | modellens konfidens ska motsvara träffsäkerhet | modeller är ofta översäkra |
Mät det: ta 100 frågor med känt facit, låt en domare (LLM eller människa) klassa varje påstående som stöds av källan / motsägs / ej verifierbart. Rapportera andel grundade påståenden — det är hallucinationsfrekvensen, och den går att följa mellan versioner.
Kod
GRUNDNINGSPROMPT = """Svara ENDAST utifrån KÄLLORNA. Varje påstående ska följas av [n] som pekar på källan.
Om källorna inte räcker: svara exakt "Det framgår inte av underlaget." Gissa aldrig.
KÄLLOR:
{kallor}
FRÅGA: {fraga}"""
DOMARE = """För varje påstående i SVARET, avgör om det stöds av KÄLLORNA.
Svara JSON: {"pastaenden": [{"text": "...", "stods": true/false}]}"""
def grundningsgrad(llm, svar, kallor):
d = json.loads(llm(DOMARE + f"\nKÄLLOR:\n{kallor}\nSVAR:\n{svar}", temperature=0, json_mode=True))
p = d["pastaenden"]
return sum(x["stods"] for x in p) / max(len(p), 1)
Viktigt att veta: grundning tar inte bort problemet, den flyttar det. Modellen kan fortfarande sammanfatta fel, blanda ihop två källor eller citera en passage som inte säger det den påstår. Därför mäter man grundningsgraden — inte antar den.
Behärskning innebär
- Förklarar varför modeller hittar på
- Väljer motmedel: grundning, kalibrering, avstå
- Mäter hallucinationsfrekvens
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- arXiv — Survey of Hallucination in Natural Language Generation — arXiv (öppen åtkomst; licens per artikel)
- arXiv — RAGAS: Automated Evaluation of RAG — arXiv (öppen åtkomst; licens per artikel)