논문 · arXiv 2407.17789
AgentScope 기반의 초거대 규모 멀티 에이전트 시뮬레이션
Very Large-Scale Multi-Agent Simulation in AgentScope
세 줄 요약
- 🎯 멀티 에이전트 시뮬레이션 플랫폼은 대규모 환경에서 확장성, 에이전트 개체군의 다양성, 다중 디바이스 수명 주기 관리 측면의 심각한 병목 현상에 직면해 있습니다.
- 🔧 일대일(one-to-one) 및 다대일(many-to-one) 프로세스 모드를 지원하는 액터 기반 분산 메커니즘, to_dist를 통한 자동 워크플로 변환, 다층 환경 및 자동 페르소나 생성기를 구현합니다.
- 📈 4대의 멀티 GPU 디바이스에서 12분 만에 100만 에이전트 시뮬레이션(Llama3-8B)을 성공적으로 수행했으며, 더미 100만 에이전트 벤치마크를 단 40초 만에 완료했습니다.
초록
최근 대형 언어 모델(LLM)의 발전은 초거대 규모 시뮬레이션에 멀티 에이전트 시스템을 적용할 수 있는 새로운 가능성을 열었습니다. 그러나 기존 플랫폼을 활용해 멀티 에이전트 시뮬레이션을 수행할 때는 제한된 확장성과 낮은 효율성, 부족한 에이전트 다양성, 많은 노력이 소요되는 관리 프로세스 등의 여러 난제가 존재합니다. 이러한 문제를 해결하기 위해, 본 연구에서는 사용자 친화적인 멀티 에이전트 플랫폼인 AgentScope에 초거대 규모 시뮬레이션을 지원하기 위한 몇 가지 새로운 기능과 구성 요소를 개발하여 편의성과 유연성을 크게 향상시켰습니다. 구체적으로, 뛰어난 확장성과 고효율성을 달성하기 위한 기본 기술 인프라로 액터 기반 분산 메커니즘을 제안하고 다양한 실제 시나리오를 시뮬레이션할 수 있는 유연한 환경을 지원합니다. 이를 통해 다중 에이전트의 병렬 실행, 분산 배포를 위한 자동 워크플로 변환, 에이전트 간 및 에이전트-환경 간 상호작용을 가능하게 합니다. 또한, AgentScope에 사용하기 쉬운 설정 도구와 자동 배경 생성 파이프라인을 통합하여 다양하면서도 상세한 배경 설정을 가진 에이전트를 생성하는 과정을 간소화했습니다. 마지막으로, 여러 디바이스에 분산 배포될 수 있는 수많은 에이전트를 편리하게 모니터링하고 관리할 수 있는 웹 기반 인터페이스를 제공합니다. 본 논문에서는 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) 에이전트는 광범위한 수동 규칙 프로그래밍 없이도 상호작용적이고 현실적인 시뮬레이션을 가능하게 합니다. 그러나 멀티 에이전트 시뮬레이션을 현실적인 인구 통계학적 규모로 확장할 때 세 가지 치명적인 병목 현상이 발생합니다:
- 확장성 및 효율성의 한계: 중앙 집중식 실행 방식과 Python의 GIL(Global Interpreter Lock)은 에이전트 실행을 저해합니다. 기존 액터 프레임워크(예: Ray)는 액터마다 새 프로세스를 생성하므로, 수백만 개의 경량화된 I/O 바운드 에이전트를 처리할 때 자원을 낭비합니다.
- 불만족스러운 인구 분포 및 에이전트 다양성: 단순하고 동일한 배경 프롬프트를 가진 에이전트는 동질적으로 행동하므로 현실적인 인구 통계학적 분포(예: 학력, 연령, 직업 등)를 제대로 반영하지 못합니다.
- 관리의 어려움: 클러스터 전체에 분산된 수십만 또는 수백만 개의 에이전트를 오케스트레이션하고, 시작, 모니터링 및 종료하는 데 막대한 운영 오버헤드가 발생합니다.
핵심 아이디어
- 액터 기반 분산 아키텍처: 에이전트는 액터로서 독립적으로 계산을 수행합니다. 이 플랫폼은 연산 집약적 작업에서 GIL을 우회하기 위한 일대일(agent-per-process) 매핑과, I/O 대기 시간 동안 CPU 코어 시분할을 극대화하기 위한 다대일(에이전트가 프로세스를 공유) 매핑을 모두 지원합니다.
- 코드 수정 없는 분산 변환(
to_dist): 사용자가 중앙 집중식 워크플로를 작성하면, 로컬 프록시와 비동기 메시지 placeholder를 사용하여 분산 환경 설정으로 투명하게 변환됩니다. - 에이전트로서의 환경: 환경은 상태 유지, RPC를 통한 높은 동시성 접근, 리스너를 통한 양방향 트리거, 그룹 수준 시뮬레이션을 위한 중첩 다층 구조를 지원하는 특화된 에이전트로 모델링됩니다.
- 설정 가능한 이종 인구 집단 파이프라인: 사용자가 설정 파일에 인구 통계 분포를 정의하면, LLM 메타 프롬프트 파이프라인이 다양하고 개별화된 에이전트 페르소나를 생성합니다.
- Agent-Manager: 클러스터 노드 전반에서 에이전트를 배포, 모니터링 및 정리할 수 있는 웹 기반 그래픽 인터페이스와 영구 원격 서버 네트워크를 제공합니다.
방법론
분산 실행 및 자동 변환
AgentScope에서는 독립적인 에이전트들이 병렬로 실행됩니다. 중앙 집중식 파이프라인에 .to_dist() 태그가 지정되면 두 단계가 진행됩니다:
- 분산 에이전트가 원격 워커 전반에 생성되며, 중앙 오케스트레이터에는 경량 프록시 객체만 유지됩니다.
- 프록시는 호출을 수신하는 즉시 메시지 placeholder를 반환합니다. 다운스트림 에이전트는 선행 에이전트의 대기 중인 계산을 가리키는 placeholder를 검사할 때만 블로킹됩니다.
시뮬레이션 역학
본 플랫폼은 전통적인 "평균의 맞히기(guess of the average)" 게임을 통해 멀티 에이전트의 추론 능력을 평가합니다. 각 에이전트 는 을 제출합니다. 승리 목표는 다음과 같습니다: 합리성이 공통 지식이라는 가정 하에 게임이 반복되면 유일한 내시 균형은 으로 수렴합니다. 사전 학습 데이터를 넘어선 일반화 성능을 테스트하는 대체 실험에서는 목표 규칙이 다음과 같이 조정되었습니다: 로 두면 0이 아닌 내시 균형이 도출됩니다:
실험 결과
- 확장성: 1,000,000개 에이전트 시뮬레이션은 기본 프롬프트를 적용한 Llama3-8B를 사용하여 4개 노드(각 노드당 8 A100-80G GPU, 64 CPU 코어, 1 TB RAM 탑재)에서 12분 만에 완료되었으며, 토큰 수가 150배 이상 증가한 Chain-of-Thought (CoT) 프롬프팅 적용 시 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
- 중앙 집중식으로 순차 작성된 멀티 에이전트 워크플로를 프록시와 placeholder를 활용한 분산 실행 파이프라인으로 변환해 주는 AgentScope 내장 함수입니다.
- Placeholders
- 오케스트레이터가 원격 워커의 응답을 기다리며 블로킹되지 않고 계속 실행될 수 있도록 프록시 에이전트가 즉시 반환하는 비동기 응답 토큰입니다.
- Agent-Manager
- 원격 클러스터 노드 전반에서 에이전트의 수명 주기를 배포, 모니터링 및 관리하는 데 사용되는 중앙 집중식 웹 기반 시각적 대시보드 및 데몬 서버 인프라입니다.
- Guess 2/3 of the Average
- 플레이어들이 전체 평균의 2/3에 맞추는 것을 목표로 [0, 100] 범위 내의 숫자를 선택하는 전형적인 게임 이론 벤치마크로, 이론적 내시 균형은 0입니다.
- Many-to-One Multi-Process Mode
- I/O 대기 시간 동안 여러 에이전트가 단일 OS 프로세스에 상주하며 스레드, CPU 코어 및 네트워크 포트를 공유하는 AgentScope 실행 모드입니다.
자주 묻는 질문
AgentScope는 동시에 얼마나 많은 에이전트를 시뮬레이션할 수 있나요?
저자들은 4개의 물리 클러스터 노드(각각 8대의 A100-80G GPU 탑재)에서 최대 1,000,000개의 활성 에이전트를 실행하는 시뮬레이션을 시연했습니다.
AgentScope는 대규모 병렬 처리에서 Python의 GIL 제한을 어떻게 피하나요?
연산 집약적인 작업을 위한 일대일 모드(에이전트당 하나의 프로세스)와 API 대기 및 I/O 바운드 작업을 위한 다대일 모드(여러 에이전트가 프로세스를 공유)의 두 가지 실행 모드를 갖춘 액터 기반 멀티프로세싱을 구현하며, 원격 프로시저 호출(RPC)을 통해 GIL 경합을 피합니다.
현실적인 에이전트 인구 집단은 어떻게 생성되나요?
사용자가 설정 파일에 상위 수준의 인구 통계학적 분포(학력, 성별, 연령, 직업 등)를 제공하면, LLM 기반 메타 프롬프트 파이프라인이 이를 샘플링하여 상세한 캐릭터 인물 정보로 확장합니다.
게임 규칙이 표준 게임 이론 벤치마크와 다를 경우 어떤 결과가 발생하나요?
비율을 51/100로 변경하거나 목표 수식을 평균의 5 + 1/2로 수정했을 때, 에이전트들은 기존에 암기된 지식으로 인해 초기에는 어려움을 겪었습니다. 그러나 맥락적 설명이나 CoT 프롬프트를 추가하자 Qwen2-72B 및 MistralAI-8x22B와 같은 모델들이 변경된 균형점으로 성공적으로 수렴했습니다.
이 페이지의 해설은 AI가 논문을 바탕으로 작성했으며 오류가 있을 수 있습니다. 자세한 내용은 원문을 확인하세요.