Claude hat gerade zuversichtlich drei Forschungsarbeiten in Ihrer RAG-Pipeline zitiert. Keine davon existiert. Sie haben nachgeprüft. Das passiert, weil LLMs keine Fakten abrufen – sie sagen das nächste Token basierend auf Mustern in Trainingsdaten voraus. Wenn diese Vorhersage von der Realität abweicht, erhalten Sie eine Halluzination. Zu verstehen, warum das passiert, ist der erste Schritt zur Verhinderung.
Was Halluzination tatsächlich ist (und warum Ihr Modell nicht kaputt ist)
Halluzination ist kein Fehler im Sinne eines Laufzeitfehlers. Es ist eine grundlegende Konsequenz der Funktionsweise großer Sprachmodelle. Ein LLM generiert Text Token für Token und wählt das nächste Wort basierend auf Wahrscheinlichkeitsverteilungen aus, die während des Trainings gelernt wurden. Wenn die Trainingsdaten Muster enthielten, die Selbstvertrauen belohnen (Spoiler: das taten sie), lernt das Modell, sicher zu klingen, auch wenn es das nicht ist.
In Benchmarks erreicht Claude 3.5 Sonnet eine faktenbasierte Genauigkeit von ~92 % bei geschlossenen Fragen. Das klingt hoch, bis man bedenkt, dass dies bedeutet, dass etwa jede 12. Antwort eine Erfindung enthält. Wenn Sie täglich Tausende von Inferenzläufen durchführen, stoßen Sie regelmäßig auf Halluzinationen.
Das Problem verschärft sich, wenn Sie ein Modell auffordern, über Informationen zu schlussfolgern, die es noch nicht gesehen hat. Ein Modell, das auf Daten bis April 2024 trainiert wurde, kann nicht wissen, was im Juni 2024 passiert ist. Anstatt zu sagen „Ich weiß es nicht“, generiert es plausibel klingenden Text, der zum Muster passt. So entstehen Forschungsarbeiten, die nicht existieren.
Die drei Fehlerarten, auf die Sie tatsächlich stoßen
Halluzinationen sind nicht zufällig. Sie folgen vorhersagbaren Mustern, abhängig von Ihrem Anwendungsfall.
Halluzinationen durch Wissensgrenze (Knowledge cutoff hallucinations): Das Modell generiert aktuelle Informationen mit Zuversicht, obwohl es auf älteren Daten trainiert wurde. Beispiel: Wenn Sie GPT-3.5 nach Ereignissen im Jahr 2024 fragen, erhalten Sie erfundene Fakten, die als Nachrichten verpackt sind. Lösung: Fügen Sie immer das aktuelle Datum in Ihren System-Prompt ein und geben Sie explizit den Trainings-Cutoff des Modells an.
Halluzinationen bei der Befolgung von Anweisungen (Instruction-following hallucinations): Das Modell erfindet Informationen, um Ihre Aufforderung zu erfüllen. Sie bitten um 10 Fallstudien – es liefert 10, auch wenn nur 4 in seinen Trainingsdaten existieren. Die restlichen 6 sind erfunden, um Ihre Anfrage zu erfüllen. Deshalb sind Prompts wie „Finde 5 Beispiele für…“ gefährlich, wenn sie nicht verankert sind.
Halluzinationen beim Schlussfolgern (Reasoning hallucinations): Das Modell verknüpft plausibel klingende Logik, die ins Leere führt. Es zitiert Quellen, zitiert Experten, konstruiert ganze Erzählungen – alles intern kohärent, alles potenziell falsch. Diese sind am schwierigsten zu erkennen, weil sie nicht falsch klingen.
Technik 1: Verankern Sie Ihre Prompts in tatsächlichen Daten
Dies ist die effektivste Methode zur Reduzierung. Anstatt das Modell aufzufordern, aus dem Gedächtnis abzurufen oder zu schlussfolgern, übergeben Sie ihm die spezifischen Informationen, die es benötigt, und bitten Sie es, nur damit zu arbeiten.
Schlechter Prompt:
Fasse die neuesten Markttrends im Bereich erneuerbare Energien zusammen.
Das Modell wird aktuelle Trends halluzinieren, weil es nicht weiß, was „neueste“ für Sie bedeutet.
Verbesserter Prompt:
Fasse basierend NUR auf dem folgenden Marktbericht aus Q1 2025 die Top-Drei-Trends zusammen.
Bericht:
[HIER DEN TATSÄCHLICHEN BERICHTTEXT EINFÜGEN]
Regeln:
- Füge keine Informationen aus deinen Trainingsdaten hinzu
- Wenn Informationen nicht im Bericht enthalten sind, sage dies ausdrücklich
- Zitiere direkt, wenn eine Behauptung aufgestellt wird
Diese Verlagerung – vom offenen Abruf zum begrenzten Schlussfolgern – reduziert Halluzinationen in wiederholten Tests bei strukturierten Extraktionsaufgaben um ~60 %. Sie bitten das Modell nicht mehr, etwas zu wissen; Sie bitten es, etwas zu lesen.
Technik 2: Verwenden Sie Temperatur- und Sampling-Steuerungen
Die Temperatur steuert, wie viel Zufälligkeit das Modell bei der Auswahl des nächsten Tokens einführt. Höhere Temperatur = kreativer, weniger vorhersehbar. Niedrigere Temperatur = deterministischer, sicherer.
Für faktenbasierte Aufgaben hilft eine niedrigere Temperatur. Claudes Standardwert ist 1,0; für Extraktion oder Zusammenfassung verwenden Sie 0,3 bis 0,5. Dies reduziert die Tendenz des Modells, unwahrscheinliche Token-Sequenzen zu erforschen – dort lauern oft Halluzinationen.
Dies ist jedoch ein grobes Werkzeug. Das Senken der Temperatur eliminiert Halluzinationen nicht; es macht sie nur seltener. Eine Temperatur von 0,0 erzeugt keine Wahrheit – sie erzeugt die statistisch wahrscheinlichste Antwort, die immer noch falsch sein kann.
Python-Beispiel mit der Claude API:
import anthropic
client = anthropic.Anthropic()
# Extraktionsaufgabe mit niedriger Temperatur
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
temperature=0.3, # Niedriger für faktenbasierte Aufgaben
messages=[
{
"role": "user",
"content": "Extrahiere die Firmennamen aus diesem Text: [TEXT]"
}
]
)
print(response.content[0].text)
Technik 3: Implementieren Sie Verifizierungs-Schleifen
Gehen Sie nicht davon aus, dass die Ausgabe eines einzelnen Modells zuverlässig ist. Fügen Sie einen zweiten Durchgang hinzu, der den ersten prüft.
Für Faktenbehauptungen verwenden Sie Claude oder ein anderes starkes Modell, um Zitate zu verifizieren. Fragen Sie es: „Sind diese Papiere echt? Überprüfen Sie jedes Zitat und kennzeichnen Sie alles, was Sie nicht bestätigen können.“ Dies fängt ~75 % der erfundenen Referenzen in meinen Tests ab.
Für strukturierte Daten analysieren Sie die Ausgabe und validieren Sie sie anhand bekannter Muster. Wenn Sie E-Mail-Adressen extrahieren, überprüfen Sie das Format. Wenn Sie Daten extrahieren, verifizieren Sie, dass sie gültig sind. Wenn Sie URLs extrahieren, testen Sie, ob sie auflösbar sind (oder zumindest einem gültigen Muster folgen).
Für Schlussfolgerungsaufgaben verwenden Sie eine Technik namens „Self-Contradiction Checking“ (Prüfung auf Selbstwiderspruch). Stellen Sie dem Modell dieselbe Frage auf drei verschiedene Arten. Wenn die Antworten erheblich abweichen, kennzeichnen Sie sie für eine menschliche Überprüfung, anstatt die Antwort zu vertrauen.
Technik 4: Beschränken Sie das Ausgabeformat streng
Halluzinationen gedeihen in unstrukturierten Antworten. Beschränken Sie das Modell auf JSON, XML oder CSV mit einem klaren Schema.
Anstatt:
Extrahiere den Produktnamen und den Preis von dieser Quittung.
Verwenden Sie:
Extrahiere Daten aus dieser Quittung. Gib NUR gültiges JSON in diesem Format zurück, kein anderer Text:
{
"product_name": "string",
"price_usd": number,
"currency": "string"
}
Quittung:
[TEXT]
Strukturierte Ausgabe reduziert Halluzinationen, da das Modell weniger Freiheitsgrade hat. Es kann nicht ausschweifen oder narrative Ausschmückungen erfinden – es muss in das Schema passen, sonst schlägt die Ausgabe nachgelagert fehl.
Claude unterstützt den nativen JSON-Modus (stellen Sie temperature auf 0 ein und fügen Sie "type": "json_object" in API-Aufrufe ein), was ungültige Ausgaben weiter reduziert.
Starten Sie hier: Wählen Sie eine Technik für Ihre Pipeline
Implementieren Sie nicht alle vier gleichzeitig. Beginnen Sie mit dem Grounding – es ist die wirkungsvollste Änderung mit dem geringsten Aufwand. Geben Sie Ihrem Modell echte Daten anstelle von Erinnerungen.
Auditieren Sie diese Woche einen Prompt in Ihrem System. Finden Sie eine Stelle, an der Sie das Modell bitten, Informationen abzurufen oder zu erfinden. Ersetzen Sie ihn durch eine Version, die das tatsächliche Quellmaterial enthält. Führen Sie 20 Testfälle durch. Zählen Sie die Halluzinationen davor und danach. Sie werden den Unterschied sofort erkennen.