1个GPU几分钟搞定强化学习训练,谷歌新引擎让深度学习提速1000倍丨开源
博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI
机器人要如何完成这样一个动作?
我们一般会基于强化学习,在仿真环境中进行模拟训练。
这时,如果在一台机器的CPU环境下进行模拟训练,那么需要几个小时到几天。
但现在,只需一个TPU/GPU,就能和数千个CPU或GPU的计算集群的速度一样快,直接将所需时间缩短到几分钟!
相当于将强化学习的速度提升了1000倍!
这就是来自谷歌的科学家们开发的物理模拟引擎Brax。
三种策略避免逻辑分支
现在大多数的物理模拟引擎都是怎么设计的呢?
将重力、电机驱动、关节约束、物体碰撞等任务都整合在一个模拟器中,并行地进行多个模拟,以此来逼近现实中的运动系统。
△对于每个模拟时间步长,力和力矩被整合在一起
这种情况下,每个模拟器中的计算都不相同,且数据必须在数据中心内通过网络传输。
这种并行布局也就导致了较高的延迟时间——即学习者可能需要超过10000纳秒的等待时间,才能从模拟器中获得经验。
那么怎样才能缩短这种延迟时间呢?
Brax选择通过避免模拟中的分支来保证数千个并行环境中的计算完全统一,进而降低整个训练架构的复杂度。
直到复杂度降低到可以在单一的TPU或GPU上执行,跨机器通信的计算开销就随之降低,延迟也就能被有效消除。
主要分为以下三个方法:
连续函数替换离散分支逻辑
比如,在计算一个小球与墙壁之间的接触力时,就产生了一个分支:
如果球接触墙壁,就执行模拟球从墙壁反弹的独立代码;
否则,就执行其他代码;
这里就可以通过符号距离函数来避免这种if/else的离散分支逻辑的产生。
使用JAX即时编译中评估分支
在仿真时间之前评估基于环境静态属性的分支,例如两个物体是否有可能发生碰撞。
在模拟中只选择需要的分支结果
在使用了这三种策略之后,我们就得到了一个模拟由刚体、关节、执行器组成环境的物理引擎。
同时也是一种实现在这种环境中各类操作(如进化策略,直接轨迹优化等)的学习算法。
那么Brax的性能究竟如何呢?
速度最高提升1000倍
Brax测试所用的基准是OpenAI Gym中Ant、HalfCheetah、Humanoid、Reacher四种。
同时也增加了三个新环境:包括对物理的灵巧操作、通用运动(例如前往周围任何一个放置了物体的地点)、以及工业机器人手臂的模拟:
研究人员首先测试了Brax在并行模拟越来越多的环境时,可以产生多少次物理步骤(也即对环境状态的更新)。
测试结果中的TPUv3 8x8曲线显示,Brax可以在多个设备之间进行无缝扩展,每秒可达到数亿个物理步骤:
而不仅是在TPU上,从V100和P100曲线也能看出,Brax在高端GPU上同样表现出色。
然后就是Brax在单个工作站(workstation)上运行一个强化学习实验所需要的时间。
在这里,研究人员将基于Ant基准环境训练的Brax引擎与MuJoCo物理引擎做了对比:
可以看到,相对于MuJoCo(蓝线)所需的将近3小时时间,使用了Brax的加速器硬件最快只需要10秒。
使用Brax,不仅能够提高单核训练的效率,还可以扩展到大规模的并行模拟训练。
论文地址:
https://arxiv.org/abs/2106.13281
下载:
https://github.com/google/brax
参考链接:
https://ai.googleblog.com/2021/07/speeding-up-reinforcement-learning-with.html
1个GPU几分钟搞定强化学习训练,谷歌新引擎让深度学习提速1000倍丨开源相关推荐
- 深度学习 训练吃显卡_在深度学习中喂饱GPU
原标题:在深度学习中喂饱GPU 新智元推荐 来源:知乎专栏 作者:风车车 [新智元导读]深度学习模型训练是不是大力出奇迹,显卡越多越好?非也,没有512张显卡,也可以通过一些小技巧优化模型训练.本文作 ...
- 60分钟搞定,基于ResNet和Azure GPU加速的肺癌CT图像识别
用深度学习技术分析医学影像和视频是一个新的研究方向.通过已训练好的卷积神经网络,能很快地搭建并训练自己的深度学习系统. 本文介绍了微软的一个比赛队伍参加2017年Kaggle肺癌CT图像检测比赛,成功 ...
- 三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQL2005版本)
三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 转载原文,并注明出处!虽无多少技术含量,毕竟是作者心血原创,希望理解. 转自 http://blog.csdn.net ...
- 启程 - 《每日五分钟搞定大数据》
<每日五分钟搞定大数据>原创系列,每周不定期更新.欢迎关注公众号:大叔据 想了很久,准备开始写一系列的文章,记录这些年来的所得所想,感觉内容比较多不知从哪里开始,画了个思维导图确定了大 ...
- python使用教程pandas-十分钟搞定pandas(入门教程)
本文是对pandas官方网站上<10Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯上 ...
- 3 分钟搞定 Android Push
在 Android 上,要实现 Push 功能可没有那么简单! 众所周知的原因是,Android 官方的推送服务 GCM 在国内手机上用不了.所以很多国内的开发者,不得不去使用 AndroidPN 这 ...
- 正则表达式里转义字符_五分钟搞定正则表达式,如果没搞定,再加两分钟
五分钟搞定正则表达式,如果没搞定,再加两分钟 [这是 ZY 第 18 篇原创文章] 文章概览 一.正则表达式介绍 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简 ...
- (8)小白又如何?3分钟搞定一个 C# 知识点
本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...
- (7)3分钟搞定 C# 逻辑运算
本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...
最新文章
- Typedef用法学习
- eclipse中Tomcat v8.0 Server at localhost failed to start解决以及安装方法
- 百分点首席经济学家张忠解读《美国白宫大数据白皮书》
- A+B/A*B求A和B
- 图说数据中心蒸发节能技术
- Java之Set集合的怪
- 前端学习(2905):用vite的2.0构建程序
- 幕乔美化版音乐网站源码
- 开源压缩算法brotli_Google的Brotli压缩算法,C ++核心准则以及更多新闻
- 如何测试服务器上数据库服务器能否连接上
- linux内核 eql.c,Linux Kernel EQL_GETMASTRCFG请求内核信息泄露漏洞
- kafka依赖_Kafka集群搭建及必知必会
- CSS设置中文字体无效乱码问题
- Java 转换成ObjectC代码
- 用简单的语句讲解浏览器输入地址进入servlet原理
- Oracle、MySQL、SQL server数据库去重
- 比较两组数据的差异用什么图更直观_第四节 单因素完全随机实验设计及数据处理...
- php保存pdf旋转90度,怎么将PDF文件向左旋转90度?这款软件还有旋转功能!
- 还未挥洒热血,却道了离别(内涵高质量毕业答辩PPT模板)
- 旅游行业APP开发方案
热门文章
- div中的图像在图像下方有多余的空间
- maven2创建或者导入eclipse工程 设置M2_REPO消除错误
- C中的extern关键字
- 细说php--php学习必备
- JS验证框架的使用方法
- 设置在桌面上不显示计算机,怎么在桌面上显示我的电脑 我的电脑桌面不显示怎么办...
- web前端学习day_05:Bootstrap
- mysql min函数 结果全为null_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)
- js 复制图片_不会做ppt?Reveal.js让你复制粘贴另类拉风,简洁优雅又低调
- Wireshark安装失败或找不到网络接口问题