我从小看着机器人大擂台[1]长大,在这个节目中,发烧友设计并制造无线遥控的战斗机器以角斗士的方式进行战斗,看谁的机器人更胜一筹。操作者们依赖于闪电般快速的反应能力,以及他们对于机器人充满想象力和有效性的设计来击败对手。而赛场上的机器人们不仅相互之间战斗,还要与可怕的主机器人周旋。这些主机器人在场上巡逻,摧毁并分解任何已无行为能力或不幸迷失在绝境中的机器人。
说实话,看机器人打擂令我热血沸腾,也在我心中种下了以后研究相关领域的种子。
不过,反过来思考一下,如果我们希望评价人工智能孰强孰弱,是否也得搭个擂台,让它们真枪实干战上一场呢?
并非如此,或许我们可以参考人类之间竞技测评方式,然后用于人工智能。
回想一下,有两大类测评方法,第一类如上所示,针对某项领域,我们选出几支队伍让他们进行两两对抗,从中逐出最强者,而第二类方法是我们指定赛道,划定标准,然后基于某种共识规则进行评分,得分最高者胜。这么说可能有些抽象,奥运会中的跆拳道赛事就属于前者,而百米跨栏属于后者。
说到奥运会,总所周知它是世界规模最大的综合性运动会,那人工智能领域有没有类似比赛呢?有,但也不完全有。
当前人工智能应用日益复杂化、多样化,芯片、系统厂商纷纷给出不同的衡量标准,以印证其产品在计算性能、单位能耗算力等方面处于行业领先水平。但由于人工智能应用涉及环节多,系统异质性较强,尚未有大一统的测试标准。
或许我们先不用追求完美,不妨先以AI芯片赛道为例,国际上主流的有MLPerf,苏黎世理工的AI benchmark[2],国内有中国人工智能产业发展联盟的 AIIA DNN benchmark,小米的Mobile AI bench, 中科院计算所智能计算机研究中心的NPUBench等。这些评测多数属于基准测试的范畴,由于这些基准测试的出发点不同,设计的思路,基准测试的内容和评估指标也都不尽相同,业界尚未有公认的基准测试标准[3]。
在这之中,MLPerf算是当前最为主流全面的测试基准,它侧重评价人工智能的软硬件性能,可用于比较相关企业在部署优化模型方面的实力。
MLPerf测试了神经网络在不同量级的设备在自动驾驶、自然语言处理、计算机视觉等各种应用上进行模型训练和推理的效率。
训练任务主要分为普通设备和HPC两种场景,而推理任务分为数据中心,边缘设备,移动设备,微型设备四种场景,一共六种场景。截至2021年6月,推理任务在数据中心 [4] ,边缘设备 [5] 和移动设备 [6] 的三个场景基准测试结果已发布v1.0正式版本 [7] [8] 。而剩下其他三种场景还需要进一步改进方案设计。
数据中心(Datacenter)倾向于传统的云计算场景,适合对算力需求高的大模型;而边缘场景(Edge)场景因为有时延、网络带宽方面的需求,边端的设备算力较为有限,所以会倾向于轻量级或者方便进行计算卸载的模型;移动端和微型设备对设备算力、内存、能耗等方面有更高的要求,生产生活应用中我们常需要根据实际需求进行相应取舍,选择最适合的深度学习模型。
上图是图像分类任务各种深度学习的横向对比,横坐标反映算力需求,纵坐标反映模型精度。没有最佳的模型,只有最适合的模型,每个模型的设计都需要进行模型精度、内存需求和计算复杂性之间的权衡。
近年来,随着万物互联时代的快速到来和无线网络的普及,网络边缘的设备数量和产生的数据都快速增长。根据IDC预测,到2020年,全球数据总量将大于20泽字节(ZB),而物联网产生数据的15%都将在网络边缘处理。在这种情形下,以云计算模型为核心的集中式处理模式将无法高效处理边缘设备产生的数据。集中式处理模型将所有数据通过网络传输到云计算中心,利用云计算中心超强的计算能力来集中式解决计算和存储问题,这使得云服务能够创造出较高的经济效益。但是在万物互联的背景下,传统云计算有几个不足:1.实时性不够,万物互联场景下应用对于实时性的要求极高。传统云计算模型下,应用将数据传送到云计算中心,再请求数据处理结果,增大了系统延迟。以无人驾驶汽车应用为例,高速行驶的汽车需要毫秒级的反应时间,一旦由于网络问题而加大系统延迟,将会造成严重后果;2.带宽不足,边缘设备实时产生大量数据,将全部数据传输至云端造成了网络带宽的很大压力。例如,波音787每秒产生的数据超过5GB,但飞机与卫星之间的带宽不足以支持实时传输;3. 能耗较大,数据中心消耗了极多的能源,根据Sverdlik的研究,到2020年美国所有数据中心能耗将增长4%,达到730亿千瓦时,我国数据中心所消耗的电能也已经超过了匈牙利和希腊两国用电总和。随着用户应用程序越来越多,处理的数据量越来越大,能耗将会成为限制云计算中心发展的瓶颈;4.不利于数据安全和隐私,万物互联中的数据与用户生活联系极为紧密,例如,许多家庭安装室内智能网络摄像头,视频数据传输到云端,会增加泄露用户隐私的风险。随着欧盟“通用数据保护条例”(GDPR)的生效,数据安全和隐私问题对于云计算公司来说变得更加重要。
边缘计算的基本理念是将计算任务在接近数据源的计算资源上运行,可以有效减小计算系统的延迟,减少数据传输带宽,缓解云计算中心压力,提高可用性,并能够保护数据安全和隐私。对于边缘场景的人工智能,即边缘智能感兴趣的话,不妨参考这篇之前撰写的介绍文章:边缘智能综述。
针对上述每类场景都包含固定任务和开放优化两项性能竞赛赛道。这个固定任务(Closed)和开放优化(Open)的赛道设计比较有意思。前者要求使用相同模型和优化器,并限制batchsize或学习率等模型超参数,衡量同一深度学习模型在不同软硬件上的性能,公平考察软硬件系统优化的能力;而后者放开了对深度学习模型的约束,只限制使用相同数据解决相同问题,不限制模型平台,侧重于深度学习模型及算法优化的能力,旨在推进模型优化创新。
区分两个赛道这个设计非常符合直观,因为软硬件系统的异质性,我们以往很难客观比较到底是什么原因造成了性能的提升,而一方面固定深度学习模型及超参,可以针对性考察硬软件优化功底,而另一方面不限制模型的赛道,也能在考察硬软件优化之余,比拼深度学习模型设计的水准。
按照我的个人理解,前者就像是参加高考,考生们在规定时间内针对同一套题做出解答,而后者就像围观高考,考场外的人们拿到试卷不限规则去作答,充分炫技。
自2018年以来,已经有多次评测结果,对于结果的解读可以先移步参考资料部分(我在写作过程中也参考了各位老师的资料,非常感谢)。限于篇幅,我或许会在下一篇内容针对MLPerf测试基准设计和现有测试结果进行深度解读,这次就先写到这里。
自人工智能成为学界和工业界火热概念以来,这一领域竞争日渐激烈,人生有限,并非所有人都需在主流方向上争到头破血流,或许找准适合自己的独特赛道,会更加开心一点,对吧~
2021年7月1日补充
美东时间6月30日,基准测试MLPerf公布最新一期榜单(模型训练赛道 V1.0[9][10])。
之前4月份公布的是模型推理赛道[8]。
在集群封闭任务赛道中,谷歌与NVIDIA各自获得4项第一;在单机封闭任务赛道中,浪潮获全部8项训练任务的4项冠军,NVIDIA、宁畅各获得2项任务冠军。
参考资料
Reḍḍī, Vijayarāghava et al. “MLPerf Inference Benchmark.” 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA) (2020): 446-459.
AI时代需要什么样的基准?从Mlperf AI基准测试中读出了这些
@唐杉 如何评测AI系统? / AI芯片的第一次同场竞技—数据,及数据背后 / AI训练芯片巅峰对决,如何正确“围观”?
问智算时代,谁主沉浮:2021 MLperf™全球AI基准测试榜单背后
既然是要说人工智能,就必须要提到人工智能的祖师爷阿兰.图灵(Alan Turing),没错,他也被认为是计算机科学的祖师爷之一。
早在1950年,图灵祖师爷就提出了一种判断『计算机能否思考』的测试方法,这个测试方法其实很简单,把两个人类、一台拥有『人工智能』的计算机分别放在三个屋子里,他们互相隔绝,只能通过通讯终端通过文字交流,也就是只能文字聊天,其中一个人类扮演『提问者』,他通过文字聊天向其他两位『回答者』(一位是人类,另一位是人工智能)提出各种问题,如果『提问者』无法根据『回答者』的反馈判断出到底哪一个『回答者』是人类哪一个人工智能,那就说明那个人工智能已经能够和人类一样思考,思维表现得和人类一样,那么,也就是说这个人工智能通过了『图灵测试』。
不得不佩服图灵祖师爷,对于『计算机能否思考』这样一个抽象的哲学问题,他设计了一个简单可行的实验就能够证明。
不过,虽然祖师爷提出的图灵测试很简单而且精妙,但是,时至今日,图灵测试更多的只是一个长远目标,并不能作为现在人工智能的衡量标准,为什么呢?
首先,至今还没有哪个人工智能系统具备挑战图灵测试的能力。人工智能虽然取得了长足发展,但是并没有实现真正近似人类大脑的智能,更不具备人类的意识和情感,所以,虽然有各种各样的聊天机器人,但不管她们表现得多么健谈和知识渊博,只要稍微认真一点追问,那也很容易判断出这些聊天机器人不是活人,更不要说在图灵测试的框架上,还有另外一个人类回答问题,两个一对比,判断出谁是人工智能更容易了。
其次,图灵测试只是考察人工智能是否能像人一样思考,并不考察这个智能有多强大。请注意,并不是说一个人工智能和人越像就越强大,如果和人脑一模一样的话,那还要人工智能干吗?举个例子,阿尔法狗项目并不是要制造一个水平一般的棋手,那没有意义,他们要制造的是一个棋力超越人类的人工智能棋手,并不会以通过图灵测试为目的。
总之,图灵测试虽然高屋建瓴,但咱们现实一点,基于人工智能发展的现状,此时此刻不能拿图灵测试当成人工智能的衡量标准。
那么,人工智能的水平用什么来衡量呢?
我的观点是,需要MLPerf这样关注于『算力』衡量的标准,而且必须是行业普遍接受的标准。
在了解MLPerf之前,我们先要知道,行业对于人工智能的衡量的需求特点是什么,因为我们必须要有一个方式衡量人工智能,如果不能量化性地衡量,那么我们怎么知道一种技术的发展是真的改进了人工智能呢?如果没有基准测试,我们怎么知道哪一种人工智能系统表现更优呢?
近几年人工智能的研究领域各种论文如雪片一般被发表,我们用一点常识也知道,这么多『研究结果』中肯定良莠不齐,不可能论文作者说他们的获得了大突破,就代表他们真的有打突破,需要一个客观衡量标准;在工业界,同样有各种各样的人工智能产品,无论是硬件还是软件,不能厂商吹牛说他们的产品比友商的厉害,我们就该认为真的厉害,同样需要一个客观标准来比较不同产品。
正因为这种需求的存在,各大企业、高校和相关组织在人工智能性能基准测试领域有很多探索,相继开发了各类基准评测程序,比如由图灵奖得主大卫·帕特森(David Patterson)联合谷歌、斯坦福、哈佛大学等单位共同创建的MLPerf,小米公司的MobileAI bench,百度公司的DeepBench,中国人工智能产业发展联盟的AIIA DNN Benchmark,以及在双精度的LINPACK基础上改成混合精度的HPL-AI等等,在这么多基准测试中,MLPerf是最备受瞩目的一个标准,我们就来重点介绍一下MLPerf。
MLPerf,这名字就很有意思,是Machine Learning Perf(机器学习性能)的缩写,这也点出了人工智能现阶段的一个现状——主流的人工智能都是基于机器学习(ML)的。
所谓机器学习,也就并不是直接编写人工智能的判断逻辑,而是创建通过数据和环境反馈自我调整的程序,通过不断训练这样的计算机程序,让计算机程序自己『学会』某种技能,从而能够外界输入有一个『智能』的反应,比如根据棋盘局势决定如何下棋,比如根据道路情况自动决定如何驾驶车辆。
MLPerf中虽然名字中有Perf,但是绝不仅限于性能,这个逻辑很好理解,一个人工智能的性能无论多好,如果准确度不够高,也没有意义,比如图像识别系统总能半毫秒就识别出一个物体,但是总是把小猫识别成小狗,总把红绿灯识别为电线杆,那也没有什么价值,所以,对于人工智能的测试,不能只看性能(Performance),还要看准确度(Accuracy),这一点上MLPerf做得很好,两方面都有兼顾。
说到这里,就要说说MLPerf可圈可点之处。
第一,着重于算力,而不是着重于算法。
人工智能发展的现阶段,并未发展出模拟人脑结构的系统,都是靠机器学习这样的训练方法来实现类似人脑某方面的智能,而机器学习就需要巨大的算力,圈内人都知道,现在算法改进带来的改进,远不如算力改进获得的进步更大。
根据OpenAI的统计,自2012年以来,用于大型人工智能训练所消耗的运算能力,每隔3.4个月就要增长一倍,这都超过了摩尔定律!摩尔定律也只是预测每18个月计算能力增加一倍,换句话说,人工智能对于算力的需求增长速度,已经超过了电子设备性能的增长速度。
如何有效地利用运算能力,就成了人工智能领域最关键的问题,如果不重视,很快人工智能的发展就会进入瓶颈期,被算力卡住脖子,这就是MLPerf重点测试算力的原因。
算法这东西虚无缥缈,但是算力却是可以量化衡量的,测量算力才是关键。
第二,全方面测试人工智能系统的能力。
在MLPerf出现之前,研究领域和工业界其实也有很多模型用于评测,但是这些模型大多只着眼于一种场景,并不具备通用性。
这么说吧,一个系统在服务器端表现良好,不代表她在移动设备端表现良好,一个系统对于图像识别能力表现良好,不代表她在自然语言处理方面就肯定表现良好。
各个人工智能系统之间的比较,本来就不是拿两个苹果来比较(apple-to-apple comparsion),更多的是好比橙子和苹果之间的比较,这就是做一个统一的评测标准的难点。
MLPerf考虑得非常全面,不是只测试一个应用场景的,而是多个应用场景,会覆盖机器视觉、语言处理等多个方向,即使对于某个具体方向,也要选择多种模型来评测,这个原因也很简单,就拿图像识别来说吧,自动驾驶领域对于输入图像的清晰度,和手机上的图像识别清晰度,要求当然是不同的,不能认为只要是同一个领域用一个标准就全覆盖了,必须要选择有代表性的多个模型来分别验证。
对于机器学习,可以分为两部分,训练(Training)部分和推断(Inference)部分,MLPerf对于训练和推断都进行评测,这同样是为了对人工智能系统有一个全面的判断。
第三,社区驱动的标准。
之前提到的一些评测标准,很多都是某个公司提出来的,不要怪我们以小人之心度君子之腹,而是当个公司创立的标准难免有一些偏颇,我是真不相信单个公司的标准有多大程度适用于整个业界,尤其对于人工智能这样复杂的体系,毕竟,对于提出这个标准的公司也许适合,但是未必适合于整个业界,而MLPerf是包含研究界和工业界很多组织一起确定的,最大程度地体现了整个行业的需要。
这可能是MLPerf最大的优势,因为是社区驱动的产物,而且还在不断根据社区反馈演化,避免了偏袒某个厂商或者某种场景的引用,真正做到了公正而且公开,评测结果也具备公认的权威性。
实际上,现在越来越多的厂商和组织加入到MLPerf中来,这就是一个滚雪球效应,MLPerf越成功,加入的组织越多,从而让MLPerf进一步得到完善。
MLPerf在2018年创立,经过两年的版本迭代发展,到今年4月份发布v1版基准测试,参与的厂商既包含nVidia、Intel、高通这样的芯片制造商,也有浪潮、Dell这样的服务器制造商,既有云服务提供商阿里、谷歌、华为,也有很多初创公司的身影,可以说,MLPerf最大程度地代表了人工智能领域的基准测试标准。
从最新的2021 MLPerf基准测评标准来看,浪潮获得了18项性能第一,尤其在数据中心方面优势明显,而英伟达(NVidia)获得10项性能第一,全部在边缘计算方面,这两家就占据了70%的冠军榜单,其他厂商要加把劲了。
总结一下,人工智能的发展任重而道远,图灵祖师爷提出的图灵测试虽然精妙,但是在现阶段我们需要的另一种对于人工智能的评测标准,像MLPerf这样的评分系统,就好比电影行业的奥斯卡,每一个电影人都以获得奥斯卡奖为目标和殊荣,就会激发他们不断努力创造更好的电影表达方式,同样,人工智能领域的从业者以MLPerf这样的评测标准为基准,也会激励他们不断改进,制造出全面发现的人工智能。