技术深度解析
SMAC-Talk构建在星际争霸II学习环境(SC2LE)和原始SMAC基准之上,后者包含14个微操场景(例如,2个陆战队员 vs. 1个狂热者,3个追猎者 vs. 3个追猎者)。关键的架构变化是引入了语言通道——一个共享的消息板,智能体可以在每个时间步(每8个游戏帧,约0.13秒)读取和写入。
架构组件:
1. 观测编码器: 每个智能体接收其局部游戏状态的结构化文本表示,包括单位生命值、冷却时间、敌方位置(在视野范围内)和友军单位状态。这被格式化为类似JSON的字符串。
2. LLM后端: 智能体使用预训练的LLM(GPT-4、Claude 3.5 Sonnet或开源模型如Llama 3 70B)来处理观测和对话历史。提示包括:
- 定义智能体角色的系统消息(例如,“你是星际争霸小队中的一个追猎者单位。与队友协调消灭所有敌人。”)
- 当前游戏状态
- 队友的最近消息
- 动作空间(移动、攻击、停止等)
3. 动作解码器: LLM输出一个结构化动作(例如,“攻击 enemy_3”)和可选的消息(例如,“集中火力攻击位置[12.5, 8.3]处的敌方狂热者”)。环境执行该动作并将消息广播给所有队友。
4. 通信预算: 为防止无限聊天,SMAC-Talk对每个回合施加了令牌限制(例如,总共500个令牌)和每步限制(例如,50个令牌)。这迫使智能体简洁并优先处理关键信息。
基准测试结果:
研究人员测试了三种配置:静默(无通信)、简单通信(预定义消息模板,如“攻击目标X”)和自由形式LLM通信(自然语言)。在“2m_vs_1z”场景(2个陆战队员 vs. 1个狂热者)上的结果:
| 配置 | 胜率 | 平均回合长度(步数) | 每回合平均消息数 | 使用的通信令牌数 |
|---|---|---|---|---|
| 静默(无通信) | 62% | 85 | 0 | 0 |
| 简单通信(模板) | 74% | 72 | 12 | 48 |
| 自由形式LLM通信(GPT-4) | 91% | 58 | 8 | 320 |
| 自由形式LLM通信(Llama 3 70B) | 86% | 61 | 9 | 295 |
数据要点: 自由形式LLM通信相比静默智能体胜率提升了29个百分点,相比基于模板的通信提升了17个百分点。LLM智能体使用了更少但信息密度更高的消息,这表明它们学会了将关键战术数据(敌方位置、生命状态)压缩成简洁的自然语言。
相关开源仓库:
- SMAC(原始): 基础环境(github.com/oxwhirl/smac)拥有超过1200颗星,是多智能体强化学习的标准基准。SMAC-Talk是其一个分支,增加了语言通道。
- PyMARL2: 一个流行的多智能体强化学习框架(github.com/hijkzzz/pymarl2,约500颗星),研究人员正在使用它将SMAC-Talk与强化学习算法集成。
- ChatDev: 虽然不直接相关,但这个项目(github.com/OpenBMB/ChatDev,约25000颗星)展示了LLM智能体通过自然语言协作编写代码,显示了语言驱动多智能体系统的更广泛趋势。
技术挑战: 最大的瓶颈是延迟。每次LLM推理调用需要1-3秒(对于GPT-4),这对于实时星际争霸来说是不可接受的(动作必须每0.13秒执行一次)。研究人员通过使用预测缓存机制解决了这个问题:LLM生成未来5-10步的计划,智能体本地执行该计划,除非重大事件(例如,发现敌人)触发重新规划。这将每回合的LLM调用次数从约80次减少到约15次,使系统变得可行。
关键参与者与案例研究
SMAC-Talk由牛津大学Whiteson实验室的一个团队开发,由Jakob Foerster博士(多智能体强化学习和通信领域的先驱)领导,并与DeepMind以及一家名为Cognition AI(以Devin编码智能体闻名)的初创公司的研究人员合作。该项目是连接LLM和多智能体系统的更广泛推动的一部分。
关键研究人员:
- Jakob Foerster: 以“通过深度多智能体强化学习学习通信”(2016)而闻名,该研究引入了可微分通信通道的概念。他的实验室多年来一直致力于“涌现通信”的研究。
- Shayegan Omidshafiei: 前DeepMind研究员,现任职于InstaDeep,该公司专注于物流和供应链优化的多智能体系统。InstaDeep已经将类似SMAC-Talk的通信集成到他们的“AgentVerse”平台中,用于仓库机器人协调。
竞争方法:
| 方法 | 关键实体 | 通信方法 | 实时? | 测试环境 |
|---|---|---|---|---|
| SMAC-Talk | 牛津/DeepMind | 自由形式LLM文本 | 是(带缓存) | 星际争霸II |
| MADDPG (Lowe等人) | OpenAI | 连续向量 | 是 | 粒子环境 |