🚀 Master Prompt Engineering and building AI Agents in our NEW courses! Use PROMPTING20 for 20% off ➜ Enroll now
Reflexion

Reflexion

Reflexion ist ein Framework zur VerstĂ€rkung sprachbasierter Agenten durch linguistisches Feedback. Laut Shinn et al. (2023) (opens in a new tab), "stellt Reflexion ein neues Paradigma fĂŒr ‚verbale‘ VerstĂ€rkung dar, das ein Regelwerk als die GedĂ€chtniskodierung eines Agenten zusammen mit einer Auswahl von LLM-Parametern parametrisiert."

Auf hoher Ebene konvertiert Reflexion Feedback (entweder in Form von freier Sprache oder als Skalar) aus der Umgebung in linguistisches Feedback, auch bekannt als Selbstreflexion, welches als Kontext fĂŒr einen LLM-Agenten im nĂ€chsten Durchgang bereitgestellt wird. Dies hilft dem Agenten, schnell und effektiv aus vorherigen Fehlern zu lernen und die Leistung bei vielen fortgeschrittenen Aufgaben zu verbessern.

"Reflexion Framework"

Wie in der obigen Abbildung gezeigt, besteht Reflexion aus drei unterschiedlichen Modellen:

  • Ein Akteur: Generiert Text und Handlungen basierend auf den Beobachtungen des Zustands. Der Akteur ergreift eine Handlung in einer Umgebung und erhĂ€lt eine Beobachtung, die zu einer Ausrichtung fĂŒhrt. Chain-of-Thought (CoT) (opens in a new tab) und ReAct (opens in a new tab) werden als Akteursmodelle verwendet. Eine Speicherkomponente wird ebenfalls hinzugefĂŒgt, um zusĂ€tzlichen Kontext fĂŒr den Agenten bereitzustellen.
  • Ein Bewerter: Bewerten die vom Akteur produzierten Ausgaben. Konkret nimmt es als Eingabe eine generierte Ausrichtung (auch als Kurzzeitspeicher bezeichnet) und gibt eine Belohnungsbewertung aus. Verschiedene Belohnungsfunktionen werden je nach Aufgabe verwendet (LLMs und regelbasierte Heuristiken werden fĂŒr Entscheidungsaufgaben verwendet).
  • Selbstreflexion: Generiert verbale VerstĂ€rkungsreize, um dem Akteur bei der Selbstverbesserung zu helfen. Diese Rolle wird von einem LLM erreicht und bietet wertvolles Feedback fĂŒr zukĂŒnftige Versuche. Um spezifisches und relevantes Feedback zu generieren, welches ebenfalls im Speicher gespeichert wird, nutzt das Selbstreflexionsmodell das Belohnungssignal, die aktuelle Trajektorie und seinen dauerhaften Speicher. Diese Erfahrungen (im Langzeitspeicher gespeichert) werden vom Agenten genutzt, um die Entscheidungsfindung schnell zu verbessern.

Zusammengefasst sind die SchlĂŒsselschritte des Reflexionsprozesses a) eine Aufgabe definieren, b) eine Trajektorie generieren, c) bewerten, d) reflektieren und e) die nĂ€chste Ausrichtung generieren. Die untenstehende Abbildung zeigt Beispiele dafĂŒr, wie ein Reflexionsagent lernen kann, sein Verhalten iterativ zu optimieren, um verschiedene Aufgaben wie Entscheidungsfindung, Programmieren und Argumentation zu lösen. Reflexion erweitert das ReAct-Framework durch die EinfĂŒhrung von Selbstevaluation, Selbstreflexion und Speicherkomponenten.

"Reflexion Examples"

Ergebnisse

Experimentelle Ergebnisse zeigen, dass Reflexionsagenten die Leistung bei Entscheidungsfindungsaufgaben in AlfWorld, Denkfragen in HotPotQA und Python-Programmieraufgaben in HumanEval signifikant verbessern.

Bei der Bewertung von sequenziellen Entscheidungsaufgaben (AlfWorld) ĂŒbertrifft ReAct + Reflexion ReAct deutlich, indem es 130 von 134 Aufgaben mithilfe von Selbstevaluierungstechniken von Heuristik und GPT fĂŒr binĂ€re Klassifizierung abschließt.

"Reflexion ALFWorld Results"

Reflexion ĂŒbertrifft alle BasisansĂ€tze ĂŒber mehrere Lernschritte hinweg deutlich. Bei Aufgaben, die nur Argumentation betreffen, und bei HinzufĂŒgung eines episodischen Speichers, bestehend aus der neuesten Trajektorie, ĂŒbertrifft Reflexion + CoT CoT allein und CoT mit episodischem Speicher jeweils.

"Reflexion ALFWorld Results"

Wie in der untenstehenden Tabelle zusammengefasst, ĂŒbertrifft Reflexion im Allgemeinen die bisherigen SpitzenansĂ€tze beim Schreiben von Python- und Rust-Code auf MBPP, HumanEval und Leetcode Hard.

"Reflexion ALFWorld Results"

Wann sollte Reflexion verwendet werden?

Reflexion eignet sich am besten fĂŒr Folgendes:

  1. Ein Agent muss aus Versuch und Irrtum lernen: Reflexion ist darauf ausgelegt, Agenten dabei zu helfen, ihre Leistung durch Reflexion ĂŒber vergangene Fehler zu verbessern und dieses Wissen in zukĂŒnftige Entscheidungen einfließen zu lassen. Dies macht es besonders geeignet fĂŒr Aufgaben, bei denen der Agent durch Versuch und Irrtum lernen muss, wie z.B. Entscheidungsfindung, Argumentation und Programmieren.

  2. Traditionelle VerstÀrkungslernmethoden sind unpraktisch: Traditionelle VerstÀrkungslernmethoden (RL) erfordern oft umfangreiche Trainingsdaten und kostspielige Feinabstimmung des Modells. Reflexion bietet eine leichtgewichtige Alternative, die keine Feinabstimmung des zugrundeliegenden Sprachmodells erfordert, was es hinsichtlich Daten und Rechenressourcen effizienter macht.

  3. Nuanciertes Feedback ist erforderlich: Reflexion nutzt verbales Feedback, das nuancierter und spezifischer als skalare Belohnungen in traditionellen RL-Methoden sein kann. Dies ermöglicht es dem Agenten, seine Fehler besser zu verstehen und gezieltere Verbesserungen in nachfolgenden Versuchen vorzunehmen.

  4. Interpretierbarkeit und explizites GedÀchtnis sind wichtig: Reflexion bietet eine interpretierbarere und explizitere Form des episodischen GedÀchtnisses im Vergleich zu traditionellen RL-Methoden. Die Selbstreflexionen des Agenten werden in seinem Speicher gespeichert, was eine einfachere Analyse und VerstÀndnis seines Lernprozesses ermöglicht.

Reflexion ist effektiv bei folgenden Aufgaben:

  • Sequentielle Entscheidungsfindung: Reflexionsagenten verbessern ihre Leistung bei AlfWorld-Aufgaben, die das Navigieren durch verschiedene Umgebungen und das Abschließen von Mehrschrittaufgaben beinhalten.
  • Argumentation: Reflexion steigerte die Leistung von Agenten bei HotPotQA, einem Frage-Antwort-Datensatz, der Argumentation ĂŒber mehrere Dokumente erfordert.
  • Programmierung: Reflexionsagenten schreiben besseren Code auf Benchmarks wie HumanEval und MBPP und erreichen in einigen FĂ€llen Spitzenleistungen.

Hier sind einige EinschrÀnkungen von Reflexion:

  • AbhĂ€ngigkeit von den SelbstevaluierungsfĂ€higkeiten: Reflexion beruht auf der FĂ€higkeit des Agenten, seine Leistung genau zu bewerten und nĂŒtzliche Selbstreflexionen zu generieren. Dies kann besonders bei komplexen Aufgaben herausfordernd sein, aber es wird erwartet, dass Reflexion im Laufe der Zeit besser wird, da die Modelle in ihren FĂ€higkeiten weiter verbessert werden.
  • LangzeitspeicherbeschrĂ€nkungen: Reflexion verwendet ein Schiebefenster mit maximaler KapazitĂ€t, aber fĂŒr komplexere Aufgaben könnte es vorteilhaft sein, fortgeschrittene Strukturen wie Vektoreinbettungen oder SQL-Datenbanken zu verwenden.
  • EinschrĂ€nkungen der Codegenerierung: Es gibt EinschrĂ€nkungen bei der testgetriebenen Entwicklung bei der Spezifizierung genauer Eingabe-Ausgabe-Zuordnungen (z.B. nicht-deterministische Generatorfunktionen und von der Hardware beeinflusste Funktionsausgaben).

Quellen der Abbildungen: Reflexion: Language Agents with Verbal Reinforcement Learning (opens in a new tab)

Referenzen