ReAct Prompting (NL)

From Systems analysis Wiki
Jump to navigation Jump to search

ReAct (afkorting van Reason + Act, Nederlands: «Redeneer en Handel») — is een paradigma voor het ontwerpen van prompts (prompting) voor grote taalmodellen (LLM), waarmee deze complexe taken kunnen oplossen door verbale redeneringen (gedachten) en acties die met de externe omgeving interageren, af te wisselen[1]. De methode werd in 2022 voorgesteld door onderzoekers van Google Research en de Universiteit van Princeton en is een fundamentele aanpak geworden in de ontwikkeling van intelligente agenten.

De kernvernieuwing van ReAct ligt in de combinatie van logisch redeneren, kenmerkend voor technieken zoals Chain-of-Thought (CoT), met het uitvoeren van externe acties, zoals het zoeken naar informatie of interactie met softwareinterfaces (API). Dit stelt het model in staat zijn plan dynamisch bij te stellen, feiten te verifiëren en de beperkingen van zijn eigen, vaak verouderde of onvolledige kennis te overwinnen[2].

Achtergrond en geschiedenis

Vóór de komst van ReAct bestonden er twee belangrijke, maar afzonderlijke benaderingen voor het gebruik van LLM bij het oplossen van complexe taken:

  • Redeneerreeks (Chain-of-Thought, CoT): Het model genereert stapsgewijze logische redeneringen om een taak op te lossen, maar doet dit in een «informatieel vacuüm», uitsluitend steunend op zijn interne kennis. Dit leidt vaak tot feitelijke fouten en «hallucinaties»[1].
  • Actieplanning (Act-Only): Het model genereert een reeks acties voor interactie met de externe omgeving (bijvoorbeeld in tekstgebaseerde spellen), maar zonder expliciet plannen op hoog niveau. Dergelijke systemen gaan slecht om met fouten en kunnen hun strategie niet aanpassen bij onvoorziene omstandigheden.

ReAct werd gecreëerd om de sterke punten van beide benaderingen synergetisch te combineren. Het stelt het model in staat niet alleen te redeneren, maar ook zijn redenering te verankeren aan feiten uit de buitenwereld en zijn acties aan te passen op basis van ontvangen feedback.

Werkingsmechanisme: de cyclus «Gedachte — Actie — Observatie»

ReAct werkt binnen een iteratieve cyclus die drie sleutelcomponenten omvat. Het model genereert opeenvolgend een traject bestaande uit stappen Thought, Action en Observation.

Voorbeeldstructuur van een prompt:

Vraag: Wat is de hoofdstad van de stad waar de uitvinder die bekend staat om wisselstroom werd geboren?

Thought 1: Ik moet uitzoeken wie wisselstroom heeft uitgevonden. Vervolgens de geboorteplaats opzoeken en controleren of die stad een hoofdstad is.

Action 1: Search[uitvinder wisselstroom]

Observation 1: Wisselstroom (AC) werd ontwikkeld en gepromoot door Nikola Tesla.

Thought 2: Nu moet ik weten waar Nikola Tesla geboren is.

Action 2: Search[geboorteplaats Nikola Tesla]

Observation 2: Nikola Tesla werd geboren in het dorp Smiljan, Oostenrijkse Rijk (het huidige Kroatië).

Thought 3: Smiljan is geen hoofdstad. De vraag heeft dus geen eenduidig antwoord in deze formulering. Tesla leefde en werkte echter lange tijd in de VS. Mogelijk wordt de hoofdstad bedoeld van het land waar hij zijn belangrijkste ontdekkingen deed. Dit is een complexere vraag. Ik moet een feit vaststellen op basis van de geboorteplaats. De stad waar hij geboren is, is geen hoofdstad.

Final Answer: De uitvinder die verbonden is aan wisselstroom, Nikola Tesla, werd geboren in Smiljan (Kroatië), dat geen hoofdstad is.

Gedachte (Thought)

Het model genereert een interne redenering waarin het de taak analyseert, deze opsplitst in deeltaken, een actieplan vormt of bijstelt en de huidige toestand evalueert. Deze stap heeft geen invloed op de externe omgeving, maar dient voor interne planning.

Actie (Action)

Op basis van zijn redenering voert het model een externe actie uit door een beroep te doen op een van de beschikbare tools. Voorbeelden van acties:

  • Search [zoekopdracht] — voor het zoeken naar informatie in een kennisbank (bijvoorbeeld Wikipedia).
  • Click [element] — voor navigatie op een webpagina.
  • API_call [parameters] — voor het aanroepen van een externe API.

Observatie (Observation)

Het systeem of de externe tool voert de actie uit en geeft een resultaat terug (de observatie). Dit kan een tekstfragment, een API-antwoord of een foutmelding zijn. Het model gebruikt deze observatie om de volgende gedachte te vormen en sluit zo de feedbacklus[2].

Experimentele resultaten en effectiviteit

De auteurs van ReAct hebben de methode getest op een breed scala aan taken en de superioriteit ervan ten opzichte van CoT en Act-Only benaderingen aangetoond.

Resultaten van ReAct vergeleken met basismethoden op belangrijke benchmarks[1]
Benchmark Taak ReAct (succes/nauwkeurigheid) Chain-of-Thought (succes/nauwkeurigheid) Act-Only (succes/nauwkeurigheid)
FEVER Feitencontrole 87.6% 82.8% 70.1%
HotpotQA Vragen met meerdere stappen 31.8% 36.3% 17.0%
ALFWorld Tekstgebaseerd spel (planning) 71% 10% 13%
WebShop Webnavigatie 40% - 30.1%
  • Bij taken die feitencontrole vereisen (FEVER) overtreft ReAct CoT aanzienlijk, omdat het informatie kan verifiëren.
  • Bij taken voor interactieve planning (ALFWorld, WebShop) toont ReAct een enorm voordeel, omdat het zich kan aanpassen aan een veranderende omgeving.
  • Bij taken voor puur redeneren (HotpotQA) kan CoT vergelijkbare of zelfs betere resultaten laten zien. De hybride aanpak ReAct+CoT liet echter de beste prestaties zien met 35% op HotpotQA[1].

Kritiek en beperkingen

Ondanks zijn effectiviteit heeft ReAct een aantal beperkingen en kwetsbaarheden.

  • «Broosheid» (Brittleness): Later onderzoek toonde aan dat het succes van ReAct mogelijk niet zozeer samenhangt met een echte synergie tussen redeneren en handelen, maar met syntactische gelijkenis tussen de voorbeelden in de prompt en de huidige taak. Het model kan het patroon `Thought-Action-Observation` volgen zonder de semantiek van de redeneringen volledig te begrijpen[3].
  • Rekenkundige kosten: Elke ReAct-cyclus vereist minimaal één aanroep van het LLM en één aanroep van een externe tool, waardoor het traag en kostbaar is vergeleken met standaard prompting.
  • Afhankelijkheid van tools: De effectiviteit van de agent hangt rechtstreeks af van de kwaliteit en betrouwbaarheid van de beschikbare tools. Een incorrect of ruis-bevattend antwoord van een API kan de redenering van het model op een verkeerd spoor zetten.

Belang en verdere ontwikkeling

ReAct werd een belangrijke mijlpaal in de ontwikkeling van AI en markeerde de overgang van generatieve systemen naar agentsystemen. Het legde de conceptuele en praktische basis voor de meeste moderne frameworks voor het bouwen van agenten, zoals:

  • LangChain
  • LlamaIndex
  • AutoGen

De ideeën van ReAct dienden als vertrekpunt voor complexere redeneerarchitecturen, zoals Reflexion (voegt een zelfreflectiecyclus toe na mislukkingen) en Tree of Thoughts (ToT) (verkent meerdere redeneerpaden parallel).

Verwijzingen

  • Officiële projectpagina van ReAct
  • Beschrijving van ReAct in de Learn Prompting-gids
  • Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.

Literatuur

  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Shinn, N. et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366.
  • Verma, V. et al. (2024). On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models. arXiv:2405.13966.
  • Yao, S. et al. (2022). WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents. arXiv:2207.01206.
  • Shridhar, M. et al. (2020). ALFWorld: Aligning Text and Embodied Environments for Interactive Learning. arXiv:2010.03768.
  • Qin, L. et al. (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Collaboration. arXiv:2308.08155.
  • Thorne, J. et al. (2018). FEVER: A Large-Scale Dataset for Fact Extraction and Verification. arXiv:1803.05355.
  • Yang, Z. et al. (2018). HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering. arXiv:1809.09600.

Noten

  1. 1.0 1.1 1.2 1.3 Yao, S., Zhao, J., Yu, D., et al. (2022). «ReAct: Synergizing Reasoning and Acting in Language Models». arXiv preprint arXiv:2210.03629. [1]
  2. 2.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [2]
  3. Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [3]