Program of Thoughts (PoT) ist eine Prompting-Methode, bei der ein Sprachmodell seine Gedankenkette nicht als Text, sondern als ausführbaren Programmcode formuliert. Ein externer Interpreter übernimmt die eigentliche Rechnung — die Fehlerquelle der LLM-Arithmetik wird damit eliminiert.

Idee: Rechnen auslagern

Die Arbeit „Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks“ (Chen et al., November 2022, arXiv 2211.12588, veröffentlicht in TMLR 2023) trennt bewusst zwei Fähigkeiten: Das Modell übernimmt das logische Vorgehen, der Rechner die Rechenoperationen. Als Modell diente vor allem Codex, das Python-Code erzeugt; die Ausführung übernimmt ein Interpreter.

# Beispiel: Statt im Kopf zu rechnen, erzeugt das LLM Code
loesung = sum([i * 2 for i in range(1, 11)])
print(loesung)

Ergebnisse

PoT übertrifft Chain-of-Thought auf den Mathematik-Aufgabensätzen GSM8K, AQuA, SVAMP, TabMWP und MultiArith sowie auf den Finanzdatensätzen FinQA, ConvFinQA und TAT-QA. Kombiniert mit Self-Consistency-Decoding erreichte PoT den damaligen Stand der Technik auf allen getesteten Textaufgaben-Sets.

Abgrenzung zu Chain-of-Thought

Während Chain-of-Thought die Zwischenschritte als natürliche Sprache ausgibt, schreibt PoT Code und delegiert die Berechnung. Dadurch sinken Rechenfehler, und große Zahlen oder Tabellen werden präzise verarbeitet. PoT passt zur Familie der Test-Time-Compute-Methoden und lässt sich mit Verifier-Prüfung kombinieren.

Verwandte Grundlagen: Test-Time Compute und Verifier.