ReAct Prompting (SV)
ReAct (förkortning av Reason + Act, svenska: «Resonera och Agera») — är ett paradigm för utformning av frågor (prompting) för stora språkmodeller (LLM), som gör det möjligt för dem att lösa komplexa uppgifter genom att växla mellan verbala resonemang (tankar) och handlingar som interagerar med den externa miljön[1]. Metoden föreslogs år 2022 av forskare från Google Research och Princeton University och har blivit ett grundläggande tillvägagångssätt inom utvecklingen av intelligenta agenter.
ReActs viktigaste innovation är kombinationen av logiska resonemang, som är kännetecknande för tekniker som Chain-of-Thought (CoT), med utförandet av externa handlingar, såsom informationssökning eller interaktion med programvarugränssnitt (API). Detta gör det möjligt för modellen att dynamiskt justera sin plan, verifiera fakta och övervinna begränsningarna i sina egna, ofta föråldrade eller ofullständiga kunskaper[2].
Förutsättningar och historia
Innan ReAct uppstod fanns det två huvudsakliga, men åtskilda tillvägagångssätt för att använda LLM för att lösa komplexa uppgifter:
- Tankekedjor (Chain-of-Thought, CoT): Modellen genererar stegvisa logiska resonemang för att lösa en uppgift, men gör detta i ett «informationsvakuum» och förlitar sig uteslutande på sina interna kunskaper. Detta leder ofta till faktafel och «hallucinationer»[1].
- Handlingsplanering (Act-Only): Modellen genererar en sekvens av handlingar för att interagera med den externa miljön (t.ex. i textspel), men utan explicit högnivåplanering. Sådana system hanterar fel dåligt och kan inte anpassa sin strategi när de möter oförutsedda omständigheter.
ReAct skapades för att synergistiskt kombinera styrkorna hos båda tillvägagångssätten. Det gör det möjligt för modellen att inte bara resonera, utan också att förankra sina resonemang i fakta från omvärlden, samt att anpassa sina handlingar utifrån erhållen återkoppling.
Arbetsmekanism: cykeln «Tanke — Handling — Observation»
ReAct fungerar inom ramen för en iterativ cykel som innehåller tre nyckelkomponenter. Modellen genererar sekventiellt en bana bestående av stegen Thought, Action och Observation.
Exempel på promptstruktur:
Fråga: Vad är huvudstaden i den stad där uppfinnaren känd för växelström föddes?
Thought 1:' Jag behöver ta reda på vem som uppfann växelström. Sedan hitta hans födelseort och kontrollera om denna stad är en huvudstad.
Action 1:' Search[uppfinnare av växelström]
Observation 1:' Växelström (AC) utvecklades och befordrades av Nikola Tesla.
Thought 2:' Nu behöver jag ta reda på var Nikola Tesla föddes.
Action 2:' Search[Nikola Teslas födelseort]
Observation 2:' Nikola Tesla föddes i byn Smiljan, Österrikiska kejsardömet (nuvarande Kroatien).
Thought 3:' Smiljan är inte en huvudstad. Frågan har därmed inget entydigt svar i denna formulering. Tesla levde och arbetade dock länge i USA. Kanske avses huvudstaden i det land där han gjorde sina viktigaste upptäckter. Detta är en mer komplex fråga. Jag bör konstatera fakta utifrån födelseorten. Staden han föddes i är inte en huvudstad.
Final Answer:' Uppfinnaren förknippad med växelström, Nikola Tesla, föddes i Smiljan (Kroatien), vilket inte är en huvudstad.
Tanke (Thought)
Modellen genererar ett internt resonemang där den analyserar uppgiften, dekomponerar den i deluppgifter, formar eller justerar en handlingsplan och utvärderar det aktuella tillståndet. Detta steg påverkar inte den externa miljön men tjänar till intern planering.
Handling (Action)
Utifrån sitt resonemang utför modellen en extern handling genom att använda ett av de tillgängliga verktygen. Exempel på handlingar:
- Search [fråga] — för att söka information i en kunskapsbas (t.ex. Wikipedia).
- Click [element] — för navigering på en webbsida.
- API_call [parametrar] — för att anropa ett externt API.
Observation (Observation)
Systemet eller det externa verktyget utför handlingen och returnerar ett resultat (observation). Detta kan vara ett textstycke, ett API-svar eller ett felmeddelande. Modellen använder denna observation för att forma nästa tanke och sluter återkopplingscykeln[2].
Experimentella resultat och effektivitet
ReActs upphovsmän testade metoden på ett brett spektrum av uppgifter och visade dess överlägsenhet över CoT- och Act-Only-tillvägagångssätten.
| Benchmark | Uppgift | ReAct (framgång/noggrannhet) | Chain-of-Thought (framgång/noggrannhet) | Act-Only (framgång/noggrannhet) |
|---|---|---|---|---|
| FEVER | Faktakontroll | 87.6% | 82.8% | 70.1% |
| HotpotQA | Frågor med flera övergångar | 31.8% | 36.3% | 17.0% |
| ALFWorld | Textspel (planering) | 71% | 10% | 13% |
| WebShop | Webbnavigering | 40% | - | 30.1% |
- I uppgifter som kräver faktakontroll (FEVER) överträffar ReAct CoT avsevärt, eftersom det kan verifiera information.
- I uppgifter om interaktiv planering (ALFWorld, WebShop) uppvisar ReAct en enorm fördel, eftersom det kan anpassa sig till en föränderlig miljö.
- I uppgifter om rent resonemang (HotpotQA) kan CoT visa jämförbara eller till och med bättre resultat. Det hybrida tillvägagångssättet ReAct+CoT visade dock den bästa prestandan och nådde 35% i HotpotQA[1].
Kritik och begränsningar
Trots sin effektivitet har ReAct ett antal begränsningar och sårbarheter.
- «Skörhet» (Brittleness): Senare forskning har visat att ReActs framgång kan vara kopplad inte så mycket till en verklig synergi mellan resonemang och handling, utan snarare till syntaktisk likhet mellan exemplen i prompten och den aktuella uppgiften. Modellen kan följa mönstret `Thought-Action-Observation` utan att fullt ut förstå semantiken i resonemangen[3].
- Beräkningskostnader: Varje ReAct-cykel kräver minst ett LLM-anrop och ett anrop till ett externt verktyg, vilket gör det långsamt och kostsamt jämfört med standard-prompting.
- Verktygsberoendet: Agentens effektivitet beror direkt på kvaliteten och tillförlitligheten hos de tillgängliga verktygen. Ett felaktigt eller brusigt API-svar kan leda modellens resonemang på villovägar.
Betydelse och fortsatt utveckling
ReAct blev en viktig milstolpe i AI:s utveckling och markerade övergången från generativa system till agentbaserade system. Det lade den konceptuella och praktiska grunden för de flesta moderna ramverk för att skapa agenter, såsom:
- LangChain
- LlamaIndex
- AutoGen
ReActs idéer tjänade som utgångspunkt för mer avancerade resonemangarkitekturer, såsom Reflexion (lägger till en cykel av självreflektion efter misslyckanden) och Tree of Thoughts (ToT) (utforskar flera resonemansvägar parallellt).
Externa länkar
- Officiell projektsida för ReAct
- Beskrivning av ReAct i guiden Learn Prompting
- Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.
Litteratur
- 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.
Noter
- ↑ 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.0 2.1 «ReAct: Synergizing Reasoning and Acting in Language Models». Google Research Blog. [2]
- ↑ Verma, V., et al. (2024). «On the Brittle Foundations of ReAct Prompting for Agentic Large Language Models». arXiv preprint arXiv:2405.13966. [3]