Dans le monde de l'intelligence artificielle (IA), les modèles de langage comme GPT-4 d'OpenAI ont ouvert de nouvelles portes pour la simulation d'agents intelligents. Dans cet article, nous parlerons de mon dernier projet en date : "BattleFieldAgents", qui utilise GPT-4 pour contrôler des agents dans un jeu vidéo de stratégie. Nous discuterons de la conception du jeu, des défis rencontrés, et de la manière dont l'IA a été intégrée pour créer une expérience de jeu unique.
BattleFieldAgents : example d'une partie en vidéo
"BattleFieldAgents" est un projet de jeu vidéo stratégique qui utilise le modèle de langage GPT-4 d'OpenAI pour contrôler des agents dans le jeu. Les agents sont conçus pour prendre des décisions stratégiques en fonction de leur environnement et expliquer leurs raisonnements derrière leurs actions. L'objectif du projet est de permettre à ces agents de communiquer en langage naturel (ici en anglais), de se partager des informations importantes, et de coordonner leurs actions pour atteindre un objectif commun.
Le jeu est un champ de bataille disposé sur une grille 2D et se compose de deux équipes : "rouge" et "bleu", chacune ayant plusieurs agents (100 pdv). Chaque équipe possède une cible (150 pdv) qu'elle doit protéger tout en essayant de détruire la cible ennemie. Sur le champ de bataille, il y a également des obstacles positionnés aléatoirement qui obstruent le champ de vue des agents et leurs déplacements. Les agents peuvent tirer sur n'importe quel ennemi (agent ou cible) qui est dans leur champ de vue. Lorsqu'une balle touche un agent ou une cible, leurs points de vie sont réduits de 25. Si les points de vie d'un agent atteignent zéro, il est retiré du jeu. Si les points de vie d'une cible atteignent zéro, le jeu est gagné par l'équipe adverse. Si tous les agents d'une équipe sont retirés du jeu, l'équipe adverse gagne.
Chaque agent doit réaliser 3 actions par tour, et possède les informations suivantes :
Ils utilisent ces informations pour décider de ce qu'ils vont faire, c'est à dire se déplacer de 1 à 3 cases, attaquer un adversaire en vu, ou communiquer avec un coéquipier en vu.
Pour comprendre comment "BattleFieldAgents" fonctionne, il est utile de le visualiser comme un cycle d'interaction entre le jeu et GPT-4. Voici un schéma simplifié de ce cycle :
Workflow
Ce cycle se répète pour chaque action et pour chaque tour du jeu.
Une partie non négligeable du travail a été d'observer le comportements des agents et de modifier les informations auxquelles ils avaient accès, leur actions possibles et leur prompt jusqu'à obtenir une version satisfaisante. Mon objectif principal était de leur faire adopter un comportement cohérent dans lequel ils partagerait des informations. Plus précisément, je voulais qu'ils interagissent entre eux et s'entraident pour atteindre un objectif commun. Sachant que chacun d'entre eux ne peut voir qu'une partie du champ de bataille, vont-ils être capable de se partager des informations et de coordonner leurs actions ?
Au départ, j'ai réalisé de nombreux tests avec GPT-3.5-turbo, mais il était difficile d'obtenir un prompt qui permettait d'obtenir à coup sûr le résultat dans un certain format. C'est une préoccupation importante pour un informaticien, car le format de sortie doit être prévisible et cohérent pour que le code puisse interagir correctement avec lui.
Après de nombreux tests avec différents prompts, j'ai réussi à obtenir un comportement intéressant. Les agents communiquent avec leurs coéquipiers pour coordonner leurs attaques ou partager des informations, malgré le coût associé à la communication. Elles prennent en compte les messages reçus de leurs camarades lors de leur tour de jeu, ce qui montre une véritable coopération entre elles.
Cependant, j'ai rencontré quelques difficultés. Au début, les agents ne choisissaient pas de parler spontanément. J'ai dû modifier le prompt pour les encourager à le faire. C'est assez fascinant de voir comment le comportement d'un agent peut être manipulé simplement en modifiant du texte en langage naturel.
Il y a cependant des limites à ce que nous pouvons accomplir. Les informations que les agents reçoivent sont limitées par la façon dont le jeu est implémenté. De plus, le prompt et la description du jeu qu'il contient limitent également leur comportement. Trouver les instructions claires et concises qui auront le plus grand impact est un défi en soi.
Le projet "BattleFieldAgents" ouvre la voie à de nombreuses possibilités de recherche et d'application. L'une des perspectives les plus intéressantes selon moi est l'amélioration de ces agents via apprentissage par renforcement d'un LLM "miniature". Il existe aujourd'hui de nombreux modèle Open-Source de LLM, comme GPT-2, LLama ou Falcon. Il serait intéressant de voir si ces modèle - bien plus petits et moins performants que GPT-4 - peuvent être finetuné sur cette tâche spécifique, et s'il peuvent être utilisé comme base pour l'entrainement par renforcement d'agent autonome.
Ceci permettrait de remplacer GPT-4 qui présente trois désaventages majeurs :
Aussi, bien que le prompt actuel permette un comportement intéressant, il est loin d'être parfait. Des recherches supplémentaires pourraient être menées pour améliorer le prompt et obtenir un comportement plus complexe et stratégique de la part des agents.
Une autre possibilité est l'explicabilités des décisions des agents et de leur raisonnement. Nous pouvons imaginer entrenenir des discussions avec un agent tout au long de l'expérience pour mieux comprendre ses décisions et son raisonnement, ou même pour lui donner des conseils sur la façon de se comporter dans une situation.
En outre, le projet pourrait être étendu pour inclure plus d'agents, ou pour permettre aux agents d'avoir des "personnalités" différentes basées sur différents prompts. Cela pourrait conduire à des dynamiques de jeu plus intéressantes et plus variées.
Enfin, le projet pourrait être utilisé comme un outil d'apprentissage pour ceux qui s'intéressent à l'IA et aux jeux vidéo. En modifiant le code et en expérimentant avec différents prompts, les utilisateurs peuvent en apprendre davantage sur le fonctionnement de GPT-4 et sur la manière dont l'IA peut être utilisée dans les jeux vidéo, et en général.
En utilisant GPT-4 pour contrôler les agents dans un jeu de stratégie, BattleFieldAgents offre une nouvelle perspective de recherche sur les problèmes multi-agents et illuste bien le potentiel des LLMs dans de tels contextes. Bien qu'il reste encore beaucoup à faire pour améliorer le comportement des agents et pour explorer d'autres applications possibles, BattleFieldAgents est un POC prometteur pour l'utilisation des LLMss- pour le développement d'agent intelligents capable de fournir des explications en langage naturelle de leurs décisions et de leurs raisonnements.