TLDR
Big Idea:
- Methode, die Reasoning (Denken) und Acting (Handeln) in LLMs kombiniert
- Modell kann abwechselnd nachdenken und handeln, um Aufgaben besser zu lösen
- Gedankengänge helfen bei der Planung von Aktionen, während Aktionen neue Informationen für das Reasoning liefern
- ReAct ist primär eine Prompting-Methode, die existierende Modelle nutzt - kein neu trainiertes Modell (Modell lernt nicht über Prompts hinweg)
Ergebnisse:
- Bessere Performance als reine Reasoning- oder Acting-Ansätze und Change of thoughts (CoT) auf verschiedenen Aufgaben
- Skaliert sehr gut mit Finetuning (Suggeriert dass noch bessere Ergebnisse mit mehr Trainingsdaten möglich wären, was effizienteres arbeiten zulässt (kleine fingetunte Modell vs. sehr große))
- Kleinere, finegetunte Modelle können größere, nur gepromptete Modelle übertreffen)
- Auf HotpotQA (Question Answering) und Fever (fact verification): ReAct reduziert Halluzinationen durch externe Faktenprüfung
- Auf ALFWorld und WebShop: Deutlich bessere Erfolgsraten (+34% bzw. +10%)
- Mehr Interpretierbarkeit durch nachvollziehbare Gedankengänge
- Funktioniert bereits mit wenigen Trainingsbeispielen (1-2 Beispiele)
Relevanz:
- Verbindet erstmals systematisch Reasoning und Acting in Language Models
- Ermöglicht robusteres Problemlösen durch Kombination von internem Wissen und externer Informationsbeschaffung
- Macht KI-Entscheidungen nachvollziehbarer
- Zeigt Potenzial für effizienteres Lernen mit weniger Trainingsdaten
Verwandte Arbeiten:
- Erweitert Chain-of-Thought Prompting (reasoning) um Aktionen zur Faktenprüfung
- Verbessert reine Action-Generation durch strategisches Reasoning
- Geht über “Inner Monologue” hinaus durch flexibleres Reasoning
Offene Fragen:
- Wie skaliert der Ansatz auf komplexere Aufgaben?
- Wie kann man die Methode mit Reinforcement Learning kombinieren?
- Wie lässt sich die Effizienz bei der Informationsbeschaffung verbessern?
- Wie kann man mehr menschliches Feedback einbinden?
- Wie lässt sich die Methode auf andere Modalitäten übertragen?
Source:
Weitere Interessante Links:
Beispiel ReAct Prompt vs. normal Prompt:
Du bist ein hilfreicher Assistent, der Buchempfehlungen gibt. Bei jeder Interaktion sollst du:
1. Explizit deine Gedanken mit "Thought:" kennzeichnen
2. Deine Aktionen mit "Action:" kennzeichnen
3. Die Beobachtungen/Antworten des Nutzers mit "Observation:" aufnehmen
Hier ein Beispiel einer Interaktion:
User: Ich suche ein neues Buch.
Thought: Ich muss erst die grundlegenden Präferenzen verstehen - Genre, bisherige Lieblingsbücher und Leseerfahrung.
Action: Frage nach Lieblingsgenres und einem kürzlich gelesenen Buch, das gefallen hat.
Observation: User sagt "Ich mag Fantasy und Science Fiction. Hab gerade Project Hail Mary gelesen und fand es super."
Thought: Der User mag komplexe Sci-Fi. Project Hail Mary hat starken Fokus auf wissenschaftliche Details und First Contact. Ich sollte ähnliche Bücher vorschlagen.
Action: Empfehle "Children of Time" von Adrian Tchaikovsky, weil es ähnliche Elemente enthält - harte Sci-Fi, First Contact, wissenschaftliche Details.
Observation: User fragt nach der Länge des Buches.
Thought: Die Länge könnte ein wichtiger Faktor sein. Children of Time ist mit 600+ Seiten recht lang.
Action: Informiere über Länge und biete Alternative an: "Rendezvous with Rama" von Arthur C. Clarke, die kürzer aber thematisch ähnlich ist.
Bitte interagiere in diesem Format, indem du dein Denken und Handeln transparent machst.
Du bist ein hilfreicher Assistent, der Buchempfehlungen gibt.
Stelle dem Nutzer Fragen über seine Präferenzen und empfehle dann passende Bücher.
Begründe deine Empfehlungen.
My Notes
HotpotQA & Fever:
- Manuell erstellte Prompts
- 6 Beispiele für HotpotQA, 3 für Fever
- Jedes Beispiel enthält:
- Eine Frage/Behauptung
- Gedankengänge (thoughts)
- Aktionen (z.B. Wikipedia-API aufrufen)
- Beobachtungen
- Antwort
ALFWorld:
- Manuell annotierte Prompts aus dem Trainingssatz
- 3 Beispiel-Trajektorien pro Aufgabentyp (Beispiele im Prompt, die besser verdeutlich wsie vorgegangen werden soll)
- Enthält:
- Sparse thoughts für Zielzerlegung
- Aktionen im Spiel
- Umgebungsbeobachtungen
- 6 verschiedene Prompts pro Aufgabentyp durch Permutation von 2 aus 3 annotierten Trajektorien
WebShop:
- Einfachere Prompts
- Ein-Shot-Prompting (nur 1 Beispiel)
- Enthält:
- Suchaktionen
- Produktauswahl
- Optionsauswahl
- Kaufentscheidungen
- Mit ReAct: zusätzliche Gedankengänge zur Exploration und Bewertung
Gemeinsame Merkmale:
- Alle Prompts wurden manuell erstellt/annotiert
- Keine automatische Prompt-Generierung
- Wenige Beispiele (1-6) pro Prompt
- ReAct-Prompts enthalten immer sowohl Gedanken als auch Aktionen
- Control-Prompts (ohne ReAct) enthalten nur einen der beiden Aspekte
However, this “chain-of-thought” reasoning is a static black box, in that the model uses its own internal representations to generate thoughts and is not grounded in the external world, which limits its ability to reason reactively or update its knowledge. This can lead to issues like fact hallucination and error propagation over the reasoning process (Figure 1 (1b)).
- Wenn das Modell einen falschen Fakt halluziniert, basiert der nächste Gedankenschritt auf diesem falschen Fakt und führt zu einer Kette von Fehlschlüssen (wie jede gute Verschwörungstheorie)
Bisherige Ansätze für “Acting”:
- Nutzen vortrainierter Sprachmodelle für Planung und Aktionen
- Wandeln multimodale Beobachtungen (z.B. Bilder, Sensordaten) in Text um
- Generieren spezifische Aktionen/Pläne aus diesem Text
- Nutzen einen Controller zur Ausführung der Aktionen
Hauptlimitationen dieser Ansätze:
- Kein abstraktes Reasoning über hochrangige Ziele
- Kein “Arbeitsgedächtnis” zur Unterstützung der Aktionen
- Beschränkt auf einfache Aufgaben wie Block-Interaktionen
Die Forschungslücken:
- Fehlende Untersuchungen zur synergetischen Kombination von:
- Reasoning (abstraktes Denken)
- Acting (konkrete Handlungen)
- Offene Fragen:
- Wie kann man Reasoning und Acting effektiv kombinieren?
- Bringt diese Kombination systematische Vorteile?
- Funktioniert das auch für allgemeine Aufgaben?
Warum ist das wichtig?
- Bisherige Systeme sind entweder gut im Denken ODER im Handeln
- Eine Kombination könnte beide Stärken vereinen
- Ermöglicht komplexere und allgemeinere Aufgabenlösung
- Ähnlicher der menschlichen Problemlösung (die auch Denken und Handeln verbindet)
“ReAct scales fabulously with finetuning” Ohne Finetuning:
- ReAct performt bei kleinen Modellen (PaLM-8B/62B) am schlechtesten von allen Methoden
- Grund: Es ist schwierig, sowohl Reasoning als auch Acting nur durch Prompting zu lernen
Mit Finetuning (3000 Beispiele):
- ReAct wird zur besten Methode
- PaLM-8B mit ReAct + Finetuning übertrifft alle PaLM-62B Prompting Methoden
- PaLM-62B mit ReAct + Finetuning übertrifft alle PaLM-540B Prompting Methoden
Warum ist das bedeutsam?
- Zeigt dass ReAct’s Schwächen bei kleinen Modellen durch Finetuning ausgeglichen werden können
- Deutet darauf hin, dass ReAct eine effiziente Architektur für Lernen ist
- Suggeriert dass noch bessere Ergebnisse mit mehr Trainingsdaten möglich wären
- Kleinere, finegetunte Modelle können größere, nur gepromptete Modelle übertreffen