XYZNOT

Artigos · arXiv 2407.17789

Simulação Multiagente em Altíssima Escala no AgentScope

Very Large-Scale Multi-Agent Simulation in AgentScope

Publicado em cs.MAcs.AI arXivPDF

Ler com tradução e IA

Resumo em três linhas

  1. 🎯 Plataformas de simulação multiagente enfrentam grandes gargalos em escalabilidade, diversidade populacional de agentes e ciclo de vida entre múltiplos dispositivos em escala massiva.
  2. 🔧 Implementa um mecanismo distribuído baseado em atores com modos de processo um-para-um e muitos-para-um, conversão automática de fluxo de trabalho via to_dist, ambientes multicamadas e gerador automático de personas.
  3. 📈 Simulou com sucesso 1 milhão de agentes em 4 nós multi-GPU em 12 minutos (Llama3-8B) e completou um benchmark sintético de 1M de agentes em apenas 40 segundos.

Resumo

Avanços recentes em modelos de linguagem de grande porte (LLMs) abriram novos caminhos para a aplicação de sistemas multiagente em simulações em altíssima escala. No entanto, ainda existem vários desafios na condução de simulações multiagente em plataformas existentes, como escalabilidade limitada, baixa eficiência, diversidade insuficiente de agentes e processos de gerenciamento que demandam muito esforço. Para enfrentar esses desafios, desenvolvemos novos recursos e componentes para o AgentScope, uma plataforma multiagente amigável, aumentando sua conveniência e flexibilidade para dar suporte a simulações multiagente em altíssima escala. Especificamente, propomos um mecanismo distribuído baseado em atores como infraestrutura tecnológica fundamental para alcançar alta escalabilidade e eficiência, oferecendo suporte a ambientes flexíveis para simular diversos cenários do mundo real, o que viabiliza a execução paralela de múltiplos agentes, conversão automática de fluxo de trabalho para implantação distribuída e interações inter-agente e agente-ambiente. Além disso, integramos uma ferramenta configurável fácil de usar e um pipeline de geração automática de perfis no AgentScope, simplificando a criação de agentes com históricos diversificados e detalhados. Por fim, fornecemos uma interface web para monitorar e gerenciar com facilidade um grande número de agentes distribuídos entre múltiplos dispositivos. Realizamos uma simulação abrangente para demonstrar a eficácia desses aprimoramentos propostos no AgentScope e apresentamos observações detalhadas e discussões aprofundadas para destacar o grande potencial da aplicação de sistemas multiagente em simulações de grande escala. O código-fonte foi disponibilizado no GitHub em https://github.com/modelscope/agentscope/tree/main/examples/paper_large_scale_simulation para inspirar futuras pesquisas e desenvolvimentos em simulações multiagente de larga escala.

Resumo 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.

Guia de leitura

Problema e motivação

Agentes baseados em modelos de linguagem de grande porte (LLMs) possibilitam simulações interativas e realistas sem a necessidade de programação manual extensiva de regras. Contudo, escalar simulações multiagente para tamanhos demográficos realistas revela três gargalos críticos:

  1. Limites de escalabilidade e eficiência: A execução centralizada e o Global Interpreter Lock (GIL) do Python restringem a execução dos agentes. Frameworks de atores existentes (ex.: Ray) criam um novo processo para cada ator, desperdiçando recursos ao lidar com milhões de agentes leves e limitados por I/O (I/O-bound).
  2. Distribuições populacionais insatisfatórias e falta de diversidade de agentes: Agentes com prompts de histórico simples e idênticos comportam-se de forma homogênea, falhando em representar distribuições demográficas realistas (ex.: por escolaridade, idade ou ocupação).
  3. Dificuldade de gerenciamento: Orquestrar, inicializar, monitorar e encerrar centenas de milhares ou milhões de agentes distribuídos em clusters demanda uma sobrecarga operacional substancial.

Ideias-chave

  • Arquitetura distribuída baseada em atores: Os agentes computam de forma independente como atores. A plataforma suporta mapeamentos de um-para-um (um agente por processo, contornando o GIL para tarefas pesadas de computação) e muitos-para-um (agentes compartilham processos, maximizando o compartilhamento de tempo dos núcleos de CPU durante esperas de I/O).
  • Conversão distribuída sem refatoração (to_dist): Usuários escrevem fluxos de trabalho centralizados, que são convertidos de forma transparente em configurações distribuídas usando proxies locais e placeholders assíncronos de mensagens.
  • Ambiente como um agente: Os ambientes são modelados como agentes especializados que suportam manutenção de estado, acesso de alta concorrência via RPC, gatilhos bidirecionais (por meio de ouvintes/listeners) e estruturas multicamadas aninhadas para simulações em nível de grupo.
  • Pipeline configurável de população heterogênea: Usuários definem distribuições demográficas em arquivos de configuração, e um pipeline de metaprompt com LLM gera personas diversas e individualizadas para os agentes.
  • Agent-Manager: Uma interface gráfica web e uma rede de servidores remotos persistentes para implantar, monitorar e limpar agentes nos nós do cluster.

Método

Execução Distribuída & Conversão Automática

No AgentScope, agentes independentes executam de forma concorrente. Quando um pipeline centralizado é marcado com .to_dist(), duas etapas ocorrem:

  1. Agentes distribuídos são instanciados nos workers remotos; objetos proxy leves permanecem no orquestrador central.
  2. Os proxies retornam placeholders de mensagem imediatamente ao receber uma chamada. Agentes downstream só bloqueiam a execução quando inspecionam placeholders que dependem de computação pendente de agentes anteriores.

Dinâmica de Simulação

A plataforma avalia o raciocínio multiagente no clássico jogo de "adivinhar da média". Cada agente submete . O alvo vencedor é: Quando iterado sob conhecimento comum de racionalidade, o único equilíbrio de Nash converge para . Em experimentos alternativos para testar a generalização além dos dados de treinamento prévio, a regra-alvo foi ajustada para: Definir resulta em um equilíbrio de Nash diferente de zero:

Resultados

  • Escalabilidade: Uma simulação de 1.000.000 de agentes foi concluída em 12 minutos utilizando 4 nós (cada um com 8 GPUs A100-80G, 64 núcleos de CPU, 1 TB de RAM) usando Llama3-8B com prompts básicos, e em 85 minutos com Chain-of-Thought (CoT) prompting (o que expandiu o volume de tokens em mais de 150 vezes). Em um benchmark computacional sintético que eliminou a latência de inferência do LLM, 1M de agentes rodou em 40 segundos, em comparação com 8,6 horas via I/O assíncrono padrão do Python e ~12 dias via execução serial.
  • Escalabilidade horizontal: Com 10.000 agentes fixos por dispositivo, o tempo total de execução permaneceu constante à medida que o tamanho do cluster aumentou de 1 para 4 nós.
  • Prompting e profundidade de raciocínio: Sob prompting básico, a maioria dos modelos indicou números em torno de 50 (embora MistralAI-8x7B tenha registrado média de 36,63 e MistralAI-8x22B de 31,69). Adicionar instruções CoT empurrou as respostas em direção a 0 (os números vencedores do Qwen2-72B caíram de 33,70 para 12,76, e as médias da 5ª rodada em múltiplas iterações caíram de 25,16 para 2,02).
  • Demografia e papéis: Níveis de escolaridade mais altos atribuídos aos agentes produziram sistematicamente palpites mais baixos e mais ótimos do ponto de vista da teoria dos jogos (agentes com nível de doutorado reportaram números mais baixos do que agentes com nível de ensino fundamental). Ocupações como professores de teoria dos jogos e economistas reportaram os menores números.
  • Variantes: Quando o equilíbrio foi deslocado para 10 (), os agentes convergiram iterativamente em torno de 10 ao longo de várias rodadas.

Limitações e questões em aberto

  • Inconsistência de role-playing em casos extremos: Quando instruídos a agir como uma criança de 7 anos, os agentes ainda executavam aritmética em múltiplas etapas e raciocínio recursivo incompatíveis com a persona.
  • Erros de aritmética simples: Os agentes ocasionalmente cometeram deslizes em cálculos básicos (especialmente envolvendo frações ou decimais), mesmo quando a lógica do raciocínio estratégico estava correta.
  • Sensibilidade a priors do treinamento: Mudar a fração-alvo de para degradou o desempenho porque os modelos dependiam de padrões memorizados da teoria dos jogos; o desempenho só se recuperou quando os prompts declararam explicitamente que o jogo era uma variante de "adivinhar da média".

Termos-chave

AgentScope
Plataforma multiagente projetada para aplicações baseadas em LLM, estendida aqui para suportar simulações distribuídas em altíssima escala.
Actor Model
Paradigma de computação concorrente onde cada ator funciona como uma unidade computacional autônoma que se comunica por meio de troca de mensagens sem memória compartilhada.
to_dist
Função integrada do AgentScope que converte um fluxo de trabalho multiagente centralizado e sequencial em um pipeline de execução distribuída usando proxies e placeholders.
Placeholders
Tokens de resposta assíncrona retornados imediatamente por agentes proxy para que os orquestradores continuem executando sem bloquear à espera de respostas de workers remotos.
Agent-Manager
Painel visual baseado em web centralizado e infraestrutura de servidores daemon usados para implantar, observar e gerenciar o ciclo de vida de agentes em nós remotos de cluster.
Guess 2/3 of the Average
Benchmark clássico de teoria dos jogos em que os jogadores escolhem números em [0, 100] visando acertar 2/3 da média geral, tendo 0 como equilíbrio de Nash teórico.
Many-to-One Multi-Process Mode
Modo de execução do AgentScope onde múltiplos agentes residem em um único processo do sistema operacional para compartilhar threads, núcleos de CPU e portas de rede durante esperas de I/O.

Perguntas

Quantos agentes o AgentScope consegue simular simultaneamente?

Os autores demonstraram simulações com até 1.000.000 de agentes ativos executando em 4 nós de cluster físicos (cada um equipado com 8 GPUs A100-80G).

Como o AgentScope evita as limitações do GIL do Python em paralelismo de larga escala?

Ele implementa multiprocessamento baseado em atores com dois modos de execução: um-para-um (um processo por agente) para tarefas computacionalmente intensivas e muitos-para-um (múltiplos agentes compartilhando um processo) para esperas de API e tarefas vinculadas a I/O, evitando a contenção do GIL por meio de chamadas de procedimento remoto (RPC).

Como populações realistas de agentes são geradas?

Os usuários fornecem distribuições demográficas de alto nível (como escolaridade, gênero, idade e ocupação) em um arquivo de configuração, que um pipeline de metaprompts orientado por LLM amostra e expande em biografias detalhadas de personagens.

O que acontece quando as regras do jogo se desviam dos benchmarks padrão de teoria dos jogos?

Ao alterar a proporção para 51/100 ou modificar a fórmula de alvo para 5 + 1/2 da média, os agentes inicialmente tiveram dificuldades devido a priors memorizados, mas a adição de notas contextuais ou prompts CoT permitiu que modelos como Qwen2-72B e MistralAI-8x22B convergissem com sucesso para o equilíbrio deslocado.

A explicação desta página foi escrita por IA a partir do artigo e pode conter erros. Consulte o artigo para os detalhes.

Ler com tradução e IA