ReAct Prompting (FR)
ReAct (abréviation de Reason + Act, qui signifie « Raisonner et Agir ») est un paradigme d'ingénierie de prompts (prompting) pour les grands modèles de langage (LLM), leur permettant de résoudre des tâches complexes en alternant des raisonnements verbaux (pensées) et des actions interagissant avec un environnement externe[1]. Cette méthode a été proposée en 2022 par des chercheurs de Google Research et de l'Université de Princeton et est devenue une approche fondamentale dans le développement d'agents intelligents.
L'innovation clé de ReAct réside dans la combinaison de raisonnements logiques, caractéristiques de techniques comme la Chaîne de Pensée (Chain-of-Thought, CoT), avec l'exécution d'actions externes, telles que la recherche d'informations ou l'interaction avec des interfaces de programmation (API). Cela permet au modèle de corriger dynamiquement son plan, de vérifier des faits et de surmonter les limites de ses propres connaissances, souvent obsolètes ou incomplètes[2].
Contexte et historique
Avant l'émergence de ReAct, il existait deux approches principales, mais distinctes, pour utiliser les LLM afin de résoudre des tâches complexes :
- Chaîne de Pensée (Chain-of-Thought, CoT) : Le modèle génère des raisonnements logiques étape par étape pour résoudre une tâche, mais il le fait dans un « vide informationnel », en se basant uniquement sur ses connaissances internes. Cela conduit souvent à des erreurs factuelles et à des « hallucinations »[1].
- Planification d'actions (Act-Only) : Le modèle génère une séquence d'actions pour interagir avec un environnement externe (par exemple, dans des jeux textuels), mais sans planification explicite de haut niveau. De tels systèmes gèrent mal les erreurs et ne peuvent pas adapter leur stratégie face à des circonstances imprévues.
ReAct a été créé pour combiner de manière synergique les forces de ces deux approches. Il permet au modèle non seulement de raisonner, mais aussi d' ancrer ses raisonnements dans des faits du monde extérieur, ainsi que d'adapter ses actions en fonction des retours obtenus.
Mécanisme de fonctionnement : le cycle « Pensée — Action — Observation »
ReAct fonctionne selon un cycle itératif qui comprend trois composants clés. Le modèle génère séquentiellement une trajectoire composée d'étapes Thought (Pensée), Action et Observation.
Exemple de structure de prompt :
Question : Quelle est la capitale de la ville où est né l'inventeur connu pour le courant alternatif ?
Thought 1 : Je dois découvrir qui a inventé le courant alternatif. Ensuite, trouver son lieu de naissance et vérifier si cette ville est une capitale. (Je dois découvrir qui a inventé le courant alternatif. Ensuite, trouver son lieu de naissance et vérifier si cette ville est une capitale.)
Action 1 : Search[inventeur du courant alternatif]
Observation 1 : Le courant alternatif (CA) a été développé et promu par Nikola Tesla.
Thought 2 : Maintenant, je dois savoir où Nikola Tesla est né.
Action 2 : Search[lieu de naissance de Nikola Tesla]
Observation 2 : Nikola Tesla est né dans le village de Smiljan, Empire d'Autriche (actuellement en Croatie).
Thought 3 : Smiljan n'est pas une capitale. Par conséquent, la question n'a pas de réponse claire dans cette formulation. Cependant, Tesla a longtemps vécu et travaillé aux États-Unis. Il est possible que la question fasse référence à la capitale du pays où il a fait ses principales découvertes. C'est une question plus complexe. Je dois énoncer le fait basé sur son lieu de naissance. Sa ville de naissance n'est pas une capitale.
Final Answer : L'inventeur associé au courant alternatif, Nikola Tesla, est né à Smiljan (Croatie), qui n'est pas une capitale.
Pensée (Thought)
Le modèle génère un raisonnement interne dans lequel il analyse la tâche, la décompose en sous-tâches, formule ou ajuste un plan d'action et évalue l'état actuel. Cette étape n'affecte pas l'environnement externe mais sert à la planification interne.
Action
Sur la base de son raisonnement, le modèle exécute une action externe en faisant appel à l'un des outils disponibles. Exemples d'actions :
- Search [requête] — pour rechercher des informations dans une base de connaissances (par exemple, Wikipédia).
- Click [élément] — pour naviguer sur une page web.
- API_call [paramètres] — pour appeler une API externe.
Observation
Le système ou l'outil externe exécute l'action et renvoie un résultat (observation). Il peut s'agir d'un fragment de texte, d'une réponse d'API ou d'un message d'erreur. Le modèle utilise cette observation pour formuler la pensée suivante, bouclant ainsi la rétroaction[2].
Résultats expérimentaux et efficacité
Les auteurs de ReAct ont testé la méthode sur un large éventail de tâches, démontrant sa supériorité par rapport aux approches CoT et Act-Only.
| Benchmark | Tâche | ReAct (succès/précision) | Chain-of-Thought (succès/précision) | Act-Only (succès/précision) |
|---|---|---|---|---|
| FEVER | Vérification de faits | 87.6% | 82.8% | 70.1% |
| HotpotQA | Questions à sauts multiples | 31.8% | 36.3% | 17.0% |
| ALFWorld | Jeu textuel (planification) | 71% | 10% | 13% |
| WebShop | Navigation web | 40% | - | 30.1% |
- Dans les tâches nécessitant la vérification de faits (FEVER), ReAct surpasse considérablement CoT, car il peut vérifier les informations.
- Dans les tâches de planification interactive (ALFWorld, WebShop), ReAct montre un avantage énorme, car il peut s'adapter à un environnement changeant.
- Dans les tâches de raisonnement pur (HotpotQA), CoT peut obtenir des résultats comparables, voire meilleurs. Cependant, une approche hybride ReAct+CoT a montré les meilleures performances, atteignant 35 % sur HotpotQA[1].
Critiques et limitations
Malgré son efficacité, ReAct présente un certain nombre de limitations et de vulnérabilités.
- « Fragilité » (Brittleness) : Des recherches ultérieures ont montré que le succès de ReAct pourrait être dû moins à une véritable synergie entre le raisonnement et l'action qu'à une similarité syntaxique entre les exemples dans le prompt et la tâche en cours. Le modèle peut suivre le modèle `Thought-Action-Observation` sans comprendre pleinement la sémantique des raisonnements[3].
- Coûts de calcul : Chaque cycle ReAct nécessite au moins un appel au LLM et un appel à un outil externe, ce qui le rend lent et coûteux par rapport au prompting standard.
- Dépendance aux outils : L'efficacité de l'agent dépend directement de la qualité et de la fiabilité des outils disponibles. Une réponse incorrecte ou bruitée d'une API peut orienter le raisonnement du modèle dans une mauvaise direction.
Importance et développements futurs
ReAct est devenu une étape importante dans le développement de l'IA, marquant la transition des systèmes génératifs aux systèmes agentifs. Il a jeté les bases conceptuelles et pratiques de la plupart des frameworks modernes pour la création d'agents, tels que :
- LangChain
- LlamaIndex
- AutoGen
Les idées de ReAct ont servi de point de départ à des architectures de raisonnement plus complexes, telles que Reflexion (qui ajoute un cycle d'autoréflexion après un échec) et Tree of Thoughts (ToT) (qui explore plusieurs pistes de raisonnement en parallèle).
Liens
- Page officielle du projet ReAct
- Description de ReAct dans le guide Learn Prompting
- Google Research (2022). ReAct: Synergizing Reasoning and Acting in Language Models (billet de blog). Google Research Blog.
Littérature
- 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.
Notes
- ↑ 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]