单GPU运行数千环境、800万步模拟只需3秒,斯坦福开发超强游戏引擎

简介: 单GPU运行数千环境、800万步模拟只需3秒,斯坦福开发超强游戏引擎

单GPU运行数千环境、800万步模拟只需3秒,斯坦福开发超强游戏引擎

机器之心 2023-08-08 12:31 发表于北京

机器之心报道

编辑:陈萍、杜伟

Madrona 作为一个研究型游戏引擎,专为创建智能体学习环境而设计。


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


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


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


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


论文地址:https://madrona-engine.github.io/shacklett_siggraph23.pdf

论文主页:https://madrona-engine.github.io/


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


Madrona 具有以下特点:


GPU 批量模拟:单个 GPU 上可运行数千个环境;

实体组件系统 (ECS) 架构;

可与 PyTorch 轻松互操作。


Madrona 环境示例:


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


研究者借助 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 以及物理和渲染功能。在这个简单任务中,智能体必须学习按下红色按钮并推动其他颜色的箱子以通过一系列房间。


Overcooked AI


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


图源:https://store.epicgames.com/zh-CN/p/overcooked

Hide and Seek


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


Hanabi


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


Cartpole


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


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


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


Overcooked in Thousands of Kitchens: Training Top Performing Agents in Under a Minute


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


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


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


相比之下,在英伟达 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 的过程更加地顺利。


博客详情:https://bsarkar321.github.io/blog/overcooked_madrona/index.html


参考链接:https://madrona-engine.github.io/


相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
2月前
|
机器学习/深度学习 存储 PyTorch
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
69 0
|
4月前
|
并行计算 Linux 测试技术
GPU实例使用--单实例上运行Linux桌面多开解决方案
客户前期使用的旧异构实例面临更新换代,新的推荐异构实例性能更强,客户的业务软件运行时,GPU使用率不高,需要探索多开方案,提高GPU使用率,提高实例性价比。
|
4月前
|
达摩院 并行计算 异构计算
modelscope调用的模型如何指定在特定gpu上运行?排除使用CUDA_VISIBLE_DEVICES环境变量
由于个人需要,家里有多张卡,但是我只想通过输入device号的方式,在单卡上运行模型。如果设置环境变量的话我的其他服务将会受影响。
|
4月前
|
机器学习/深度学习 IDE TensorFlow
进入DSW后,如何把工作环境切换为GPU状态
进入DSW后,如何把工作环境切换为GPU状态
103 2
|
4月前
|
并行计算 PyTorch 算法框架/工具
详细讲述Yolov5从下载、配置及如何使用GPU运行
详细讲述Yolov5从下载、配置及如何使用GPU运行
1014 0
|
4月前
|
存储 机器人 PyTorch
使用 ExLlamaV2 在消费级 GPU 上运行 Llama 2 70B
使用 ExLlamaV2 在消费级 GPU 上运行 Llama 2 70B
356 0
|
4月前
|
缓存 并行计算 Ubuntu
科研GPU环境配置-快让师兄弟们优雅地享受共享环境吧!
以下列举我对实验室4090的操作,目的是为了让实验室所有人都有隔离的沙盒环境,节省硬盘以及更方便 一听说老师买了24G 4090,真的超级兴奋!!!
92 0
科研GPU环境配置-快让师兄弟们优雅地享受共享环境吧!
|
4月前
|
Ubuntu Shell Linux
专为Intel Arc GPU设计:oneAPI的详细图文安装教程
本次我们基于Intel Arc系列的GPU,在windows的WSL上安装oneAPI, 之前发表过纯CPU,通过VM虚拟机的方式,而现在我们在WSL上实现GPU版本的安装
137 0
|
5月前
|
机器学习/深度学习 网络协议 Docker
基于docker搭建conda深度学习环境(支持GPU加速)
在Ubuntu系统,创建一个docker,然后搭建conda深度学习环境,这样可以用conda或pip安装相关的依赖库了。
158 0
|
9月前
|
存储 安全 Linux
GPU机器docker环境离线安装
GPU机器docker环境离线安装
310 0

热门文章

最新文章

http://www.vxiaotou.com