Paper · arXiv 2407.17789
Very Large-Scale Multi-Agent Simulation in AgentScope
Veröffentlicht cs.MAcs.AI arXivPDF
Zusammenfassung in drei Zeilen
- 🎯 Multi-Agenten-Simulationsplattformen stoßen bei enormen Maßstäben auf erhebliche Engpässe in Bezug auf Skalierbarkeit, Diversität der Population und Lebenszyklusmanagement über mehrere Geräte hinweg.
- 🔧 Implementiert einen Actor-basierten verteilten Mechanismus mit Eins-zu-Eins- und Viele-zu-Eins-Prozessmodi, automatischer Workflow-Konvertierung via to_dist, mehrschichtigen Umgebungen und einem automatisierten Persona-Generator.
- 📈 Simulierte erfolgreich 1 Million Agenten auf 4 Multi-GPU-Knoten in 12 Minuten (Llama3-8B) und absolvierte einen Dummy-Benchmark mit 1 Mio. Agenten in nur 40 Sekunden.
Abstract
Jüngste Fortschritte bei großen Sprachmodellen (LLMs) haben neue Möglichkeiten für den Einsatz von Multi-Agenten-Systemen in sehr großen Simulationen eröffnet. Bei der Durchführung von Multi-Agenten-Simulationen mit bestehenden Plattformen gibt es jedoch noch einige Herausforderungen, wie z. B. begrenzte Skalierbarkeit und geringe Effizienz, unzureichende Agentendiversität sowie arbeitsintensive Verwaltungsprozesse. Um diese Herausforderungen zu bewältigen, entwickeln wir mehrere neue Funktionen und Komponenten für AgentScope, eine benutzerfreundliche Multi-Agenten-Plattform, die deren Komfort und Flexibilität zur Unterstützung extrem umfangreicher Multi-Agenten-Simulationen verbessert. Konkret schlagen wir einen Actor-basierten verteilten Mechanismus als grundlegende technologische Infrastruktur für hohe Skalierbarkeit und Effizienz vor und bieten flexible Umgebungsunterstützung zur Simulation verschiedener realer Szenarien. Dies ermöglicht die parallele Ausführung mehrerer Agenten, eine automatische Workflow-Konvertierung für die verteilte Bereitstellung sowie Interaktionen sowohl zwischen Agenten als auch zwischen Agenten und ihrer Umgebung. Darüber hinaus integrieren wir ein einfach zu bedienendes konfigurierbares Werkzeug und eine automatische Pipeline zur Hintergrundgenerierung in AgentScope, was die Erstellung von Agenten mit vielfältigen, detaillierten Hintergrundeinstellungen vereinfacht. Nicht zuletzt stellen wir eine webbasierte Oberfläche zur bequemen Überwachung und Verwaltung einer großen Anzahl von Agenten bereit, die über mehrere Geräte hinweg bereitgestellt werden können. Wir führen eine umfassende Simulation durch, um die Wirksamkeit dieser vorgeschlagenen Erweiterungen in AgentScope zu demonstrieren, und liefern detaillierte Beobachtungen und aufschlussreiche Diskussionen, um das große Potenzial des Einsatzes von Multi-Agenten-Systemen in großskaligen Simulationen hervorzuheben. Der Quellcode ist auf GitHub unter https://github.com/modelscope/agentscope/tree/main/examples/paper_large_scale_simulation veröffentlicht, um weitere Forschung und Entwicklung im Bereich großskaliger Multi-Agenten-Simulationen anzuregen.
Original-Abstract (Englisch)
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.
Leseleitfaden
Problem und Motivation
Agenten auf Basis großer Sprachmodelle (LLMs) ermöglichen interaktive und realistische Simulationen ohne aufwendige manuelle Regelprogrammierung. Die Skalierung von Multi-Agenten-Simulationen auf realistische demografische Größenordnungen offenbart jedoch drei kritische Engpässe:
- Grenzen der Skalierbarkeit und Effizienz: Eine zentralisierte Ausführung und das Global Interpreter Lock (GIL) von Python behindern die Ausführung der Agenten. Bestehende Actor-Frameworks (z. B. Ray) starten pro Actor einen neuen Prozess, was beim Verwalten von Millionen leichtgewichtiger, I/O-gebundener Agenten Ressourcen verschwendet.
- Unzureichende Populationsverteilungen und Agentendiversität: Agenten mit einfachen, identischen Hintergrund-Prompts verhalten sich homogen und spiegeln keine realistischen demografischen Verteilungen wider (z. B. hinsichtlich Bildung, Alter oder Beruf).
- Schwieriges Management: Die Orchestrierung, das Starten, Überwachen und Beenden von Hunderttausenden oder Millionen von Agenten, die über Cluster verteilt sind, erfordert einen erheblichen Betriebsaufwand.
Kernideen
- Actor-basierte verteilte Architektur: Agenten rechnen unabhängig als Actors. Die Plattform unterstützt sowohl Eins-zu-Eins-Zuordnungen (ein Agent pro Prozess, wodurch das GIL für rechenintensive Aufgaben umgangen wird) als auch Viele-zu-Eins-Zuordnungen (mehrere Agenten teilen sich Prozesse, wodurch das Time-Sharing der CPU-Kerne während I/O-Wartezeiten maximiert wird).
- Verteilte Konvertierung ohne Refaktorisierung (
to_dist): Benutzer verfassen zentralisierte Workflows, die mithilfe lokaler Proxys und asynchroner Nachrichten-Platzhalter transparent in verteilte Setups umgewandelt werden. - Umgebung als Agent: Umgebungen werden als spezialisierte Agenten modelliert, die Zustandshaltung, hochparallelen Zugriff via RPC, bidirektionale Trigger (über Listener) und verschachtelte mehrschichtige Strukturen für Simulationen auf Gruppenebene unterstützen.
- Konfigurierbare Pipeline für heterogene Populationen: Benutzer definieren demografische Verteilungen in Konfigurationsdateien, und eine LLM-Meta-Prompt-Pipeline generiert vielfältige, individualisierte Agenten-Personas.
- Agent-Manager: Eine webbasierte grafische Oberfläche und ein persistentes Remote-Server-Netzwerk zum Bereitstellen, Überwachen und Bereinigen von Agenten über Clusterknoten hinweg.
Methode
Verteilte Ausführung & automatische Konvertierung
In AgentScope werden unabhängige Agenten nebenläufig ausgeführt. Wenn eine zentralisierte Pipeline mit .to_dist() versehen wird, laufen zwei Phasen ab:
- Verteilte Agenten werden über Remote-Worker hinweg instanziiert; leichtgewichtige Proxy-Objekte verbleiben auf dem zentralen Orchestrator.
- Proxys geben beim Empfang eines Aufrufs sofort Nachrichten-Platzhalter zurück. Nachgelagerte Agenten blockieren erst dann, wenn sie Platzhalter abfragen, die auf noch ausstehende Berechnungen vorangegangener Agenten verweisen.
Simulationsdynamik
Die Plattform evaluiert das Schließen von Multi-Agenten-Systemen anhand des klassischen Spiels „Errate des Durchschnitts“. Jeder Agent gibt eine Zahl ab. Das Gewinnziel lautet: Bei wiederholter Ausführung unter der Annahme gemeinsamer Rationalität konvergiert das eindeutige Nash-Gleichgewicht gegen . In alternativen Experimenten, die die Generalisierung über vorherige Trainingsdaten hinaus testen, wurde die Zielregel wie folgt angepasst: Das Setzen von ergibt ein von Null verschiedenes Nash-Gleichgewicht:
Ergebnisse
- Skalierbarkeit: Eine Simulation mit 1.000.000 Agenten wurde in 12 Minuten auf 4 Knoten (jeweils mit 8 A100-80G GPUs, 64 CPU-Kernen, 1 TB RAM) unter Verwendung von Llama3-8B mit Basis-Prompts abgeschlossen, und in 85 Minuten mit Chain-of-Thought (CoT)-Prompting (was die Token-Zahl um mehr als das 150-Fache erhöhte). In einem Dummy-Rechenbenchmark ohne LLM-Inferenzlatenz liefen 1 Mio. Agenten in 40 Sekunden, verglichen mit 8,6 Stunden über standardmäßiges asynchrones Python-I/O und ~12 Tagen bei serieller Ausführung.
- Horizontale Skalierung: Bei konstanten 10.000 Agenten pro Gerät blieb die Gesamtlaufzeit konstant, als die Clustergröße von 1 auf 4 Knoten erhöht wurde.
- Prompting & Argumentationstiefe: Unter Basis-Prompting gaben die meisten Modelle Werte um 50 an (wobei MistralAI-8x7B durchschnittlich 36,63 und MistralAI-8x22B durchschnittlich 31,69 erreichten). Das Hinzufügen von CoT-Anweisungen verschob die Werte in Richtung 0 (die Gewinnzahlen von Qwen2-72B fielen von 33,70 auf 12,76, und die Durchschnitte in Runde 5 bei mehreren Runden sanken von 25,16 auf 2,02).
- Demografie & Rollen: Höhere zugewiesene Bildungsniveaus führten systematisch zu niedrigeren, spieltheoretisch optimaleren Schätzungen (Agenten mit Doktortitel nannten niedrigere Zahlen als Agenten mit Grundschulbildung). Berufe wie Spieltheorie-Professoren und Wirtschaftswissenschaftler nannten die niedrigsten Zahlen.
- Varianten: Wenn das Gleichgewicht auf 10 verschoben wurde (), konvergierten die Agenten über mehrere Runden hinweg iterativ um 10.
Grenzen und offene Fragen
- Inkonsistenz beim Rollenspiel in Grenzfällen: Wenn Agenten angewiesen wurden, sich wie ein 7-jähriges Kind zu verhalten, führten sie dennoch mehrschrittige Arithmetik und rekursive Schlussfolgerungen durch, die der Persona widersprachen.
- Einfache Rechenfehler: Agenten machten gelegentlich grundlegende Rechenfehler (insbesondere bei Brüchen oder Dezimalzahlen), selbst wenn ihre strategische Argumentationslogik fehlerfrei war.
- Sensitivität gegenüber Trainings-Priors: Das Ändern des Zielverhältnisses von auf verschlechterte die Leistung, da sich die Modelle auf auswendig gelernte spieltheoretische Muster stützten; die Leistung erholte sich erst, wenn in den Prompts explizit angegeben wurde, dass das Spiel eine Variante von „Errate des Durchschnitts“ war.
Schlüsselbegriffe
- AgentScope
- Eine für LLM-basierte Anwendungen entwickelte Multi-Agenten-Plattform, die hier erweitert wurde, um sehr große verteilte Simulationen zu unterstützen.
- Actor Model
- Ein Paradigma der nebenläufigen Berechnung, bei dem jeder Actor als autonome Recheneinheit agiert, die über den Austausch von Nachrichten ohne gemeinsamen Speicher kommuniziert.
- to_dist
- Eine integrierte AgentScope-Funktion, die einen zentralisierten, sequenziell erstellten Multi-Agenten-Workflow mithilfe von Proxys und Platzhaltern in eine verteilte Ausführungspipeline konvertiert.
- Placeholders
- Asynchrone Antwort-Token, die von Proxy-Agenten sofort zurückgegeben werden, damit Orchestratoren die Ausführung fortsetzen können, ohne auf Antworten von Remote-Workern zu blockieren.
- Agent-Manager
- Ein zentralisiertes, webbasiertes visuelles Dashboard samt Daemon-Server-Infrastruktur, um den Lebenszyklus von Agenten über entfernte Clusterknoten hinweg bereitzustellen, zu beobachten und zu verwalten.
- Guess 2/3 of the Average
- Ein klassischer spieltheoretischer Benchmark, bei dem die Spieler Zahlen in [0, 100] wählen mit dem Ziel, 2/3 des Gesamtdurchschnitts zu treffen; das theoretische Nash-Gleichgewicht liegt bei 0.
- Many-to-One Multi-Process Mode
- Ein AgentScope-Ausführungsmodus, bei dem mehrere Agenten in einem einzigen Betriebssystemprozess residieren, um Threads, CPU-Kerne und Netzwerkports während I/O-Wartezeiten gemeinsam zu nutzen.
Fragen
Wie viele Agenten kann AgentScope gleichzeitig simulieren?
Die Autoren demonstrierten Simulationen mit bis zu 1.000.000 aktiven Agenten, die über 4 physische Clusterknoten (jeweils mit 8 A100-80G GPUs ausgestattet) liefen.
Wie umgeht AgentScope die Einschränkungen des Python GIL bei großskaliger Parallelität?
Es implementiert Actor-basiertes Multiprocessing mit zwei Ausführungsmodi: Eins-zu-Eins (ein Prozess pro Agent) für rechenintensive Aufgaben und Viele-zu-Eins (mehrere Agenten teilen sich einen Prozess) für API-Wartezeiten und I/O-gebundene Aufgaben, wodurch GIL-Konflikte über Remote Procedure Calls vermieden werden.
Wie werden realistische Agentenpopulationen generiert?
Benutzer geben übergeordnete demografische Verteilungen (wie Bildung, Geschlecht, Alter und Beruf) in einer Konfigurationsdatei an, die von einer LLM-gestützten Meta-Prompt-Pipeline abgetastet und zu detaillierten Charakterbiografien erweitert werden.
Was passiert, wenn die Spielregeln von Standard-Benchmarks der Spieltheorie abweichen?
Bei einer Änderung des Verhältnisses auf 51/100 oder einer Verschiebung der Zielformel auf 5 + 1/2 des Durchschnitts hatten die Agenten aufgrund auswendig gelernter Vorannahmen zunächst Schwierigkeiten. Das Hinzufügen von Kontext oder CoT-Prompts ermöglichte es Modellen wie Qwen2-72B und MistralAI-8x22B jedoch, erfolgreich zum verschobenen Gleichgewicht zu konvergieren.
Die Übersicht auf dieser Seite wurde von einer KI aus dem Paper erstellt und kann Fehler enthalten. Details stehen im Paper.