ReAct Prompting (HU)

From Systems analysis Wiki
Jump to navigation Jump to search

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.

A ReAct eredményei az alap módszerekkel összehasonlítva a legfontosabb benchmarkokon[1]
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. 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]