Unerwartete Ausgaben diagnostizieren
Klassifizieren Sie Fehlermuster: falsche Antwort, falsches Format, themenfremd oder Halluzination
Unerwartete Ausgaben diagnostizieren ist eine kostenlose AI Prompt Engineering-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Prompt Engineering-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Prompt Engineering-Kurs umfasst insgesamt 4 Lektionen.
Wenn Prompts fehlschlagen
Selbst sorgfältig erstellte Prompts liefern manchmal falsche Ergebnisse. Um Fehler zu diagnostizieren, benötigen Sie eine Taxonomie — eine Klassifizierung der aufgetretenen Fehlerart. Ohne eine solche Klassifizierung besteht das Debugging aus Vermutungen. Die vier Hauptkategorien sind: falsche Antwort, falsches Format, Antwort am Thema vorbei und Halluzination.
Fehlertyp 1: Falsche Antwort
Eine falsche Antwort ist ein faktischer Fehler — das Modell hat eine Antwort im richtigen Format und zum richtigen Thema gegeben, aber der Inhalt ist falsch.
Beispiele sind falsche Datumsangaben, Statistiken oder Namen sowie Code mit einem Logikfehler. Dieser Fehler lässt sich automatisch am schwersten erkennen, weil die Ausgabe oberflächlich betrachtet korrekt aussieht.
- Ursache: Wissensstand der Trainingsdaten, eine seltene Information oder ein Fehler beim mehrstufigen Schlussfolgern
- Erkennung: Abgleich mit der Ground Truth, menschliche Prüfung oder ein LLM-Aufruf zur Verifizierung
# Example: wrong answer failure
prompt = 'What year was Python first released?'
response = 'Python was first released in 1994.' # Wrong — it was 1991
# Ground truth check
GROUND_TRUTH = '1991'
correct = GROUND_TRUTH in response
print(f'Correct: {correct}') # FalseFehlertyp 2: Falsches Format
Ein Fehler mit falschem Format tritt auf, wenn das Modell die richtige Frage mit den richtigen Informationen beantwortet, aber die Formatierungsvorgabe ignoriert.
Beispiele: Es gibt einfachen Text zurück, obwohl JSON angefordert wurde, fügt Markdown hinzu, obwohl einfacher Text erforderlich war, oder gibt eine Liste zurück, obwohl ein einzelner Wert verlangt wurde.
- Ursache: Die Formatierungsvorgabe ist in einem langen Prompt verborgen, widersprüchliche Anweisungen oder das Ignorieren von Anweisungen mit niedriger Priorität durch das Modell
- Erkennung: JSON-Parsing-Fehler, fehlende Übereinstimmung mit einem regulären Ausdruck oder fehlgeschlagene Schema-Validierung
import json
response_text = 'Sure! Here is the result: {"name": "Alice", "age": 30}'
try:
data = json.loads(response_text)
print('Format OK:', data)
except json.JSONDecodeError as e:
print(f'FORMAT FAILURE: {e}')
# 'Sure! Here is the result:' prefix broke JSON parsingFehlertyp 3: Antwort am Thema vorbei
Ein Fehler, bei dem die Antwort am Thema vorbeigeht, bedeutet, dass das Modell eine andere Frage als die gestellte beantwortet hat. Die Antwort kann faktisch korrekt und gut formatiert sein, geht aber nicht auf die tatsächliche Absicht der nutzenden Person ein.
Beispiele: Sie bitten um eine Python-Funktion und erhalten eine JavaScript-Funktion; Sie bitten um eine einzeilige Antwort und erhalten einen vollständigen Aufsatz; Sie bitten darum, einen Fehler zu beheben, und erhalten statt der Korrektur eine Erklärung des Fehlers.
- Ursache: mehrdeutige Anweisung, widersprüchlicher Kontext oder eine Verschiebung der Aufgabe in langen Unterhaltungen
# Off-topic example
prompt = 'Write a Python function that reverses a list.'
response = '''
In JavaScript, you can reverse an array like this:
const reversed = arr.reverse();
'''
# Detection: check that output contains the correct language keyword
def check_language(response, expected_lang='def '):
if expected_lang not in response:
print(f'OFF-TOPIC FAILURE: expected {expected_lang} in response')
return False
return True
check_language(response) # False — no Python defFehlertyp 4: Halluzination
Eine Halluzination ist der gefährlichste Fehler: Das Modell erfindet Fakten, die nicht existieren. Diese wirken plausibel und werden selbstbewusst präsentiert, sodass sie schwer zu erkennen sind.
Beispiele: erfundene Zitate (der Titel eines Papers klingt echt, existiert aber nicht), erfundene API-Endpunkte, gefälschte Statistiken oder nicht existierende Personen.
- Ursache: Das Modell füllt Wissenslücken mit plausibel klingendem Text, der anhand von Mustern erzeugt wird
- Erkennung: Faktenprüfung anhand maßgeblicher Quellen, Abgleich von Zitaten oder Testen von API-Aufrufen
# Hallucination detection via external verification
import requests
def verify_doi(doi):
url = f'https://doi.org/{doi}'
resp = requests.head(url, allow_redirects=True, timeout=5)
return resp.status_code == 200
# Model claimed this paper exists:
fabricated_doi = '10.1234/fake.paper.2023.99999'
if not verify_doi(fabricated_doi):
print('HALLUCINATION DETECTED: DOI does not exist')Die Fehlertaxonomie in der Praxis
Wenn ein Fehler auftritt, klassifizieren Sie ihn zunächst, bevor Sie eine Korrektur versuchen. Der Fehlertyp bestimmt die Korrekturstrategie:
- Falsche Antwort: Kontext hinzufügen, Retrieval verwenden oder auf ein leistungsfähigeres Modell wechseln
- Falsches Format: die Formatierungsvorgabe verstärken, Ausgabebeispiele hinzufügen oder strukturierte Ausgaben bzw. function calling verwenden
- Antwort am Thema vorbei: die Anweisung spezifischer formulieren und den Prompt vereinfachen
- Halluzination: Kontext aus verlässlichen Quellen hinzufügen, anweisen, „Ich weiß es nicht“ zu sagen, und Quellenangaben aktivieren
Strukturiertes Fehlerprotokollieren
Protokollieren Sie jeden Fehler mit seiner Klassifizierung. Mit der Zeit zeichnen sich Muster ab: Ein bestimmter Prompt-Abschnitt verursacht die meisten Fehler mit falschem Format, oder ein bestimmtes Thema führt häufig zu Halluzinationen. Strukturierte Protokolle ermöglichen datengestütztes Debugging.
import json
from datetime import datetime
def log_failure(prompt, response, failure_type, details=''):
entry = {
'timestamp': datetime.utcnow().isoformat(),
'failure_type': failure_type, # wrong_answer | wrong_format | off_topic | hallucination
'prompt_hash': hash(prompt),
'response_snippet': response[:200],
'details': details
}
with open('prompt_failures.jsonl', 'a') as f:
f.write(json.dumps(entry) + '\n')
log_failure(
prompt=my_prompt,
response=bad_response,
failure_type='wrong_format',
details='JSON prefix text broke parsing'
)Automatisierte Fehlerklassifizierung
Verwenden Sie für Tests im großen Maßstab einen LLM-Aufruf zur Klassifizierung, um jede Antwort automatisch mit einem Fehlertyp zu kennzeichnen. So können Sie Hunderte von Testfällen stapelweise auswerten.
def classify_failure(prompt, expected, actual):
classification_prompt = (
f'You are a QA evaluator for LLM outputs.\n'
f'Prompt: {prompt}\n'
f'Expected behavior: {expected}\n'
f'Actual output: {actual}\n\n'
'Classify the failure as one of: CORRECT, WRONG_ANSWER, WRONG_FORMAT, OFF_TOPIC, HALLUCINATION.\n'
'Reply with only the label.'
)
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': classification_prompt}]
)
return resp.choices[0].message.content.strip()Schweregradmatrix
Nicht alle Fehler haben die gleichen Auswirkungen. Eine Schweregradmatrix hilft dabei, Korrekturen zu priorisieren:
- Halluzination im medizinischen oder rechtlichen Kontext: kritisch — sofort beheben
- Falsches Format in einem internen Tool: hoch — unterbricht das nachgelagerte Parsing
- Falsche Antwort bei einem seltenen Sonderfall: mittel — Häufigkeit beobachten
- Antwort am Thema vorbei bei mehrdeutiger Eingabe: niedrig — akzeptabel, wenn dies selten vorkommt
Verfolgen Sie die Fehlerraten nach Typ und Woche. Ein Anstieg in einer beliebigen Kategorie weist auf eine Regression hin, die Aufmerksamkeit erfordert.
Ein Fehler-Dashboard erstellen
Ein einfaches Fehler-Dashboard liest das Fehlerprotokoll und meldet die Anzahl der Fehler nach Typ und Prompt-Abschnitt:
import json
from collections import Counter
def failure_report(log_path='prompt_failures.jsonl'):
entries = []
with open(log_path) as f:
for line in f:
entries.append(json.loads(line))
counts = Counter(e['failure_type'] for e in entries)
total = len(entries)
print(f'Total failures: {total}')
for ftype, count in counts.most_common():
pct = 100 * count / total
print(f' {ftype}: {count} ({pct:.1f}%)')
failure_report()Fehler proaktiv verhindern
Proaktive Strategien, um die einzelnen Fehlertypen zu verhindern:
- Falsche Antwort: Referenztext im Prompt bereitstellen (RAG); das Modell bitten, seine Quelle anzugeben
- Falsches Format: JSON-Modus oder function calling verwenden; ein Formatbeispiel im Prompt bereitstellen
- Antwort am Thema vorbei: die Aufgabe an die erste Stelle setzen; lange Einleitungen vermeiden, die die eigentliche Absicht verwässern
- Halluzination: anweisen: „Verwenden Sie ausschließlich die unten bereitgestellten Informationen“; hinzufügen: „Wenn Sie unsicher sind, sagen Sie, dass Sie es nicht wissen“
Wissenscheck
Welcher Fehlertyp tritt auf, wenn das Modell nicht existierende Fakten erfindet, etwa ein Zitat oder einen API-Endpunkt?
Rückblick: Unerwartete Ausgaben diagnostizieren
Die vier Fehlertypen bei LLMs und ihre wichtigsten Merkmale:
- Falsche Antwort: korrektes Format, korrektes Thema, falscher Inhalt — anhand der Ground Truth überprüfen
- Falsches Format: korrekter Inhalt, Formatierungsvorgabe ignoriert — durch Schema-Validierung erkennbar
- Antwort am Thema vorbei: korrektes Format, aber eine andere Frage beantwortet — Übereinstimmung von Sprache und Aufgabe prüfen
- Halluzination: erfundene Fakten — anhand externer Quellen überprüfen
Protokollieren und klassifizieren Sie jeden Fehler. Verfolgen Sie die Raten nach Typ über einen längeren Zeitraum. Nächste Lektion: Ursachenanalyse, um herauszufinden, welcher Teil des Prompts den Fehler verursacht hat.
Lerne AI Prompt Engineering mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 53
- Lektionen
- 199
Häufig gestellte Fragen
Ist die Lektion „Unerwartete Ausgaben diagnostizieren“ kostenlos?
Ja — der vollständige Text von „Unerwartete Ausgaben diagnostizieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Prompt Engineering-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Prompt Engineering-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Unerwartete Ausgaben diagnostizieren“?
Klassifizieren Sie Fehlermuster: falsche Antwort, falsches Format, themenfremd oder Halluzination Du übst AI Prompt Engineering mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Prompt Engineering zu starten?
Keine Vorkenntnisse erforderlich. AI Prompt Engineering auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Unerwartete Ausgaben diagnostizieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Prompt Engineering-Lektion Code schreiben und ausführen?
Ja. Jede AI Prompt Engineering-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Unerwartete Ausgaben diagnostizieren
- Ursachenanalyse für Prompts
- Systematischer Debugging-Ansatz
- Strategien für Logging und Dokumentation