XYZNOT

Articles · arXiv 2407.17789

Simulation multi-agents à très grande échelle dans AgentScope

Very Large-Scale Multi-Agent Simulation in AgentScope

Publié le cs.MAcs.AI arXivPDF

Lire avec traduction et IA

Résumé en trois lignes

  1. 🎯 Les plateformes de simulation multi-agents se heurtent à des goulots d'étranglement majeurs : passage à l'échelle, diversité des populations d'agents et gestion du cycle de vie multi-machines.
  2. 🔧 Implémentation d'un mécanisme distribué basé sur des acteurs avec modes de processus un-à-un et plusieurs-à-un, conversion automatique de workflow via to_dist, environnements multicouches et générateur de personas automatisé.
  3. 📈 Simulation réussie de 1 million d'agents sur 4 machines multi-GPU en 12 minutes (Llama3-8B) et réalisation d'un benchmark fictif à 1M d'agents en seulement 40 secondes.

Résumé

Les avancées récentes dans les modèles de langage de grande taille (LLM) ont ouvert de nouvelles perspectives pour l'application des systèmes multi-agents dans des simulations à très grande échelle. Cependant, plusieurs défis subsistent lors de la réalisation de simulations multi-agents avec les plateformes existantes, tels qu'une scalabilité limitée, une faible efficacité, une diversité insuffisante des agents et des processus de gestion fastidieux. Pour relever ces défis, nous développons plusieurs nouvelles fonctionnalités et composants pour AgentScope, une plateforme multi-agents conviviale, améliorant sa praticité et sa flexibilité pour prendre en charge des simulations multi-agents à très grande échelle. Plus précisément, nous proposons un mécanisme distribué basé sur des acteurs comme infrastructure technologique sous-jacente garantissant une scalabilité élevée et une grande efficacité. Nous offrons également un support d'environnement flexible pour simuler divers scénarios du monde réel, permettant l'exécution parallèle de multiples agents, la conversion automatique des workflows pour le déploiement distribué, ainsi que les interactions inter-agents et agent-environnement. De plus, nous intégrons dans AgentScope un outil configurable intuitif et un pipeline de génération automatique de profils d'arrière-plan, simplifiant la création d'agents aux contextes détaillés et diversifiés. Enfin, nous fournissons une interface web pour surveiller et gérer facilement un grand nombre d'agents déployés sur plusieurs machines. Nous menons une simulation complète démontrant l'efficacité de ces améliorations apportées à AgentScope, et fournissons des observations détaillées ainsi que des discussions approfondies afin de souligner le fort potentiel des systèmes multi-agents dans les simulations à grande échelle. Le code source est disponible sur GitHub à l'adresse https://github.com/modelscope/agentscope/tree/main/examples/paper_large_scale_simulation pour encourager les recherches futures.

Résumé original (anglais)

Recent advances in large language models (LLMs) have opened new avenues for applying multi-agent systems in very large-scale simulations. However, there remain several challenges when conducting multi-agent simulations with existing platforms, such as limited scalability and low efficiency, unsatisfied agent diversity, and effort-intensive management processes. To address these challenges, we develop several new features and components for AgentScope, a user-friendly multi-agent platform, enhancing its convenience and flexibility for supporting very large-scale multi-agent simulations. Specifically, we propose an actor-based distributed mechanism as the underlying technological infrastructure towards great scalability and high efficiency, and provide flexible environment support for simulating various real-world scenarios, which enables parallel execution of multiple agents, automatic workflow conversion for distributed deployment, and both inter-agent and agent-environment interactions. Moreover, we integrate an easy-to-use configurable tool and an automatic background generation pipeline in AgentScope, simplifying the process of creating agents with diverse yet detailed background settings. Last but not least, we provide a web-based interface for conveniently monitoring and managing a large number of agents that might deploy across multiple devices. We conduct a comprehensive simulation to demonstrate the effectiveness of these proposed enhancements in AgentScope, and provide detailed observations and insightful discussions to highlight the great potential of applying multi-agent systems in large-scale simulations. The source code is released on GitHub at https://github.com/modelscope/agentscope/tree/main/examples/paper_large_scale_simulation to inspire further research and development in large-scale multi-agent simulations.

Guide de lecture

Problème et motivation

Les agents basés sur des modèles de langage de grande taille (LLM) permettent des simulations interactives et réalistes sans programmation manuelle poussée de règles. Cependant, étendre les simulations multi-agents à des échelles démographiques réalistes met en évidence trois goulots d'étranglement critiques :

  1. Limites de scalabilité et d'efficacité : L'exécution centralisée et le verrou global de l'interpréteur (GIL) de Python entravent l'exécution des agents. Les frameworks d'acteurs existants (par exemple Ray) créent un nouveau processus par acteur, gaspillant des ressources lors du traitement de millions d'agents légers limités par les entrées/sorties (I/O).
  2. Distributions de population et diversité insatisfaisantes : Les agents dotés d'invites d'arrière-plan simples et identiques ont un comportement homogène et échouent à représenter des distributions démographiques réalistes (par exemple en termes d'éducation, d'âge ou de profession).
  3. Gestion complexe : L'orchestration, le lancement, la surveillance et l'arrêt de centaines de milliers ou de millions d'agents répartis sur des clusters imposent une lourde charge opérationnelle.

Idées clés

  • Architecture distribuée basée sur les acteurs : Les agents calculent de manière indépendante en tant qu'acteurs. La plateforme prend en charge les mappages un-à-un (un agent par processus, évitant le GIL pour les tâches lourdes en calcul) et plusieurs-à-un (les agents partagent les processus, optimisant le partage de temps des cœurs CPU pendant les attentes I/O).
  • Conversion distribuée sans refactorisation (to_dist) : Les utilisateurs écrivent des workflows centralisés, qui sont convertis de manière transparente en architectures distribuées à l'aide de proxys locaux et d'espaces réservés de messages asynchrones.
  • L'environnement en tant qu'agent : Les environnements sont modélisés comme des agents spécialisés prenant en charge le maintien de l'état, l'accès à haute concurrence par RPC, des déclencheurs bidirectionnels (via des écouteurs) et des structures multicouches imbriquées pour les simulations de groupe.
  • Pipeline de population hétérogène configurable : Les utilisateurs définissent les distributions démographiques dans des fichiers de configuration, et un pipeline de méta-invites LLM génère des profils d'agents personnalisés et diversifiés.
  • Agent-Manager : Une interface graphique web et un réseau de serveurs distants persistants pour déployer, surveiller et nettoyer les agents sur les nœuds du cluster.

Méthode

Exécution distribuée et conversion automatique

Dans AgentScope, les agents indépendants s'exécutent de façon concurrente. Lorsqu'un pipeline centralisé reçoit l'annotation .to_dist(), deux étapes interviennent :

  1. Les agents distribués sont instanciés sur les workers distants ; des objets proxys légers demeurent sur l'orchestrateur central.
  2. Dès réception d'un appel, les proxys renvoient immédiatement des espaces réservés de messages. Les agents en aval ne se bloquent que lorsqu'ils consultent des espaces réservés pointant vers des calculs en attente issus des agents précédents.

Dynamique de simulation

La plateforme évalue le raisonnement multi-agents sur le jeu classique consistant à « deviner les de la moyenne ». Chaque agent soumet . La valeur cible gagnante est : Lors de répétitions sous l'hypothèse d'une connaissance commune de la rationalité, l'unique équilibre de Nash converge vers . Dans des expériences alternatives évaluant la généralisation au-delà des données d'entraînement préalables, la règle cible a été modifiée en : En posant , on obtient un équilibre de Nash non nul :

Résultats

  • Scalabilité : Une simulation de 1 000 000 d'agents a été réalisée en 12 minutes sur 4 nœuds (chacun doté de 8 GPU A100-80G, de 64 cœurs CPU et de 1 To de mémoire vive) avec Llama3-8B et des invites basiques, et en 85 minutes avec une incitation par chaîne de pensée (CoT), qui a multiplié le nombre de tokens par plus de 150. Sur un benchmark synthétique excluant la latence d'inférence LLM, 1M d'agents ont tourné en 40 secondes, contre 8,6 heures via l'I/O asynchrone Python standard et environ 12 jours en exécution séquentielle.
  • Mise à l'échelle horizontale : Avec un nombre fixe de 10 000 agents par machine, le temps d'exécution global est resté constant lorsque la taille du cluster est passée de 1 à 4 nœuds.
  • Prompting et profondeur de raisonnement : Avec des invites simples, la plupart des modèles ont rapporté des valeurs proches de 50 (bien que MistralAI-8x7B ait obtenu 36,63 en moyenne et MistralAI-8x22B 31,69). L'ajout d'instructions CoT a orienté les réponses vers 0 (les valeurs gagnantes de Qwen2-72B sont tombées de 33,70 à 12,76, et les moyennes de la manche 5 en multi-tours sont passées de 25,16 à 2,02).
  • Démographie et rôles : Des niveaux d'éducation assignés plus élevés ont systématiquement induit des propositions plus basses et plus optimales au sens de la théorie des jeux (les agents doctorants ont proposé des nombres inférieurs à ceux des agents de niveau école primaire). Les professions telles que professeurs de théorie des jeux et économistes ont fourni les valeurs les plus faibles.
  • Variantes : Lorsque l'équilibre a été déplacé à 10 (), les agents ont itérativement convergé autour de 10 sur plusieurs manches.

Limites et questions ouvertes

  • Incohérence du jeu de rôle dans les cas limites : Même avec pour consigne de jouer le rôle d'un enfant de 7 ans, les agents ont poursuivi des calculs arithmétiques multi-étapes et des raisonnements récursifs incompatibles avec le persona.
  • Erreurs arithmétiques élémentaires : Les agents ont parfois commis des erreurs de calcul basiques (notamment sur des fractions ou des décimales), alors même que leur raisonnement stratégique était rigoureux.
  • Sensibilité aux a priori d'apprentissage : Modifier le ratio cible de à a dégradé les performances en raison de schémas mémorisés issus de la théorie des jeux ; la précision n'a été restaurée que lorsque les invites ont explicitement précisé que le jeu était une variante de « deviner les de la moyenne ».

Termes clés

AgentScope
Une plateforme multi-agents conçue pour les applications basées sur les LLM, étendue ici pour prendre en charge les simulations distribuées à très grande échelle.
Actor Model
Un paradigme de calcul concurrent dans lequel chaque acteur fait office d'unité de calcul autonome communiquant par échange de messages sans mémoire partagée.
to_dist
Une fonction native d'AgentScope qui convertit un workflow multi-agents rédigé de façon centralisée et séquentielle en un pipeline d'exécution distribué à l'aide de proxys et d'espaces réservés.
Placeholders
Jetons de réponse asynchrone retournés immédiatement par les agents proxys afin que les orchestrateurs poursuivent leur exécution sans bloquer sur les réponses des workers distants.
Agent-Manager
Un tableau de bord visuel web centralisé doublé d'une infrastructure de serveurs démons, utilisé pour déployer, observer et gérer le cycle de vie des agents sur les nœuds distants d'un cluster.
Guess 2/3 of the Average
Un benchmark classique de théorie des jeux où les joueurs choisissent un nombre dans [0, 100] pour cibler les 2/3 de la moyenne globale, admettant un équilibre de Nash théorique à 0.
Many-to-One Multi-Process Mode
Un mode d'exécution d'AgentScope où plusieurs agents résident au sein d'un même processus OS afin de mutualiser les threads, les cœurs CPU et les ports réseau durant les temps d'attente I/O.

Questions

Combien d'agents AgentScope peut-il simuler simultanément ?

Les auteurs ont démontré des simulations comptant jusqu'à 1 000 000 d'agents actifs s'exécutant sur 4 nœuds physiques de cluster (chacun équipé de 8 GPU A100-80G).

Comment AgentScope contourne-t-il les limites du GIL Python pour le parallélisme massif ?

Il implémente un multi-processus basé sur des acteurs avec deux modes : un-à-un (un processus par agent) pour les tâches gourmandes en calcul, et plusieurs-à-un (plusieurs agents partageant un processus) pour l'attente d'API et les tâches limitées par les I/O, neutralisant les contentions du GIL via des appels de procédure à distance (RPC).

Comment les populations d'agents réalistes sont-elles générées ?

Les utilisateurs fournissent des distributions démographiques globales (telles que le niveau d'éducation, le genre, l'âge et la profession) dans un fichier de configuration, qu'un pipeline de méta-invites orchestré par LLM échantillonne et développe en biographies détaillées.

Que se passe-t-il lorsque les règles du jeu s'écartent des benchmarks théoriques classiques ?

Lorsque le ratio est modifié à 51/100 ou que la cible devient 5 + 1/2 de la moyenne, les agents éprouvent des difficultés initiales à cause de patterns mémorisés. Cependant, l'ajout d'explications contextuelles ou d'invites CoT permet à des modèles comme Qwen2-72B et MistralAI-8x22B de converger vers le nouvel équilibre.

La présentation de cette page a été rédigée par une IA à partir de l'article et peut contenir des erreurs. Consultez l'article pour les détails.

Lire avec traduction et IA