Neural MMO: 一个大规模多智能体游戏环境

OpenAI 推出了 Neural MMO,这是一个专为强化学习 (RL) 研究设计的大规模多智能体游戏环境。该平台允许大量且数量可变的智能体在持久且开放的任务中进行交互,证明了包含大量智能体和物种可以带来更好的探索、发散性的生态位形成以及更高的整体能力。

Neural MMO 的核心设计原则

Neural MMO 的构建旨在填补复杂但狭窄的环境与开放但简单的环境之间的空白。它遵循四个主要标准:

  • 持久性:智能体在没有环境重置的情况下进行并发学习。这迫使策略必须考虑长时界限并适应其他智能体不断演化的行为。
  • 规模:该环境支持大规模种群。OpenAI 的实验涉及在 100 个并发服务器中,每个服务器包含 128 个并发智能体,总计高达 1 亿个生命周期。
  • 效率:该平台旨在降低计算门槛,允许在单个桌面 CPU 上训练有效的策略。
  • 扩展性:该环境旨在进行开源扩展。当前功能包括程序化生成的基于瓦片的地形、食物和水资源采集系统,以及战略性战斗系统。

环境机制与智能体交互

智能体在自动生成的、大小可配置的基于瓦片的地图上运行。该环境结合了多种生存和战斗机制:

  • 生存:智能体必须通过获取食物和水来维持生命值。水可以从无限的水瓦片中获得,而食物来源于森林瓦片,森林瓦片的供应量有限且随时间缓慢再生。
  • 战斗:玩家使用三种不同的风格进行战斗:近战 (Melee)、远程 (Range) 和法师 (Mage)。
  • 输入/输出:智能体接收以其位置为中心的方形瓦片裁剪区域,包括地形类型以及其他智能体的属性(生命值、食物、水和位置)。在每个游戏刻 (tick) 中,智能体输出一个移动动作和一个攻击动作。

模型架构与训练

OpenAI 使用了一种小型、全连接的架构,使用 vanilla policy gradients 进行训练,并利用了价值函数基准 (value function baseline) 和奖励折扣 (reward discounting)。

智能体并不针对特定目标获得奖励,而是仅针对其生命周期(轨迹长度)进行优化,即每生存一个 tick,就会获得 1 的奖励。为了处理变长观测值(例如周围玩家的数量),模型会对所有玩家进行取最大值操作,以创建一个单长度向量。

该实现是使用 PyTorch 和 Ray 构建的。

评估结果与关键发现

OpenAI 使用“服务器合并锦标赛”评估智能体能力,即通过将不同服务器的玩家基地合并到单个环境中,来比较在不同设置下学习到的策略。

多智能体交互放大能力

在更大规模设置中训练的智能体始终优于在较小规模设置中训练的智能体。研究表明,智能体能力随多智能体交互程度的增加而直接扩展。

种群规模驱动探索

增加种群规模会激励智能体在地图上分散开来,以避免资源竞争。随着并发智能体数量的增加,地图覆盖率也会随之增加,这意味着智能体学会了将探索作为对他人存在的自然反应。

物种数量驱动生态位形成

增加种群(物种)的数量会导致生态位形成。由于智能体无法在自己的种群内战胜其他成员(因为它们共享相同的权重),它们会寻找地图的不同区域以找到足够的资源来维持其种群。这导致不同的种群在地图上分散开来以避免竞争。

空间价值分布

通过将价值函数相对于第二个智能体的位置进行可视化,OpenAI 发现智能体发展出了复杂的空间依赖关系:

  • 采集:智能体很快学会了“牛眼”式避让地图,以便更有效地进行采集。
  • 战斗:随着智能体掌握了战斗机制,它们学会了根据其他智能体的策略来评估特定交战距离和接近角度的价值。

Sources