史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

现阶段,AI智能体仿佛无所不能,玩游戏、模仿人类完成各种任务,而这些智能体基本是在复杂环境中训练而成的。 不仅如此,随着学习任务变得越来越复杂,模拟环境的复杂性也随之增加,进而增加了模拟环境的成本。

即使拥有超级计算规模资源的公司和机构,训练好一个可用的智能体也可能需要数天的时间才能完成。

这阻碍了该领域的进展,降低了训练先进AI智能体的实用性。 为了解决环境模拟的高成本问题,最近的研究努力从根本上重新设计模拟器,以便在训练智能体时实现更高的效率。 这些工作共享批次模拟的思想,即在单个模拟器引擎内同时执行许多独立的环境(训练实例)。

本文,来自斯坦福大学等机构的研究者,他们提出了一个名为Madrona的强化学习游戏引擎,可以在单个GPU上并行运行数千个环境,将智能体的训练时间从几小时缩减到几分钟。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟
  • 论文链接:https://madrona-engine.github.io/shacklett_siggraph23.pdf
  • 论文主页:https://madrona-engine.github.io/

具体而言,Madrona 是一款研究型游戏引擎,专为创建学习环境而设计,可以在单个 GPU 上同时运行数千个环境实例,并且以极高的吞吐量(每秒数百万个聚合步骤)执行。 Madrona 的目标是让研究人员更轻松地为各种任务创建新的高性能环境,进而使 AI 智能体训练的速度提高几个数量级。

Madrona 具有以下特点:

  • GPU 批次模拟:单个 GPU 上可运行数千个环境;
  • 实体组件系统 (ECS) 架构;
  • 可与 PyTorch 轻松互动操作。
史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

Madrona 环境演示:

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

上面我们已经提到,该研究利用了ECS设计原则,其具体过程如下:

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

研究者借助Madrona框架,实现了多个学习环境,结果表明,相较于开源CPU基线,GPU的速度提升达到了两到三个数量级,相较于在32线程CPU上运行的强基线,速度提升为5-33倍。 此外,该研究还在该框架中实现了OpenAI的hide and seek 3D环境,每个模拟步骤都执行刚体物理学和光线追踪,在单个GPU上实现了每秒超过190万个 step速度。

作者之一、斯坦福大学计算机科学副教授Kayvon Fatahalian表示,在一款让多个智能体玩烹饪游戏Overcooked上,借助Madrona游戏引擎,模拟800万个环境步骤的时间从一小时缩短到三秒。

目前,Madrona 需要使用 C++ 来编写游戏逻辑。 Madrona 仅提供了可视化算绘支持,虽然它可以同时模拟数千个环境,但可视化器一次只能查看一个环境。

基于 Madrona 搭建的环境模拟器有哪些?

Madrona 本身不是一个 RL 环境模拟器,而是一个游戏引擎或框架。 开发者借助它可以更容易地实现自己的新的环境模拟器,进而通过在 GPU 上运行批次模拟并将模拟输出与学习代码紧密结合来实现高性能。

下面是基于 Madrona 搭建的一些环境模拟器。

Madrona Escape Room 

Madrona Escape Room 是一个简单的 3D 环境,使用了 Madrona 的 ECS API 以及物理和算绘功能。 在这个简单任务中,智能体必须学习按下红色按钮并推动其他颜色的箱子以通过一系列房间。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

Overcooked AI 

Overcooked AI 环境是一个基于协作电子游戏的多智能体学习环境(多人协作烹饪游戏),这里对它进行了高通量 Madrona 重写。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

Hide and Seek 

2019年9月,OpenAI智能体上演了捉迷藏攻防大战,自创一套方式。 这里使用 Madrona 对「Hide and Seek」环境进行了再现。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

Hanabi 

Hanabi 是一个基于 Madrona 游戏引擎的 Hanabi 纸牌游戏的实现,也是一个协作式 Dec-POMDP。 该环境基于 DeepMind 的 Hanabi 环境,并支持部分 MAPPO 实现。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

Cartpole 

Cartpole 是一个典型的 RL 训练环境,它与构建在 Madrona 游戏引擎之上的 gym 实现有相同的动力学。

  • GitHub 地址:https://github.com/shacklettbp/madrona

Overcooked 烹饪游戏:一分钟内训练最佳智能体

论文作者之一、斯坦福大学本科生 Bidipta Sarkar 撰写博客详细介绍了训练智能体玩 Overcooked 烹饪游戏的过程。 Overcooked 是一款流行的烹饪游戏, 也可以作为协作多智能体研究的基准。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

在 Sarkar 的 RL 研究中,模拟虚拟环境的高成本对他来说始终是训练智能体的一大障碍。

就 Overcooked 烹饪游戏而言,大约需要 800 万步的游戏经验,才能训练一对在 Overcooked 狭窄房间布局(下图)中收敛到稳定均衡策略的智能体。 Overcooked 的开源实现使用 Python 编写,在 8 核 AMD CPU 上每秒运行 2000 步,因此生成必要的智能体经验需要花费 1 个小时以上。

史丹佛开发超强游戏引擎Madrona! 将智能体的训练时间从几小时缩减到几分钟

相比之下,在NVIDIA A40 GPU上执行训练所需的所有其他操作(包括所有800万个模拟步骤的策略推理、策略训练的反向传播)仅需不到1分钟的时间。 很显然,训练 Overcooked 智能体受限于 Overcooked 环境模拟器的速度。

考虑到 Overcooked 是一个简单的环境,让模拟速度难住似乎很愚蠢。 因此 Sarkar 试着看看 Overcooked 环境模拟的速度是否可以提升,这就需要用到 Madrona 游戏引擎。

利用 Madrona 游戏引擎,Sarkar 得到了一个原始 Overcooked Python 实现的即插即用的 GPU 加速版替代。 当并行模拟1000个Overcooked环境时,GPU加速后在A40 GPU上每秒可以生成350万步经验。

作为结果,模拟800万个环境步骤的时间从1小时缩短至了3秒,进而可以使用A40 GPU在短短1分钟内训练一个策略。

该模拟器的速度为在 Overcooked 中执行广泛的超参数扫描打开了新的可能性,尤其是在以往训练单个策略所需的时间内有了训练多个策略的可能。

最后,Sarkar意识到与创建GPU加速环境的现有替代方案(如 PyTorch、Taichi Lang、Direct CUDA C++)相比,将 Overcooked 移植到 Madrona 的过程更加地顺利。

(0)
臻智哥臻智哥

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注