围棋已经没意思,人工智能开始玩 Minecraft 了
由 AlphaGo 到可自我进化的机器人,比你预想的要快
编者按:文作者杨作兴,比特大陆公司设计总监,对人工智能及神经元网络芯片有很深的研究。感兴趣的朋友可以于他在深圳湾的主页交流。
上周日,李世石在三局落后的情况下,终于扳回来一局,为人类挽回了颜面。3月9日,我在深圳湾发文,预测在李世石首局失利的情况下,会连扳四局。
我当时的分析是,人比机器的适应能力更强,通过第一局,李世石应该可以很快找到 ALPHAGO 的漏洞,将比分扳回。不过我和李世石一样低估了 ALPHAGO 的复杂性。李世石苦苦抗战,终于在四局找到了ALPHAGO的漏洞。
我们应该感谢李世石代表人类,展示了人类的应变能力么?但我们没有,一个深深的忧虑在人们心头萦绕,机器人会彻底战胜人类么?人类会被机器统治么?霍金的「人工智能将终结人类」这个预言,会变成现实么?什么时候?100年后么?伦敦帝国学院研究认知机器人技术的 Murray Shanahan 教授认为,10 到 20 年内人们还不可能造出与人类同能级别的人工智能。李开复在 3 月 8 日预测 ALPHAGO 会全部输掉全部 5 场比赛,但在未来的1~2年机器围棋智能会战胜人类。
可现实的情况是,人工智能的发展超出了李开复最乐观的估计。对于 Shanahan 教授关于跟人类同级别人工智能的预计,我个人觉得可能也会比他的估计来得更快一些,下面是我的分析。
去年10月的 ALPHAGO 是 1200 个 CPU 加 170 个 GPU,而这几天跟李世石对弈的是 1920 个CPU 加 280 个 GPU。这是一个复杂的计算机系统,然而这仅仅是深度学习的执行计算机网络,为这个网络提供围棋「直觉」的计算机训练网络,比这个规模至少要提高一个数量级,而这个训练网络是保持 ALPHAGO 持续进化的原动力。由这上万个 CPU,上千个 GPU 组成的庞大的,需要一层大楼来装的计算机网络系统能终结人类?这好像有些可笑,可是当你看到下面这一张某人工智能芯片公司芯片的规划表后,你可能会改变想法:
芯片的指标普通人不太理解,我们把目前性能最强的 NVIDIA GPU 卡上的芯片 GK210 的指标列出来比较一下:
这里边第一个关键的指标是计算能力,这个 AI 公司 2017 的产品的计算能力是 GK210 的 2.5 倍。第二个指标是功耗, 功耗做到了 GK210 的 1/15,这个比较神奇。第三个指标是内部存储容量的大小及带宽。这个内部 MEMORY 相当于 CPU 上的 CACHE。深度神经元卷积网络(CNN)的模型比较大,对于围棋智能来说,通常能够到几百 MB 到 1GB 左右,这个模型在 CNN 网络计算的时候,会被频繁的读出来,如果模型放在片外的 DDR 里边,对 DDR 造成的带宽压力通常会到 TB/S 级别。
采用目前通常的 GPU 来计算 CNN 网络,基本上都受到 DDR 带宽的限制,也就是说,由于 GPU 的带宽限制,GPU 号称的 4TFLOPS,在计算围棋 CNN 网络的时候是达不到的,这种情况下 GPU 的计算能力是由带宽决定的。例如,如果围棋 CNN 网络需要 1TB/S 的带宽,但 GK210 只能提供 240GB/S 的带宽,那 GK210 的计算能力就基本上是原来的 1/4,大概 1TFLOPS 左右。而这家 AI 公司的芯片其实是专门针对 CNN 加速的,他里边放了 256MB 的内部存储器,而且内部存储器的带宽是 3TB/S,因此对于围棋 CNN 这样的网络,芯片宣称的 10TFLOPS 是可能可以达到的。但这又意味做什么呢?
大家稍微耐心一点,在讲重大意义之前,我们需要先看一下 ALPHAGO 的计算能力。这次跟李世石战斗的 ALPHAGO 一共是 1920 个 CPU,280 个 GPU,它的计算能力有多大呢?我们假定这 1920 个 CPU 全是至强服务器 CPU,理论峰值计算能力为 48GFLOPS,那 CPU 部分总的计算能力是:1920*48 = 92TFLOPS。另外,假定都采用目前最强的 NVIDIA K80 GPU(里边是两个 GK210 芯片),那 GPU 部分的计算能力是:280*4*2 = 2240TFLOPS。总共的计算能力是:92+2240 = 2332TFLOPS。
这是理论上的最大峰值计算能力,我们需要考虑两个情况,一个是 DDR 带宽不够,另一个是分布式计算的影响。关于 DDR 带宽对峰值计算能力的影响,前面交代了一下,对于围棋智能这样的 CNN 网络,我们可以按 4 倍的衰减来计算,那考虑 DDR 带宽影响后,ALPHAGO 的计算能力是:2332/4 = 584TFLOPS。
分布式计算对计算能力的影响有多少呢?这里的瓶颈在于各个处理器之间交换数据的带宽和任务之间相互的依赖程度,这么庞大的网络,对性能的影响通常非常大。我们不清楚这两千多个处理器的任务是如何拆分的,假设由于分布式计算对性能的损失是 4/5,那考虑分布式计算的影响,ALPHAGO 的计算能力是:584/5 = 117TFLOPS。假设是否对呢?多机版的 ALPHAGO 对单机版的胜率是 75%,从这个侧面,感觉多机版好像也没有比单机版强悍很多很多。
到这里,思路没有跳跃的朋友,发现一个有趣的事情,好像 ALPHAGO 可以放在一张算力卡上:
这个板上有 54 颗芯片,那这张卡的算力(采用某 AI 公司 2017 年的芯片)是:54*10 = 540TFLOPS,也就是说这张卡里边装了5 条 ALPHAGO,它能同时对阵李世石,柯杰,俞斌,聂卫平还有李昌镐!如果我们把这张卡放在机器人里边,那这个机器人将变成世界上左脑最发达的人。
这或许已经很神奇了,不过还有更多。
目前的 ALPHAGO 是一个执行的 ALPHAGO,它的灵魂是通过训练学习出来的,最厉害的是学习能力。学习是通过另外一个更庞大的计算机网络进行的,可能涉及到几千台服务器。ALPHAGO 不会主动自我进化,进化是被动的,需要通过人类训练新参数,每更新一次参数(一般几个星期),ALPHAGO 便进化一次,进化是被动的阶段性的。在这一点上 ALPHAGO 跟人类差别巨大。我们只要不给他更新参数,把他的网线拔掉,他就永远停止进化了。
那我下面要讲的东西又神奇在哪里呢?现在的单板处理能力是 ALPHAGO 的 5 倍,装上单板的机器人就具备主动自我学习(自我训练)的硬件条件,存在持续自我进化的可能性。数据来源可以是机器人每天看到或者听到的东西,也可以是 SSD 卡上下载的互联网内容,在有联网条件下,他可以自己访问 GOOGLE,获取更多期望获取的内容。内容有了之后,便可以在充电休息的时候让自己持续进化,越来越聪明。这样一个可以自己持续进化的机器人就产生了,而且可能来得很快,也许就在2018年。
科技在以指数曲线快速增长,但人类习惯按线性趋势来判断,因此在科技面前,人类的判断往往是滞后的。
另外关于机器人威胁类,我也想发表一下自己的看法。
- 1)机器人会威胁到人类的工作机会,越来越多的工作都可以交给机器人去干,人类是需要跟机器人抢饭碗的。
- 2)机器人不会威胁到人类整体的生存。毕竟机器是人类造出来,人类这个整体是希望机器人来帮助人类,不是要来干掉人类的。当然,个别人会让机器人干坏事,但那应该不是主流。
杨博士讲的很好,受益匪浅!
杨兄 支持你
谢谢楼上的两位!
上面提到的AI公司怕是要解决了小于5纳米的工艺和良率,才有可能把功耗和成本降到他说的这么低,看看台机电的16纳米的情况就觉得17年不可能,难道它在设计上能超越老黄的黑科技?
杨博士犀利,多谢分享
人类希望机器人帮助自己,不能保证机器人不会威胁人类生存。就像人类社会需要有法律,警察,军队才能维持和平。机器人社会也应该有法律,警察,军队
杨兄:深入浅出,受益非浅!愿早日能看到你的作品……