論文 · arXiv 2407.17789
AgentScopeにおける超大規模マルチエージェントシミュレーション
Very Large-Scale Multi-Agent Simulation in AgentScope
3行まとめ
- 🎯 マルチエージェントシミュレーションプラットフォームは、超大規模環境におけるスケーラビリティ、エージェント母集団の多様性、マルチデバイスでのライフサイクル管理において大きなボトルネックに直面しています。
- 🔧 1対1および多対1のプロセスマードを持つアクターベースの分散メカニズム、to_distによるワークフローの自動変換、多層環境、自動ペルソナジェネレーターを実装しました。
- 📈 4台のマルチGPUデバイスにまたがる100万エージェントのシミュレーションを12分(Llama3-8B)で成功させ、ダミーの100万エージェントベンチマークをわずか40秒で完了しました。
概要
大規模言語モデル(LLM)の最近の進展により、マルチエージェントシステムを超大規模シミュレーションに応用するための新たな道が開かれました。しかし、既存のプラットフォームを用いたマルチエージェントシミュレーションには、スケーラビリティの限界や低い効率性、不十分なエージェントの多様性、手間のかかる管理プロセスなど、いくつかの課題が残されています。これらの課題に対処するため、使い勝手に優れたマルチエージェントプラットフォームであるAgentScopeにいくつかの新機能とコンポーネントを開発し、超大規模シミュレーションをサポートするための利便性と柔軟性を向上させました。具体的には、高いスケーラビリティと高効率を実現する基盤技術インフラとしてアクターベースの分散メカニズムを提案し、様々な実世界のシナリオをシミュレートするための柔軟な環境サポートを提供します。これにより、複数エージェントの並行実行、分散デプロイのためのワークフロー自動変換、エージェント間およびエージェント-環境間のインタラクションが可能になります。さらに、使いやすい設定ツールと自動背景生成パイプラインをAgentScopeに統合し、多様かつ詳細な背景設定を持つエージェントの作成プロセスを簡素化しました。最後に、複数デバイスにまたがってデプロイされる可能性がある大量のエージェントを簡便に監視・管理するためのWebベースのインターフェースを提供します。AgentScopeにおけるこれら機能強化の有効性を実証するために包括的なシミュレーションを実施し、大規模シミュレーションにおけるマルチエージェントシステムの応用の大きな可能性を浮き彫りにする詳細な観察結果と洞察に満ちた議論を提供します。大規模マルチエージェントシミュレーションのさらなる研究と開発を促進するため、ソースコードはGitHub(https://github.com/modelscope/agentscope/tree/main/examples/paper_large_scale_simulation)で公開されています。
英語の原文概要
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.
論文解説
問題意識と動機
大規模言語モデル(LLM)エージェントにより、膨大な手動ルールプログラミングを行わずに、インタラクティブでリアルなシミュレーションが可能になりました。しかし、マルチエージェントシミュレーションを現実的な人口規模にスケールアップすると、以下の3つの重大なボトルネックが浮き彫りになります:
- スケーラビリティと効率の限界: 集中型の実行方式とPythonのグローバルインタプリタロック(GIL)がエージェントの実行を妨げます。既存のアクターフレームワーク(Rayなど)はアクターごとに新しいプロセスを立ち上げるため、軽量でI/Oバウンドなエージェントを数百万人規模で処理する際にリソースを浪費します。
- 不十分な人口分布とエージェントの多様性: 単純で同一の背景プロンプトを持つエージェントは均質に行動し、教育水準、年齢、職業などの現実的な人口動態分布を再現できません。
- 運用の難しさ: クラスタ全体に分散された数十万または数百万のエージェントをオーケストレーション、起動、監視、終了するには、多大な運用コストが必要になります。
主なアイデア
- アクターベースの分散アーキテクチャ: エージェントはアクターとして独立して計算を行います。プラットフォームは、1対1(プロセスごとに1エージェント、計算負荷の高いタスクでGILを回避)と多対1(エージェントがプロセスを共有し、I/O待機中のCPUコアのタイムシェアリングを最大化)の両方のマッピングをサポートします。
- リファクタリング不要の分散変換(
to_dist): ユーザーは集中型ワークフローを作成するだけで、ローカルプロキシと非同期メッセージプレースホルダーを介して、透過的に分散環境構成に変換されます。 - エージェントとしての環境: 環境は、状態維持、RPCによる高並行アクセス、双方向トリガー(リスナー経由)、グループ単位シミュレーションのための入れ子構造(多層構造)をサポートする特殊なエージェントとしてモデル化されます。
- 設定可能な異種母集団生成パイプライン: ユーザーが設定ファイルで人口動態分布を定義すると、LLMメタプロンプトパイプラインが多様で個別化されたエージェントペルソナを生成します。
- Agent-Manager: クラスタノード全体にわたるエージェントのデプロイ、監視、クリーンアップを行うためのWebベースのグラフィカルインターフェースおよび常駐リモートサーバーネットワークを提供します。
手法
分散実行と自動変換
AgentScopeでは、独立したエージェントが並行して実行されます。集中型パイプラインに.to_dist()のタグが付けられると、次の2つの段階が発生します:
- 分散エージェントがリモートワーカー上で起動し、軽量プロキシオブジェクトが中央のオーケストレーター上に残ります。
- プロキシは呼び出しを受け取ると直ちにメッセージプレースホルダーを返します。ダウンストリームのエージェントは、先行エージェントの保留中の計算を指すプレースホルダーを参照するときにのみブロック(待機)します。
シミュレーションダイナミクス
本プラットフォームは、古典的な「平均のを当てるゲーム」を用いてマルチエージェントの推論能力を評価します。各エージェントはを提出します。勝利目標値は以下の通りです: 合理性の共通知識のもとで反復されると、唯一のナッシュ均衡はに収束します。事前学習データの単なる記憶を超えた汎化性能を検証する別の実験では、目標ルールが次のように変更されました: と置くことで、ゼロ以外のナッシュ均衡が得られます:
結果
- スケーラビリティ: 1,000,000エージェントのシミュレーションが、Llama3-8Bと基本プロンプトを用いた場合、4ノード(各ノードに8 A100-80G GPU、64 CPUコア、1 TB RAM)を使用して12分で完了し、Chain-of-Thought (CoT) プロンプト(トークン数が150倍以上に増加)を用いた場合は85分で完了しました。LLMの推論遅延を除去したダミー計算ベンチマークでは、標準のPython非同期I/Oで8.6時間、逐次実行で約12日かかるところ、100万エージェントを40秒で処理しました。
- 水平スケーリング: デバイスあたり固定10,000エージェントの条件下で、クラスタサイズを1ノードから4ノードに増やしても、全体の実行時間は一定のままでした。
- プロンプティングと推論深度: 基本プロンプト下では、ほとんどのモデルが50前後の値を回答しました(ただしMistralAI-8x7Bは平均36.63、MistralAI-8x22Bは平均31.69でした)。CoT指示を追加すると回答は0に向かってシフトしました(Qwen2-72Bの勝利数値は33.70から12.76に低下し、マルチラウンドの第5ラウンド平均は25.16から2.02に低下しました)。
- 人口動態と役割: 高い教育水準を割り当てられたエージェントほど、系統的により低くゲーム理論的に最適な推論値を提出しました(博士号エージェントは小学校エージェントよりも低い数値を回答)。ゲーム理論の教授や経済学者などの職業が最も低い数値を報告しました。
- ルールのバリエーション: 均衡が10にシフトされた場合()、エージェントは複数ラウンドにわたって繰り返し推論することで10の周辺に収束しました。
限界点と未解決の課題
- 極端なケースにおけるロールプレイの不整合: 7歳の子どもとして振る舞うようプロンプトを与えられた場合でも、エージェントは設定と矛盾する多段階の算術や再帰的推論を実行してしまいました。
- 単純な算術エラー: 戦略的推論ロジックが健全である場合でも、エージェントは基本的な計算ミス(特に分数や小数を含む計算)を時折犯しました。
- 学習バイアスへの感度: 目標比率をからに変更すると、モデルが記憶されたゲーム理論パターンに頼っていたため性能が低下しました。この性能は、プロンプトでこのゲームが「平均のを当てるゲーム」の変種であると明示的に記述した場合にのみ回復しました。
重要用語
- AgentScope
- LLMベースのアプリケーション向けに設計されたマルチエージェントプラットフォーム。超大規模な分散シミュレーションをサポートするために拡張された。
- Actor Model
- 各アクターが共有メモリを持たずメッセージパッシングを介して通信する自律的な計算単位として機能する並行計算パラダイム。
- to_dist
- 集中型で逐次的に書かれたマルチエージェントワークフローを、プロキシとプレースホルダーを使用して分散実行パイプラインに自動変換するAgentScopeの組み込み関数。
- Placeholders
- オーケストレーターがリモートワーカーの応答を待ってブロックされることなく実行を継続できるように、プロキシエージェントから即座に返される非同期レスポンストークン。
- Agent-Manager
- リモートクラスタノード全体にわたるエージェントのデプロイ、監視、ライフサイクル管理を行うための、集中型のWebベース視覚ダッシュボードおよびデーモンサーバーインフラ。
- Guess 2/3 of the Average
- プレイヤーが全体の平均値の2/3を狙って[0, 100]から数字を選択する古典的なゲーム理論のベンチマーク。理論上のナッシュ均衡は0となる。
- Many-to-One Multi-Process Mode
- I/O待機中にスレッド、CPUコア、ネットワークポートを共有するために、複数のエージェントが単一のOSプロセス内に常駐するAgentScopeの実行モード。
よくある質問
AgentScopeは同時にいくつのエージェントをシミュレートできますか?
著者らは、4つの物理クラスタノード(それぞれ8基のA100-80G GPUを搭載)にまたがって、最大1,000,000のアクティブエージェントを実行するシミュレーションを実証しました。
AgentScopeは大規模並行処理においてPythonのGILの制限をどのように回避していますか?
アクターベースのマルチプロセッシングを実装し、計算集約型のタスク向けには1対1(エージェントごとに1プロセス)、API待機やI/Oバウンドのタスク向けには多対1(複数のエージェントが1つのプロセスを共有)という2つの実行モードを用意し、リモートプロシージャコール(RPC)を介してGILの競合を回避しています。
リアルなエージェント母集団はどのように生成されますか?
ユーザーが設定ファイルで人口動態分布(教育水準、性別、年齢、職業など)を指定し、LLM主導のメタプロンプトパイプラインがそれをサンプリングして詳細なキャラクターの経歴へと拡張します。
ゲームのルールが標準的なゲーム理論のベンチマークから外れた場合はどうなりますか?
比率を51/100に変更したり、目標式を「5 + 平均の1/2」にシフトさせたりすると、学習時の記憶バイアスによってエージェントは当初苦戦しました。しかし、文脈を補足する注記やCoTプロンプトを追加することで、Qwen2-72BやMistralAI-8x22Bなどのモデルはシフトした均衡へ正しく収束することができました。
このページの解説は AI が論文から作成したもので、誤りを含む場合があります。詳細は原文をご確認ください。