论文 · arXiv 2407.17789
AgentScope 中的超大规模多智能体模拟
Very Large-Scale Multi-Agent Simulation in AgentScope
三句话总结
- 🎯 多智能体模拟平台在大规模场景下面临扩展性、智能体群体多样性以及多设备生命周期管理等重大瓶颈。
- 🔧 实现了基于 Actor 的分布式机制,支持一对一与多对一进程模式、通过 to_dist 实现自动工作流转换、多层环境以及自动化角色画像生成器。
- 📈 成功在 4 台多 GPU 设备上耗时 12 分钟完成了 100 万个智能体的模拟(Llama3-8B),并在仅 40 秒内跑完了 100 万智能体的虚拟基准测试。
摘要
大语言模型(LLM)的最新进展为在超大规模模拟中应用多智能体系统开辟了新途径。然而,利用现有平台进行多智能体模拟仍面临诸多挑战,例如可扩展性受限与效率低下、智能体多样性不足以及管理流程费时费力。为应对这些挑战,我们为易用的多智能体平台 AgentScope 开发了若干新特性与组件,增强其支持超大规模多智能体模拟的便捷性与灵活性。具体而言,我们提出了一种基于 Actor 的分布式机制作为底层技术基础设施,以实现出色的可扩展性与高效率,并提供灵活的环境支持以模拟各种现实场景,从而支持多智能体的并行执行、面向分布式部署的自动工作流转换,以及智能体间和智能体与环境之间的交互。此外,我们在 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)智能体使得无需编写繁重的人工规则即可进行交互式、高拟真度的模拟。然而,将多智能体模拟扩展至现实人口规模时,暴露出三个核心瓶颈:
- 可扩展性与效率限制:集中式执行与 Python 的全局解释器锁(GIL)阻碍了智能体的执行效率。现有的 Actor 框架(如 Ray)为每个 Actor 启动一个新进程,在处理数百万个轻量级、I/O 密集型智能体时会严重浪费资源。
- 群体分布与智能体多样性不足:使用简单、雷同背景提示词的智能体表现出同质化行为,无法反映现实的人口统计学分布(例如在受教育程度、年龄或职业方面)。
- 管理繁琐:在集群中编排、启动、监控和终止成千上万或数百万个分布式智能体需要极大的运维开销。
核心理念
- 基于 Actor 的分布式架构:智能体作为 Actor 独立进行计算。平台同时支持一对一(每个智能体一个进程,重计算任务可避开 GIL)和多对一(多个智能体共享进程,在 I/O 等待期间最大化 CPU 核心分时复用)映射模式。
- 零重构分布式转换(
to_dist):用户编写集中式工作流,系统通过本地代理和异步消息占位符将其透明地转换为分布式运行架构。 - 环境即智能体(Environment as an agent):环境被建模为一种特殊的智能体,支持状态维护、基于 RPC 的高并发访问、双向触发机制(通过监听器实现),以及用于群体级模拟的嵌套多层结构。
- 可配置的异构群体生成流水线:用户在配置文件中定义人口统计分布,LLM 元提示词流水线据此生成多样化且个性化的智能体角色画像。
- Agent-Manager:基于 Web 的图形化界面与常驻远程服务网络,用于在集群节点间部署、监控和清理智能体。
方法
分布式执行与自动转换
在 AgentScope 中,独立的智能体并发执行。当集中式流水线添加 .to_dist() 标签时,会经历两个阶段:
- 分布式智能体在各远程 Worker 上启动;轻量级代理对象保留在中央调度器上。
- 代理接收到调用后立即返回消息占位符。下游智能体仅在检查指向前序智能体未完成计算的占位符时才会进入阻塞状态。
模拟动力学机制
平台在经典的“猜均值的 ”博弈中评估多智能体推理能力。每个智能体 提交 。获胜目标值为: 在基于理性共识的反复迭代下,唯一的纳什均衡收敛于 。在测试超出先验训练数据的泛化能力的替代实验中,目标规则被调整为: 令 可得一个非零的纳什均衡:
实验结果
- 可扩展性:在 4 个节点(每个节点配备 8 块 A100-80G GPU、64 个 CPU 核心、1 TB 内存)上使用 Llama3-8B 及基础提示词,完成 1,000,000 个智能体的模拟耗时 12 分钟;使用思维链(CoT)提示词(Token 数量增加了 150 倍以上)耗时 85 分钟。在去除 LLM 推理延迟的虚拟计算基准测试中,100 万智能体在 40 秒内完成运行,而使用标准 Python 异步 I/O 需耗时 8.6 小时,串行执行则需约 12 天。
- 水平扩展:在每台设备固定运行 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
- 一种并发计算范式,其中每个 Actor 作为一个自治的计算单元,通过消息传递进行通信,无需共享内存。
- to_dist
- AgentScope 的一个内置函数,利用代理和占位符将以集中式、顺序化编写的多智能体工作流转换为分布式执行流水线。
- Placeholders
- 代理智能体立即返回的异步响应标记,以便调度器在不阻塞等待远程 Worker 响应的情况下继续向下执行。
- Agent-Manager
- 一套基于 Web 的集中式可视化仪表板与守护进程服务器基础设施,用于在远程集群节点上部署、观察和管理智能体的全生命周期。
- Guess 2/3 of the Average
- 经典博弈论基准测试,玩家在 [0, 100] 之间选择数字,目标是尽可能接近全体平均值的 2/3,其理论纳什均衡为 0。
- Many-to-One Multi-Process Mode
- AgentScope 的一种执行模式,多个智能体驻留在同一个操作系统进程中,以在 I/O 等待期间共享线程、CPU 核心与网络端口。
常见问题
AgentScope 能同时模拟多少个智能体?
作者展示了跨 4 个物理集群节点(每个节点配备 8 块 A100-80G GPU)同时运行多达 1,000,000 个活跃智能体的模拟实验。
AgentScope 在大规模并行时如何规避 Python GIL 的限制?
它实现了基于 Actor 的多进程架构,提供两种执行模式:面向计算密集型任务的一对一模式(每个智能体一个进程),以及面向 API 等待和 I/O 密集型任务的多对一模式(多个智能体共享一个进程),并通过远程过程调用(RPC)避免 GIL 争用。
如何生成高拟真度的智能体群体?
用户在配置文件中提供宏观的人口统计学分布(如受教育程度、性别、年龄和职业),由基于 LLM 的元提示词流水线进行采样并扩展为详细的人物生平画像。
当博弈规则偏离标准博弈论基准时会发生什么?
当将比率修改为 51/100 或将目标公式调整为 5 + 均值的 1/2 时,由于预训练先验的记忆效应,智能体起初表现欠佳;但加入上下文说明或 CoT 提示词后,Qwen2-72B 和 MistralAI-8x22B 等模型成功收敛到了新的均衡点。
本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。