Chain-of-Thought-Prompting
Schrittweise Schlussfolgerungen hervorlocken
Chain-of-Thought-Prompting 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.
Reasoning als Token-Budget
Beim Chain-of-Thought-Prompting werden vor der endgültigen Antwort Zwischenschritte des Reasonings abgerufen. Die zentrale Erkenntnis: Transformer führen pro Token eine feste Menge an Berechnungen aus. Wenn das Modell Reasoning-Tokens ausgeben darf, erhält es effektiv mehr serielle Rechenleistung, um die Antwort zu ermitteln.
Eine sofortige Antwort begrenzt die für ein schwieriges Problem verfügbare Rechenleistung. CoT hebt diese Begrenzung auf, indem die Berechnung über mehrere generierte Tokens verteilt wird.
# Direct: model must compute everything before the first token
DIRECT = 'Q: ' + q + '\nA:'
# CoT: model can use tokens as scratch space
COT = 'Q: ' + q + '\nA: Let us reason step by step.'Zero-Shot CoT
Die bekannte Triggerphrase Let us think step by step (Kojima et al., 2022) ruft Reasoning mit keinen Beispielen hervor. Das funktioniert, weil instruction-tuned Modelle das Muster verinnerlicht haben, dass auf eine solche Phrase eine ausgearbeitete Lösung folgt.
Zero-Shot CoT ist kostengünstig und überraschend effektiv, aber die Qualität des Reasonings lässt sich weniger gut steuern als bei Few-Shot CoT mit kuratierten Beispielen.
def zero_shot_cot(question):
stage1 = llm('Q: ' + question + '\nA: Let us think step by step.')
# Extract the final answer in a second, constrained call
stage2 = llm(stage1 + '\nTherefore, the final answer is:')
return parse_answer(stage2)Few-Shot CoT
Few-Shot CoT (Wei et al., 2022) stellt Beispiele bereit, die den Reasoning-Verlauf und nicht nur die Antwort enthalten. Dadurch lernt das Modell sowohl, wie es schlussfolgern soll, als auch das gewünschte Format. Das führt zu zuverlässigeren und konsistenteren Reasoning-Ketten als bei Zero-Shot.
Kuratierten Sie Beispiele, deren Reasoning-Stil, Granularität und Länge dem entsprechen, was Sie kopiert haben möchten. Inkonsistentes Reasoning in den Beispielen führt zu inkonsistenten Ketten.
FS_COT = (
'Q: Roger has 5 balls, buys 2 cans of 3. How many balls?\n'
'A: 5 + 2*3 = 5 + 6 = 11. The answer is 11.\n\n'
'Q: ' + question + '\nA:'
)Reasoning und Antwort trennen
Machen Sie die endgültige Antwort maschinell extrahierbar: Beenden Sie die Kette mit einem festen Marker (zum Beispiel The answer is X oder einem JSON-Feld). Das Parsen frei formulierter Ketten ist fragil.
Bei Produkten für Endbenutzer können Sie die Kette ausblenden und nur die geparste Antwort anzeigen, während Sie das Reasoning als internen Notizbereich beibehalten.
import re
def extract(chain):
m = re.search(r'[Tt]he answer is\s*(.+?)[.\n]', chain)
if not m:
raise ValueError('no answer marker found')
return m.group(1).strip()Faithfulness ist nicht garantiert
Ein wichtiger Vorbehalt: Die verbalisierte Kette kann die tatsächlichen Berechnungen des Modells nicht widerspiegeln. Studien zeigen, dass Modelle plausibel klingende Begründungen erzeugen können, die nachträglich eine von verborgenen Verzerrungen bestimmte Antwort rationalisieren (zum Beispiel durch die Position einer Option).
Betrachten Sie CoT weder als getreue Erklärung noch als Prüfprotokoll. CoT verbessert bei vielen Aufgaben die Genauigkeit, bietet aber keinen Einblick in den tatsächlichen Mechanismus des Modells.
# Faithfulness probe: perturb an irrelevant cue (e.g., always make
# option A correct in the few-shot). If the chain still 'justifies'
# choosing A, the stated reasoning is unfaithful to the real cause.Decoding-Einstellungen für CoT
Für eine einzelne deterministische Kette reduziert eine niedrige Temperatur die Varianz. CoT lässt sich jedoch besonders wirkungsvoll mit Sampling kombinieren: Bei moderater Temperatur können Sie mehrere unterschiedliche Ketten erzeugen und zusammenfassen (behandelt unter Self-Consistency).
Vermeiden Sie Greedy-Decoding, wenn Sie mehrere Pfade sampeln möchten. Greedy-Decoding beseitigt die Diversität und verhindert eine sinnvolle Zusammenfassung.
single = llm(COT, temperature=0.0) # one stable chain
paths = [llm(COT, temperature=0.7) for _ in range(10)] # diverseStrukturiertes und tabellarisches Reasoning
Geben Sie der Kette bei komplexen Problemen eine Struktur: nummerierte Schritte, eine Zustandstabelle oder eine Aufteilung in Planen und Ausführen. Struktur reduziert übersprungene Schritte und macht Zwischenzustände überprüfbar.
Programmunterstützte Ansätze gehen noch weiter: Sie geben ausführbaren Code als Reasoning aus und lagern arithmetische Berechnungen an einen Interpreter aus. Dadurch wird eine ganze Klasse von Berechnungsfehlern vermieden.
PAL = (
'Solve by writing Python. Q: ' + q + '\n'
'A:\ndef solve():\n'
' # the model writes code here, then we exec() it\n'
)
# Offload arithmetic to a deterministic interpreterLänge, Kosten und Latenz
CoT erhöht die Zahl der ausgegebenen Tokens und damit Kosten sowie Latenz. Bei einfachen Aufgaben bringt der Mehraufwand keinen Nutzen, bei schwierigen Aufgaben ist er unerlässlich. Ein pragmatisches Muster ist adaptives Reasoning: Lösen Sie CoT nur aus, wenn eine kostengünstige Schätzung des Schwierigkeitsgrads oder eine Antwort mit geringer Konfidenz dies rechtfertigt.
Bei Reasoning-Modellen mit integriertem Denken steuern Sie stattdessen ein Budget für den Reasoning-Aufwand, anstatt die Kette selbst per Prompt anzufordern.
def adaptive(question):
direct = llm('Q: ' + question + '\nA (answer only):', temperature=0)
if confidence(direct) > 0.85:
return direct
return zero_shot_cot(question) # escalate to reasoning only if neededCoT bei Reasoning-nativen Modellen
Moderne Reasoning-Modelle führen automatisch eine ausgedehnte interne Abwägung durch. Ausführliche Anweisungen wie Let us think step by step können bei ihnen überflüssig oder sogar kontraproduktiv sein, weil sie den trainierten Denkprozess stören.
Bevorzugen Sie bei diesen Modellen prägnante Aufgabenstellungen und explizite Anforderungen an das Antwortformat. Stimmen Sie außerdem den Parameter für den Reasoning-Aufwand ab, statt Ketten von Hand zu formulieren.
# Reasoning-native model: let it think, just constrain the output
resp = reasoning_model(
prompt=question,
reasoning_effort='medium',
output_format='Final answer on the last line as: ANSWER=<x>'
)Wenn CoT nach hinten losgeht
CoT kann bei Aufgaben schaden, bei denen ausführliche Überlegungen die richtige Intuition überlagern, bei einfachem Musterabgleich oder wenn die Verbalisierung Fehler einführt, die das Modell implizit nicht machen würde. Außerdem vergrößert es die Angriffsfläche für Prompt-Injection innerhalb langer Ketten.
Vergleichen Sie CoT für jede Aufgabe mit direkten Antworten. Nehmen Sie niemals an, dass Reasoning-Prompts grundsätzlich vorteilhaft sind.
def should_use_cot(task_acc_cot, task_acc_direct, cot_cost_mult):
gain = task_acc_cot - task_acc_direct
# Only adopt CoT if accuracy gain justifies the token multiplier
return gain > MIN_GAIN and gain / cot_cost_mult > MIN_EFFICIENCYCoT in Produktion einsetzen
CoT in der Produktion: Kuratieren Sie konsistente Beispiele (oder verlassen Sie sich auf das dem Modell eigene Reasoning), erzwingen Sie eine parsbare Antwortmarkierung, erzeugen Sie für schwierige Aufgaben mehrere Ketten, validieren Sie nach Möglichkeit die Arithmetik durch Codeausführung und aktivieren Sie Reasoning nur ab einer bestimmten Schwierigkeit, um die Kosten zu kontrollieren.
Protokollieren Sie die Ketten zur Offline-Analyse, stellen Sie sie aber niemals als Ground-Truth-Erklärungen bereit.
def production_solve(q):
if easy(q):
return extract(llm(DIRECT_PROMPT.format(q=q), temperature=0))
chains = [llm(FS_COT.format(q=q), temperature=0.7) for _ in range(8)]
return majority_vote([extract(c) for c in chains])Kurztest
Überlegen Sie, warum CoT hilft und wo es nicht hilft.
Zusammenfassung
Wichtigste Erkenntnisse:
- CoT tauscht zusätzliche Tokens gegen zusätzliche serielle Rechenleistung ein; es hilft bei mehrstufigen Aufgaben, nicht bei trivialen.
- Zero-shot-CoT verwendet eine Triggerphrase; Few-shot-CoT liefert konsistente Beispiele für Reasoning.
- Beenden Sie die Ausgabe immer mit einer maschinenextrahierbaren Antwortmarkierung; Ketten sind keine zuverlässigen Erklärungen.
- Erzeugen Sie für schwierige Aufgaben mehrere Ketten, lagern Sie die Arithmetik an Code aus und aktivieren Sie CoT nur ab einer bestimmten Schwierigkeit.
- Bei Reasoning-native-Modellen sollten Sie prägnante Prompts und ein Budget für den Reasoning-Aufwand ausführlichen Anweisungen für Denkketten vorziehen.
Häufig gestellte Fragen
Ist die Lektion „Chain-of-Thought-Prompting“ kostenlos?
Ja — der vollständige Text von „Chain-of-Thought-Prompting“ 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 „Chain-of-Thought-Prompting“?
Schrittweise Schlussfolgerungen hervorlocken 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 „Chain-of-Thought-Prompting“?
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
- Chain-of-Thought-Prompting
- Self-Consistency-Sampling
- Tree-of-Thought-Exploration
- Wann Reasoning-Prompts helfen