Artículos · arXiv 2407.17789
Simulación multiagente a muy gran escala en AgentScope
Very Large-Scale Multi-Agent Simulation in AgentScope
Resumen en tres líneas
- 🎯 Las plataformas de simulación multiagente enfrentan grandes cuellos de botella en escalabilidad, diversidad de la población de agentes y gestión del ciclo de vida en múltiples dispositivos a escala masiva.
- 🔧 Implementa un mecanismo distribuido basado en actores con modos de proceso uno a uno y muchos a uno, conversión automática de flujos de trabajo mediante to_dist, entornos multicapa y un generador automatizado de perfiles.
- 📈 Simuló con éxito 1 millón de agentes en 4 dispositivos con múltiples GPU en 12 minutos (Llama3-8B) y completó un benchmark simulado de 1M de agentes en solo 40 segundos.
Resumen
Los avances recientes en modelos de lenguaje grande (LLM) han abierto nuevas vías para aplicar sistemas multiagente en simulaciones a muy gran escala. Sin embargo, persisten varios desafíos al realizar simulaciones multiagente con las plataformas existentes, tales como la escalabilidad limitada y la baja eficiencia, una diversidad de agentes insuficiente y procesos de gestión que requieren un esfuerzo intensivo. Para abordar estos desafíos, desarrollamos varias funciones y componentes nuevos para AgentScope, una plataforma multiagente intuitiva, mejorando su conveniencia y flexibilidad para admitir simulaciones multiagente a muy gran escala. Específicamente, proponemos un mecanismo distribuido basado en actores como infraestructura tecnológica subyacente hacia una gran escalabilidad y alta eficiencia, y proporcionamos soporte de entornos flexible para simular diversos escenarios del mundo real, lo que permite la ejecución paralela de múltiples agentes, la conversión automática de flujos de trabajo para despliegues distribuidos y la interacción tanto entre agentes como entre agentes y entorno. Además, integramos en AgentScope una herramienta configurable fácil de usar y un pipeline de generación automática de antecedentes, simplificando el proceso de creación de agentes con configuraciones de trasfondo diversas pero detalladas. Por último, pero no menos importante, ofrecemos una interfaz web para monitorizar y gestionar convenientemente una gran cantidad de agentes que podrían estar desplegados en múltiples dispositivos. Llevamos a cabo una simulación exhaustiva para demostrar la efectividad de estas mejoras propuestas en AgentScope, y aportamos observaciones detalladas y discusiones perspicaces para resaltar el gran potencial de aplicar sistemas multiagente en simulaciones a gran escala. El código fuente se ha publicado en GitHub en https://github.com/modelscope/agentscope/tree/main/examples/paper_large_scale_simulation para inspirar futuras investigaciones y desarrollos en simulaciones multiagente a gran escala.
Resumen original (inglés)
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.
Guía de lectura
Problema y motivación
Los agentes basados en modelos de lenguaje grande (LLM) permiten simulaciones interactivas y realistas sin necesidad de una programación manual exhaustiva de reglas. Sin embargo, escalar las simulaciones multiagente a tamaños demográficos realistas revela tres cuellos de botella críticos:
- Límites de escalabilidad y eficiencia: La ejecución centralizada y el Global Interpreter Lock (GIL) de Python obstaculizan la ejecución de agentes. Los marcos de trabajo de actores existentes (p. ej., Ray) crean un nuevo proceso por actor, desperdiciando recursos al manejar millones de agentes ligeros limitados por I/O.
- Distribuciones poblacionales insatisfactorias y diversidad de agentes: Los agentes con prompts de trasfondo simples e idénticos se comportan de manera homogénea, sin lograr representar distribuciones demográficas realistas (p. ej., por educación, edad u ocupación).
- Gestión compleja: Orquestar, lanzar, monitorizar y finalizar cientos de miles o millones de agentes distribuidos en clústeres requiere una sobrecarga operativa sustancial.
Ideas clave
- Arquitectura distribuida basada en actores: Los agentes computan de forma independiente como actores. La plataforma admite asignaciones tanto uno a uno (un agente por proceso, evitando el GIL para tareas de cómputo intensivo) como muchos a uno (los agentes comparten procesos, maximizando la multiplexación en núcleos de CPU durante las esperas de I/O).
- Conversión distribuida sin refactorización (
to_dist): Los usuarios diseñan flujos de trabajo centralizados, que se transforman de manera transparente en configuraciones distribuidas utilizando proxies locales y marcadores de posición asíncronos para mensajes. - El entorno como un agente: Los entornos se modelan como agentes especializados que admiten mantenimiento de estado, acceso de alta concurrencia mediante RPC, activadores bidireccionales (mediante listeners) y estructuras multicapa anidadas para simulaciones a nivel de grupo.
- Pipeline de población heterogénea configurable: Los usuarios definen distribuciones demográficas en archivos de configuración, y un pipeline de metaprompts con LLM genera perfiles de agentes diversos e individualizados.
- Agent-Manager: Una interfaz gráfica web y una red de servidores remotos persistentes para desplegar, monitorizar y limpiar agentes en los nodos del clúster.
Método
Ejecución distribuida y conversión automática
En AgentScope, los agentes independientes se ejecutan de forma concurrente. Cuando un pipeline centralizado se etiqueta con .to_dist(), ocurren dos fases:
- Los agentes distribuidos se instancian a lo largo de los workers remotos; en el orquestador central solo quedan objetos proxy ligeros.
- Los proxies devuelven marcadores de posición de mensajes inmediatamente al recibir una llamada. Los agentes posteriores solo se bloquean cuando inspeccionan marcadores de posición que apuntan a cómputos pendientes de agentes anteriores.
Dinámica de la simulación
La plataforma evalúa el razonamiento multiagente en el clásico juego de «adivinar los del promedio». Cada agente envía . El objetivo ganador es: Cuando se itera bajo conocimiento común de racionalidad, el equilibrio de Nash único converge a . En experimentos alternativos para evaluar la generalización más allá de los datos de entrenamiento previos, la regla objetivo se ajustó a: Al establecer se obtiene un equilibrio de Nash distinto de cero:
Resultados
- Escalabilidad: Una simulación de 1.000.000 de agentes se completó en 12 minutos utilizando 4 nodos (cada uno con 8 GPUs A100-80G, 64 núcleos de CPU, 1 TB de RAM) empleando Llama3-8B con prompts básicos, y en 85 minutos con prompting de cadena de pensamiento (Chain-of-Thought, CoT), el cual incrementó el conteo de tokens en más de 150 veces. En un benchmark con cómputo ficticio que eliminaba la latencia de inferencia del LLM, 1M de agentes se ejecutaron en 40 segundos, en comparación con las 8,6 horas mediante I/O asíncrono estándar en Python y los ~12 días mediante ejecución serial.
- Escalabilidad horizontal: Con un valor fijo de 10.000 agentes por dispositivo, el tiempo total de ejecución se mantuvo constante a medida que el tamaño del clúster aumentaba de 1 a 4 nodos.
- Prompting y profundidad de razonamiento: Bajo prompting básico, la mayoría de los modelos reportaron alrededor de 50 (aunque MistralAI-8x7B promedió 36,63 y MistralAI-8x22B promedió 31,69). Añadir instrucciones de CoT empujó las respuestas hacia 0 (los números ganadores de Qwen2-72B cayeron de 33,70 a 12,76, y los promedios en la ronda 5 de múltiples rondas disminuyeron de 25,16 a 2,02).
- Demografía y roles: Niveles educativos asignados más altos produjeron sistemáticamente estimaciones más bajas y más óptimas según la teoría de juegos (los agentes con Ph.D. reportaron números menores que los agentes de escuela primaria). Ocupaciones como profesores de teoría de juegos y economistas reportaron las cifras más bajas.
- Variantes: Cuando el equilibrio se desplazó a 10 (), los agentes convergieron iterativamente alrededor de 10 a lo largo de múltiples rondas.
Limitaciones y preguntas abiertas
- Inconsistencia en la interpretación de roles en casos límite: Cuando se les indicó que actuaran como niños de 7 años, los agentes continuaron ejecutando operaciones aritméticas de múltiples pasos y razonamientos recursivos que contradecían su perfil asignado.
- Errores aritméticos simples: En ocasiones, los agentes cometieron fallos básicos de cálculo (especialmente con fracciones o decimales), incluso cuando su lógica de razonamiento estratégico era sólida.
- Sensibilidad a los sesgos de entrenamiento previo: Modificar la proporción objetivo de a degradó el rendimiento debido a que los modelos dependían de patrones memorizados de teoría de juegos; el rendimiento solo se recuperó cuando los prompts indicaron explícitamente que el juego era una variante de «adivinar los del promedio».
Términos clave
- AgentScope
- Plataforma multiagente diseñada para aplicaciones basadas en LLM, ampliada aquí para admitir simulaciones distribuidas a muy gran escala.
- Actor Model
- Paradigma de computación concurrente donde cada actor funciona como una unidad de cálculo autónoma que se comunica mediante paso de mensajes sin memoria compartida.
- to_dist
- Función integrada de AgentScope que convierte un flujo de trabajo multiagente centralizado y creado secuencialmente en un pipeline de ejecución distribuida mediante proxies y marcadores de posición.
- Placeholders
- Tokens de respuesta asíncronos que los agentes proxy devuelven de inmediato para que los orquestadores sigan ejecutándose sin bloquearse esperando las respuestas de los workers remotos.
- Agent-Manager
- Panel de control visual web centralizado e infraestructura de servidores daemon utilizada para desplegar, observar y gestionar el ciclo de vida de los agentes a través de nodos de clúster remotos.
- Guess 2/3 of the Average
- Benchmark clásico de teoría de juegos donde los jugadores eligen números en [0, 100] con el objetivo de acertar los 2/3 del promedio general, el cual posee un equilibrio de Nash teórico en 0.
- Many-to-One Multi-Process Mode
- Modo de ejecución de AgentScope donde múltiples agentes residen en un único proceso del sistema operativo para compartir hilos, núcleos de CPU y puertos de red durante las esperas de I/O.
Preguntas
¿Cuántos agentes puede simular AgentScope de forma simultánea?
Los autores demostraron simulaciones con hasta 1.000.000 de agentes activos ejecutándose en 4 nodos físicos de clúster (cada uno equipado con 8 GPUs A100-80G).
¿Cómo evita AgentScope las limitaciones del GIL de Python en paralelismo a gran escala?
Implementa un multiprocesamiento basado en actores con dos modos de ejecución: uno a uno (un proceso por agente) para tareas de cómputo intensivo, y muchos a uno (múltiples agentes compartiendo un proceso) para esperas de llamadas a APIs y tareas limitadas por I/O, evitando la contención del GIL mediante llamadas a procedimientos remotos (RPC).
¿Cómo se generan poblaciones de agentes realistas?
Los usuarios proporcionan distribuciones demográficas de alto nivel (como educación, género, edad y ocupación) en un archivo de configuración, que un pipeline de metaprompts impulsado por LLM muestrea y expande en biografías de personajes detalladas.
¿Qué sucede cuando las reglas del juego se desvían de los benchmarks estándar de teoría de juegos?
Al alterar la proporción a 51/100 o cambiar la fórmula objetivo a 5 + 1/2 del promedio, los agentes inicialmente tuvieron dificultades debido a los conocimientos memorizados, pero añadir notas contextuales o prompts CoT permitió que modelos como Qwen2-72B y MistralAI-8x22B convergieran con éxito al nuevo equilibrio.
La explicación de esta página la escribió una IA a partir del artículo y puede contener errores. Consulte el artículo para los detalles.