ReAct: Synergie tussen redeneren en handelen in taalmodellen
ReAct (Yao et al., ICLR 2023) is het artikel achter de redeneer-en-handel-loop die de meeste moderne financiële agents tegenwoordig als standaardstructuur gebruiken. Ik heb het voor me uitgeschoven omdat het voelt als infrastructuur — het soort ding dat iedereen al weet — maar na tijd te hebben besteed aan autonoom terugschrijven naar het grootboek, wilde ik de foutmodi bij de bron begrijpen, en niet via stroomafwaartse folklore.
Het artikel
Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan en Yuan Cao stellen een bedrieglijk eenvoudig idee voor: in plaats van een taalmodel te vragen om óf te redeneren (chain-of-thought), óf te handelen (tools aanroepen), laat je het beide doen in een vervlochten stroom. Elke stap in het traject is ofwel een Thought (vrije vorm redenering over wat nu te doen) of een Act/Obs-paar (een actie en de bijbehorende observatie uit de omgeving). De claim is dat deze vervlechting synergetisch is — redeneren bepaalt welke acties moeten worden ondernomen, en observaties vormen de redenering opnieuw.
Ze testen dit op vier benchmarks: HotpotQA en Fever (kennisintensieve QA en feitverificatie, met een Wikipedia-zoek-API als actieruimte), en ALFWorld en WebShop (belichaamde en gesimuleerde e-commerce-omgevingen die meerstaps besluitvorming vereisen). Alle experimenten maken gebruik van PaLM-540B en GPT-3 (text-davinci-002) onder few-shot prompting met slechts één of twee in-context voorbeelden.
Belangrijke ideeën
- Op ALFWorld presteert ReAct 34 absolute procentpunten beter dan de baselines voor imitatie-leren en reinforcement learning wat betreft het slagingspercentage van taken; op WebShop is de winst 10 absolute procentpunten.
- Op Fever (feitverificatie) presteert ReAct beter dan chain-of-thought. Op HotpotQA (multi-hop QA) verslaat CoT ReAct juist — het artikel erkent dit direct in plaats van het weg te moffelen.
- De foutgevallen vallen uiteen in twee types: redeneerfouten (het model schat verkeerd in welke informatie het heeft) en zoekfouten (een niet-informatief Wikipedia-resultaat ontspoort de daaropvolgende redeneerketen). Deze zijn kwalitatief verschillend en vereisen verschillende oplossingen.
- Het formaat zelf is interpreteerbaar: een mens kan het Thought-spoor lezen, de fout vinden en deze corrigeren door een enkele regel aan te passen. Dit wordt expliciet benoemd als een veiligheidseigenschap.
- Door kleinere modellen fijn te stellen (fine-tuning) op ReAct-trajecten kunnen ze beter presteren dan grotere modellen met prompts — wat suggereert dat het vervlochten formaat aanleerbaar is en niet slechts een prompting-truc.
Wat standhoudt — en wat niet
De resultaten op het gebied van interactieve besluitvorming (ALFWorld, WebShop) zijn het sterkste deel van het artikel. Het gat met puur imitatie-leren is groot genoeg om het niet toe te schrijven aan geluk met hyperparameters. De redeneersporen zijn oprecht leesbaar en de foutanalyse die zoekfouten onderscheidt van redeneerfouten is eerlijk en nuttig.
De resultaten voor kennisintensieve QA zijn zwakker en dat weet de auteur ook. Dat ReAct verliest van CoT op HotpotQA is een belangrijk datapunt: wanneer het antwoord kan worden bereikt door interne modelkennis te koppelen, werkt de frictie van tool-aanroepen juist nadelig. Het model haalt soms een Wikipedia-passage op die zijdelings gerelateerd is, verankert zich daarop en produceert vervolgens slechtere redeneringen dan wanneer het alleen zijn eigen kennis had gebruikt. Het artikel noemt dit "door zoeken veroorzaakte afleiding" (search-induced distraction) en het wordt niet opgelost door de architectuur — het is een probleem met de kwaliteit van het ophalen van informatie (retrieval), vermomd als een agent-probleem.
Er is ook een fundamenteel evaluatieprobleem dat het artikel overneemt van de benchmarks zelf: zowel ALFWorld als WebShop hebben relatief beperkte actieruimtes vergeleken met wat een agent in de echte wereld nodig heeft. De verbetering van 34% op ALFWorld is indrukwekkend binnen het spel, maar ALFWorld is een gesimuleerde huishoudelijke omgeving met een kleine, vaste woordenschat aan acties. De extrapolatie van daaruit naar bijvoorbeeld een Beancount-grootboek met een open-ended transactieschema is een stap die het artikel niet rechtvaardigt.
De few-shot opzet is zowel een kracht als een zwakte. Eén of twee in-context voorbeelden is indrukwekkend, maar het betekent ook dat de resultaten zeer gevoelig zijn voor welke voorbeelden worden gekozen. Ik heb in het artikel geen ablaties gevonden over de selectie van voorbeelden, wat nuttig zou zijn geweest.
Waarom dit belangrijk is voor financiële AI
Het veiligheidsprobleem bij het terugschrijven voor autonome Beancount-agents is precies het foutregime dat ReAct blootlegt. Als een agent redeneert over een besluit voor de categorisatie van een transactie en een dubbelzinnige grootboekboeking ophaalt — een boeking die zou kunnen passen bij zowel Expenses:Food als Expenses:Entertainment — zal het ReAct-patroon de daaropvolgende redenering verankeren op de interpretatie die de eerste opgehaalde boeking suggereert. Dit is het financiële equivalent van "door zoeken veroorzaakte afleiding", en het verdwijnt niet door zorgvuldiger te prompten.
Het argument voor interpreteerbaarheid is hier belangrijker dan het artikel waarschijnlijk bedoelde. In de boekhouding heeft een auditor niet alleen het juiste antwoord nodig — ze hebben een traceerbare redeneerketen nodig die ze kunnen goedkeuren. De Thought-sporen van ReAct geven je die keten, en de observatie dat een mens een traject kan corrigeren door één Thought aan te passen, is direct toepasbaar op een human-in-the-loop beoordelingsstap voordat een journaalpost definitief in het grootboek wordt opgenomen.
De foutmodus waar ik me echter het meeste zorgen over maak, zijn de opeenstapelende fouten bij langetermijntaken. Een reconciliatietaak die vijftig transacties raakt, heeft veel meer mogelijkheden voor een Thought om mis te gaan dan een enkelvoudige Wikipedia-opzoekactie. ReAct biedt geen ingebouwd mechanisme voor de agent om te detecteren dat hij is afgedwaald — hij gaat gewoon door. Reflexion (Shinn et al., arXiv:2303.11366) pakt dit aan door een verbale zelfevaluatiestap toe te voegen, en ReAct + Reflexion lost 130 van de 134 ALFWorld-taken op, vergeleken met ReAct alleen. Dat verschil laat zien hoeveel waarde er zit in het toevoegen van een herstelloop bovenop de basisstructuur van ReAct.
Wat nu te lezen
- Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023, arXiv:2303.11366) — voegt een zelfreflectiestap toe waarmee een ReAct-agent zijn strategie over verschillende afleveringen kan herzien; de meest directe uitbreiding voor grootboek-agents die moeten herstellen van fouten halverwege een traject.
- FireAct: Toward Language Agent Fine-tuning (Chen et al., 2023, arXiv:2310.05915) — stelt modellen specifiek fijn op ReAct-trajecten over meerdere tools; relevant voor het trainen van een Beancount-specifieke agent op echte tool-aanroepen in het grootboek.
- Tree of Thoughts: Deliberate Problem Solving with Large Language Models (Yao et al., 2023, arXiv:2305.10601) — verkent het zoeken over redeneerpaden in plaats van zich vast te leggen op een enkele keten; van belang voor gevallen waarin het eerste ReAct-traject onjuist is en systematisch terugdraaien (backtracking) vereist is.
