『』每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架

晓查 发自 凹非寺
对土豪来说最痛苦的是什么 , 就是有一大堆硬件却不能实现1+1=2的效果 。
AI训练中的并行计算就是如此 , 纵使你有一千张GPU , 也无法实现单机训练一千倍的效果 。
最近 , 不差钱的谷歌 , 开源了一种SEED RL框架 , 可以更容易地将AI训练放在几千台机器上运行 , 效果比之前的方法最高提升近4倍 。
如果你也不差钱 , 在云端上进行大规模并行计算 , 那么可以节约80%的训练成本 。考虑到现在一个大型AI模型动辄上百万的训练费用 , 真的是非常可观了 。
在训练AI玩足球游戏这件事情上 , SEED RL的处理速度可以达到每秒240万帧 。如果以60fps计算 , 相当于每秒可处理11小时的游戏画面 。
『』每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架
文章图片

文章图片

SEED RL体系架构
上一代的分布式强化学习智能体IMPALA , 其体系架构中包含Actor和Learner两部分 。
Actor通常在CPU上运行 , 并且在环境中采取的步骤与对模型进行推断之间进行迭代 , 以预测下一个动作 。
Actor经常会更新推理模型的参数 , 并且在收集到足够数量的观测结果后 , 会将观测结果和动作的轨迹发送给Learner , 从而对Learner进行优化 。
在这种架构中 , Learner使用来自数百台机器上的分布式推理输入在GPU上训练模型 。
但IMPALA存在着许多缺点:
1、使用CPU进行神经网络推理 , 效率低下 。而且随着模型变大、运算量变大 , 问题会越来越严重 。
2、Actor和Learner之间模型参数的带宽成为性能的瓶颈 。
3、资源利用效率低 , Actor在环境和推理两个任务之间交替进行 , 而这两个任务的计算要求不同 , 很难在同一台机器上充分利用资源 。
SEED RL体系架构解决了以上这些缺点 。Actor可以在GPU、TPU这类AI硬件加速器上完成推理 , 通过确保将模型参数和状态保持在本地来加快推理速度 , 并避免数据传输瓶颈 。
与IMPALA体系结构相反 , SEED RL中的Actor仅在环境中执行操作 。Learner在硬件加速器上使用来自多个Actor的成批数据来集中执行推理 。
SEED RL在每个环境步骤将观测结果发送给Learner的同时 , 使用gPRC框架的网络库 , 将延迟保持在较低水平 。这使SEED RL在一台机器上每秒最多可以实现一百万个查询 。
Learner可以扩展到几千个核心上 , Actor的数量可以扩展到几千台机器 , 从而实现每秒百万帧的训练速度 。
SEED RL用到了两种最先进的算法:V-trace和R2D2 。
V-trace负责从采样的动作中预测动作的分布 , R2D2负责根据动作的预测未来值选择一个动作 。
V-trace是基于策略梯度的方法 , 最早被IMPALA采用 。由于Actor和Learner是异步执行 , 而V-trace在异步体系架构中的效果很好
第二种算法是R2D2 , 这是一种Q学习方法 , DeepMind曾用这种算法将强化学习智能体在Atari游戏上的水平提高了4倍 , 并在52款游戏上超过了人类水平 。
这种方法允许Q学习算法大规模硬件上运行的同时仍然可以使用RNN 。
实验结果
谷歌在DeepMind最近研究的开源足球游戏项目Google Research Football中进行了基准测试 。
『』每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架
文章图片

文章图片

使用64个Cloud TPU核心实现了每秒240万帧的数据传输速度 , 与之前的最新分布式IMPALA相比 , 提高了80倍 。
IMPALA要想达到相同的速度 , 需要14000个CPU , 而SEED RL只用了4160个CPU 。对于相同的速度 , IMPALA需要的CPU是SEED RL的3~4倍 。
『』每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架


推荐阅读