ReAct Prompting (HU)
ReAct (a Reason + Act rövidítése, magyarul: „Gondolkodj és Cselekedj") — egy prompt-tervezési paradigma nagy nyelvi modellek (LLM) számára, amely lehetővé teszi számukra, hogy összetett feladatokat oldjanak meg verbális érvelések (gondolatok) és a külső környezettel kölcsönhatásba lépő cselekvések váltakozásával[1]. A módszert 2022-ben javasolta a Google Research és a Princetoni Egyetem kutatócsoportja, és az intelligens ágensek fejlesztésének alapvető megközelítésévé vált.
A ReAct legfontosabb újítása az olyan technikákra jellemző logikai érvelés — mint a Chain-of-Thought (CoT) — és a külső cselekvések végrehajtásának összekapcsolása, mint például az információkeresés vagy a programozási interfészekkel (API) való interakció. Ez lehetővé teszi a modell számára, hogy dinamikusan korrigálja tervét, ellenőrizze a tényeket, és leküzdje saját, gyakran elavult vagy hiányos tudásának korlátait[2].
Előzmények és a létrehozás története
A ReAct megjelenése előtt két fő, de elkülönült megközelítés létezett az LLM-ek összetett feladatmegoldásra való alkalmazásában:
- Gondolatlánc (Chain-of-Thought, CoT): A modell lépésről lépésre haladó logikai érvelést generál a feladat megoldásához, de ezt „információs vákuumban" teszi, kizárólag belső tudására támaszkodva. Ez gyakran tárgyi hibákhoz és „hallucinációkhoz" vezet[1].
- Cselekvéstervezés (Act-Only): A modell cselekvések sorozatát generálja a külső környezettel való interakcióhoz (például szöveges játékokban), de explicit magas szintű tervezés nélkül. Az ilyen rendszerek rosszul kezelik a hibákat, és nem tudják stratégiájukat adaptálni váratlan körülmények felmerülésekor.
A ReAct-ot azért hozták létre, hogy szinergiával ötvözze mindkét megközelítés erősségeit. Lehetővé teszi a modell számára, hogy ne csak érveljen, hanem érvelését a külvilág tényeire is alapozza, és visszajelzések alapján cselekvéseit is adaptálja.
A működési mechanizmus: a „Gondolat — Cselekvés — Megfigyelés" ciklus
A ReAct egy iteratív ciklus keretein belül működik, amely három kulcskomponensből áll. A modell szekvenciálisan generál egy trajektóriát, amely Thought, Action és Observation lépésekből áll.
A prompt szerkezetének példája:
Kérdés: Melyik város fővárosa annak a feltalálónak a szülővárosa, aki a váltakozó áramról ismert?
Thought 1: Meg kell tudnom, ki találta fel a váltakozó áramot. Ezután meg kell találnom a születési helyét, és ellenőrizni, hogy ez a város főváros-e.
Action 1: Search[a váltakozó áram feltalálója]
Observation 1: A váltakozó áramot (AC) Nikola Tesla fejlesztette ki és népszerűsítette.
Thought 2: Most meg kell tudnom, hol született Nikola Tesla.
Action 2: Search[Nikola Tesla születési helye]
Observation 2: Nikola Tesla Smilján faluban született, az Osztrák Birodalomban (a mai Horvátország területén).
Thought 3: Smilján nem főváros. Így a kérdésnek ebben a megfogalmazásban nincs egyértelmű válasza. Tesla ugyanakkor hosszú ideig élt és dolgozott az USA-ban. Lehetséges, hogy annak az országnak a fővárosára gondolnak, ahol főbb felfedezéseit tette. Ez összetettebb kérdés. Az érintett tények alapján meg kell állapítanom: születési városa nem főváros.
Final Answer: A váltakozó áramhoz köthető feltaláló, Nikola Tesla, Smiljánban (Horvátország) született, amely nem főváros.
Gondolat (Thought)
A modell belső érvelést generál, amelyben elemzi a feladatot, részfeladatokra bontja, cselekvési tervet alkot vagy korrigál, és értékeli a jelenlegi állapotot. Ez a lépés nem hat a külső környezetre, hanem belső tervezésre szolgál.
Cselekvés (Action)
Érvelése alapján a modell külső cselekvést hajt végre, az elérhető eszközök egyikéhez fordulva. Cselekvések példái:
- Search [lekérdezés] — információkereséshez egy tudásbázisban (például a Wikipédián).
- Click [elem] — weblap navigációhoz.
- API_call [paraméterek] — külső API híváshoz.
Megfigyelés (Observation)
A rendszer vagy a külső eszköz végrehajtja a cselekvést, és visszaadja az eredményt (megfigyelést). Ez lehet szövegrészlet, API-válasz vagy hibaüzenet. A modell ezt a megfigyelést használja a következő gondolat kialakításához, ezzel zárva a visszacsatolási hurkot[2].
Kísérleti eredmények és hatékonyság
A ReAct szerzői a módszert feladatok széles spektrumán tesztelték, és megmutatták fölényét a CoT és az Act-Only megközelítésekkel szemben.
| Benchmark | Feladat | ReAct (siker/pontosság) | Chain-of-Thought (siker/pontosság) | Act-Only (siker/pontosság) |
|---|---|---|---|---|
| FEVER | Tényellenőrzés | 87.6% | 82.8% | 70.1% |
| HotpotQA | Többlépéses kérdések | 31.8% | 36.3% | 17.0% |
| ALFWorld | Szöveges játék (tervezés) | 71% | 10% | 13% |
| WebShop | Webnavigáció | 40% | - | 30.1% |
- A tényellenőrzést igénylő feladatokban (FEVER) a ReAct jelentősen felülmúlja a CoT-ot, mivel képes az információkat ellenőrizni.
- Az interaktív tervezési feladatokban (ALFWorld, WebShop) a ReAct óriási előnyt mutat, mivel képes a változó környezethez alkalmazkodni.
- A tiszta érvelési feladatokban (HotpotQA) a CoT hasonló vagy akár jobb eredményeket is elérhet. A hibrid ReAct+CoT megközelítés azonban a legjobb teljesítményt mutatta, elérve a 35%-ot HotpotQA-n[1].
Kritika és korlátok
Hatékonysága ellenére a ReAct-nak számos korlátja és sebezhetősége van.
- „Törékenység" (Brittleness): Újabb kutatások kimutatták, hogy a ReAct sikere nem annyira az érvelés és a cselekvés valódi szinergiájához, mint inkább a prompt példái és az aktuális feladat közötti szintaktikai hasonlósághoz köthető. A modell követheti a `Thought-Action-Observation` sablont anélkül, hogy teljes mértékben értené az érvelés szemantikáját[3].
- Számítási költségek: Minden ReAct ciklus legalább egy LLM-hívást és egy külső eszközhívást igényel, ami lassabbá és drágábbá teszi a standard promptinghoz képest.
- Eszközfüggőség: Az ágens hatékonysága közvetlenül függ az elérhető eszközök minőségétől és megbízhatóságától. Egy helytelen vagy zajos API-válasz hamis irányba terelheti a modell érvelését.
Jelentőség és további fejlesztés
A ReAct fontos mérföldkővé vált az MI fejlődésében, jelezve az átmenetet a generatív rendszerektől az agentikus rendszerek felé. Fogalmi és gyakorlati alapot fektetett le a legtöbb modern ágenstervező keretrendszer számára, mint például:
- LangChain
- LlamaIndex
- AutoGen
A ReAct ötletei kiindulópontul szolgáltak összetettebb érvelési architektúrák számára, mint a Reflexion (sikertelenség után önreflexiós ciklust ad hozzá) és a Tree of Thoughts (ToT) (párhuzamosan több érvelési utat vizsgál).
Hivatkozások
- A ReAct projekt hivatalos oldala
- A ReAct leírása a Learn Prompting útmutatóban
- Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (blog post). Google Research Blog.
Irodalom
- 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.
Megjegyzések
- ↑ 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]