2019 年世界人工智能大会(WAIC)于 8 月 29 日至 31 日 在上海举办,为更好地促进开发者之间的深度交流与沟通,今年的大会特设开发者日,创新性的设置 36 小时黑客马拉松比赛、4 个开发者诊所互动区域、6 场演讲单元等环节,吸引来自世界各地的开发者们参与,打造专属 Developer 的开发盛宴。
在昨日举行的这场盛宴中,知名人工智能青年学者、阿里巴巴计算平台事业部总裁贾扬清做了一场名为《20瓦,64千瓦和20兆瓦的大脑》的主题演讲,我们将之整编如下。
很荣幸今天下午有机会分享我这几年在人工智能领域的探索以及想法,今天想聊一个轻松点的话题,即是拿当下的人工智能与人的智能相比,会产生一些什么样有意思的结果。
我自己常年在一线做开发,另外我还有一个双重身份:除了开发人工智能系统,我还要忙着开发或者说训练自己的小孩——我想知道功耗低至20瓦的人脑,平时在生活中能够做成什么事情。
视频中是我们家小孩,在她一岁半的时候,她在与这个世界做交互——首先,她会有自己的情绪,然后她还会求助,总之会产生诸多的协作行为。
只要一个很短的训练周期,她就能实现非常复杂的环境交互。
她的交互行为在我们看来是一个非常自然的过程,人脑就是可以在一个如此低功耗的环境中实现与世界交互的能力,包括在我们的很多电影当中,也会看见很多类似的故事,比如不同类型的机器人对应着不同的交互功能,重点是,它们最后都能把任务完成得非常完美。
于是我们就会从社会中发现一个非常有意思的现象——大家普遍认为人工智能的落地是一个很容易的事情。
譬如2013年深度学习开始流行时,我们就会经常听见有人说“人工智能的时代已经到来”,即便到了如今2019年,依然会有人说人工智一点都不难实现。事实上,我们今日依然没有见到一个能够解决所有问题的通用智能体。
所以我一直在思考着么一个问题:为什么我们会对人工智能这件事情抱有如此乐观的情绪?于是我往回看人工智能的历史,结果发现存在非常多类似的剧情。
早在1956年,香农等人工智能先驱在讨论人工智能的定义时,就说过这么一句话:
1966年,MIT 搞过一个名叫“夏季视觉计划”的活动,他们计划利用一个夏天的时间来搭建一个计算机视觉系统:
今天我们坐高铁直接刷脸进站,会觉得这件事情特别自然,所以我们今天会觉得仿佛只要有好想法,再配一个程序员,就没有办不到的事情。
结果大家都看到了,人工智能在落地过程中面临着诸多挑战。
为什么难?
从今年开始,我们开始从很多媒体报道以及专家讨论中会发现,我们不仅仅是关注它能做什么,而且还特别关注关它应该如何落地。
这里想请问大家一个问题:在场有多少人用过Excel?嗯,非常多。没用过Excel的应该都生活在手机年代。
我想表达的是,计算机在“看”一张图片时,它所看到的实际像是一个填满了数字的Excel表格:
那我再请问下大家,这个Excel表代表的是一个什么物体?
我们可能都回答不出来,但这就是计算机所“看见”的图片形式。
一直以来,行业里都认为计算机的“感知“是一个很困难的问题——在人工智能进行探索的年代里,我们一直在这个课题中反复寻求解决方案。
在上一波人工智能流行的年代,我们曾提出专家系统的概念,当时面临的问题在于,我们可以把所有逻辑进行标准化的协定,但是如何将物理世界的图片或声音映射至这个虚拟世界里,一直未能获得有效的解决。
现在我稍微加点颜色:
这时我们就会发现,计算机所“看见”的图像,能够更容易被我们所识别。
我自己是从2006年开始做计算机视觉研究的,一直以来最重要的工作就是试图从这么一个抽象图片,或者说刚刚的“Excel表”中去抽取出有助于我们识别物体的特征,而在深度学习开始流行以前,“边”是我们思考如何帮助计算机识别物体一个特别重要的信息,这是当时所能达到的几乎可以说是最好的算法:
不过这个方案的缺陷在于,针对小物体特别有效,一旦运用到一个很大的图片上时,就会发现这个算法给我们的输入造成非常大的瓶颈。
如果以这么一个特征提取器来看世界,会有导致很多细节的丢失:
显然,我们的视觉系统可以做得更好。
神经科学在一九八几年的时候告诉我们,人类在识别图像时,视网膜最开始到中间的位置存在一个叫做LGN的区域,像一个特征提取器一样,会自动寻找突变上的边的信息,随后延展出 V1 、V2、VF等说法,对我们的计算机如何提取世界的复杂特征有了新启发—— 2012年,深度学习或者说深度神经网络出现了。
通过大量的标注信息以及比以前深得多的神经网络,我们可以在一个数据集中自动习得从浅层到深层富含各种语义信息的一系列特征,最终达到一个更好的识别效果。
当时人们之所以感到非常兴奋,是因为在2012年的前几年,传统模型算法的错误率一直在25%左右徘徊不前,而深度学习的出现直接让这个数字从25%一下掉到15%;2013年,这个数字是10%;2014年,错误率已经低于5%。换句话说,我们以非常迅速的让计算机在感知的正确率上超越了人类。
深度学习的出现让算法有了更丰富的可能性。
然而在那个“刀耕火种”的年代,除了面临“你怎么就学不会”这种涉及算法能力的问题,我们还面临“你怎么做作业就那么慢呢?”这个涉及算力的问题。
往后几年,我们特别关注如何通过系统的方法来提升模型的训练速度。
2014年 MIT 做的一个研究显示,人类可以在13个微秒左右的时间内完成一个图片识别行为,换句话说,人类一秒钟可以识别出77张照片。
大家可以思考一下,我们今天所谓非常高效的GPU,一秒钟可以处理多少张图片?
哪怕单个GPU可以每秒钟处理230张左右的图片,也不是一个很高的数值,但好处在于,我们可以通过大规模的系统方法,把很多GPU聚到一起来快速处理大批量的图片。
比如把256个GPU放在一块,通过集群的方式每秒钟可以处理6万张图片:
这也是我们前几年不断在做的一件事情。
接下来,我们面临的问题是系统设计。
比如在工业中,我们会通过集群的建设、高性能计算的建设等方式来做一些适合深度学习或者高性能计算训练的集群,当很多GPU放在一块时,彼此之间应该如何进行通讯,这是一个大问题。
想象一下,有一个班级的同学要共同去推进一个任务,就会进行分工协作,大家分别干一部分事情。GPU也同理,训练的过程中每个GPU都会领一部分图片去做预测,进而判断预测“看见”的图片应该模型的哪个方向走。
我们需要做的是把这些不同的方向聚起来,即所谓的分布式训练。分布式训练,或者说机器之间的互联,这件事情在高性能计算领域其实广为人知,比如说大规模的天气预算,包括70年代冷战的核武器模拟,都让我们积累了大量的高性能计算集群的知识,这些知识对我们今天的计算机系统或者深度系统来说也是一件非常有意思的事情。
同样的GPU配置,在2017年训练一个模型可能需要花掉七天时间,今天我们可能只需要一个小时左右的时间。
不过,所用到的能源显然比人脑要大得多,对吧?一个人脑的功耗可能只有20瓦左右,而当时使用的集群大概在64千瓦左右。
想像一下,一个64千瓦的大脑安在我们头上,会需要多少的散热片才能促成这件事情。
如何在有限的时间内做迅速的迭代,对于我们训练模型,包括算法的迭代,都起到了一个非常好的作用,这也意味着,通过软件、硬件、系统和模型的协同设计,我们能给机器学习提供更强的算力。
算法其实就是我们潜在的能力,算力保证我们能把潜在的能力发挥出来。
为什么要关注算力?
刚才我没提到的一点是,我们实际应用中的模型会要复杂许多,别只盯着从七天变为一个小时的训练加速过程,我们还要看到,比起以前模型的复杂程度可能高了十倍有余。
模型的复杂性是一方面。
模型变得越来越复杂之后,就有可能有存早更多的过拟合,于是我们就会需要更多的数据来进行训练。还记得《蜘蛛侠》电影里面说过的那句话吗?能力越大,责任越大。
谈到数据,前面几年几乎是一个爆发式增长的过程。
1989年,当深度学习或者说深度神经网络第一次被用到实际中时,当时的数据大概只有10个10兆左右。现在回头去看,我现在只需要一个硬盘就可以装在手里。但今天的实际视觉应用中,譬如说淘宝的拍立淘或者无人驾驶汽车,它所需要的数据量,或者说可处理的数据量是非常巨大的,基本上一个工业级的视觉应用,非常有可能出现需要PB级数据来做训练的这么一个情况。
由于深度学习拥有极其优秀的算法及算法潜力,所以我们一方面必须用更大的数据量来进行训练,一方面也是希望通过这个方法最终实现更好的效果,所以我们就非常希望能有算法以及算力来推动更大体量的数据处理。
这个问题并非机器学习领域独有的问题,在很多传统领域也一样。比如小时候经看新闻联播,很多其他具体的内容我都忘了,唯独一点记得特别清楚,那就是新闻联播后的天气预报中,乌鲁木齐这座城市永远处于天晴。当时大家都会觉得说天气预报的准确度并没有那么高,但今天可不一样,譬如说前段时间台风来的时候,我们会发现天气预报已经可以精确到小时级或者是更低的精度上,背后其实就是通过一个大规模系统来处理卫星图片、传感器等一系列气象数据,从而实现更精密的预测。
另外一个例子是报纸,今天我们很多人可能好几年都没有看过报纸了,报纸上的内容都属于静态的,它并不知道读者今天的心情怎么样,或者说接下来准备干点什么。当全社会的数据在不断爆发的时候,一个静态、不与用户产生交互的媒介,会面临巨大的挑战。
比如我们今天打开淘宝,推荐系统向我推荐的内容,这些实时交互系统背后都是由大量的数据与数据 + 机器学习相结合的方法来支撑的。
换句话说,今天的海量数据,是我们训练机器模型的基础,接下来如何从中提取价值、提取规律以及提取导向,进而对机器学习进行有效指导,是我们应该探索的方向。
What’s next?
有了算法、数据和算力,接下来要往哪走?
以前我们一提到开发者,就会讨论框架的事情,特别是在AI领域。
那么我来问问大家,现在大家还知道自己笔记本电脑的硬盘是哪个牌子吗?反正我是已经记不起来。为什么?因为硬盘的技术已经稳定到了一定程度,以至于我并不需要去关注这件事情。我认为今日的机器学系系统、AI框架也发展到了这么的一个程度。
我们应该更加关注框架以上和以下能够解决什么样的一些问题。在拥有了很好的算法、算力和海量数据后,这个时候我们想解决应该是这么一个问题。
在我所供职过的公司里,包括谷歌、Facebook、阿里巴巴,都试图通过20兆瓦的大脑——也就是我们经常说的云来解决这个问题。
20兆瓦是一个什么概念?我在这里举个例子,一个小孩的大脑是20瓦,我们可以想象一下有100万个小孩从这个舞台上跑过,这就是今天的云所能提供给大家的一个能力。
为什么我们说只有通过大量的,通过云的这样一个模式,才能够实现机器学习或者说人工智能的创新呢?因为云向我们提供了更大的规模、更高的可用性以及处理数据的安全性。
以阿里内部举例。
我们处理海量数据需要分布式存储、数据管理、数据篡数等一系列工作,在这一系列工作当中我们会发现传统的大数据领域变得越来越重要;根据训练模型的方法,我们会分为离线和在线两种模式,比如在用户产生检索行为时实时调整模型,以推荐给用户更加有意义或更感兴趣的内容;经过AI训练后,后续还存在大规模部署等一系列问题,比如昨天晚上微信上突然爆红的换脸软件,背后其实是一系列AI图像识别行为,要如何在海量用户一下涌入时把算力提上来,无论是在云上还是端上去支持这么大规模的计算,这些都是在AI框架以外需要去做的事情。
可能有人会问,我是一家很小型的公司,为什么要去关注云的这么一个问题,我并不需要那么大规模的计算。
我想说的是,从开发者的角度来看,很多时候针对开发者的工具、流程等是没有必要去考虑太多的 —— AI框架只是刚才说的其中很小一个部分,假设我们试图把每个部件,包括大数据、数据存储、数据库以及BI等全都揉在一块并进行构建,需要花费很大的成本。
对于一个公司或者业务来说,我们应该更加关注我们的业务,而不是基础架构这方面东西,这也是我认为云所能够提供的能力。
从20瓦的大脑到一个20兆瓦的大脑,我一直感到非常兴奋的一点是,我们在这么一个过程中不断解决这些问题,不断地在试图趋近人的智能——在云上面,通过不同系统、子系统的一个拼接,我们能够完成一个完整的实际生活所需要的场景。
人工智能真的那么好了吗?
我们经常会发现,只要有一个明确的问题,再配上优秀的科研人员和工程人员,就能有效解决问题。
然而很多时候我们在问题的定义上是不明确的。
前几天,我的爱人收到淘宝推荐的这么一个广告,显然这个推荐并不怎么让她满意。我把这个结果发给我在阿里推荐系统一个非常好的朋友,他回了我一个非常皮的评论:
显然,在对人的心情的把握上,机器还有进步空间。
这已是后话,我想说的是,今天AI和云的结合是一条必经之路。而我个人感到非常兴奋的一点是,自己开始从一个研究者的角度,开始逐渐转向工程和业务,转向了一个更宽的思考范畴试图把AI往前推到更进一步的方向。
这是我今天想利用这个场合向大家分享的一些故事,非常感谢大家!
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。