ZAEKE知客移动数码@IT·互联网

AI跑分靠谱吗?端侧AI评判体系与误区科普

2018-08-20  本文已影响12人  ZAEKE知客

60年来,人工智能起起落落。最近十几年,在IT巨头的巨额投入下,终于看到了开花结果的未来。5月的高通人工智能创新论坛中,高通中国区董事长孟樸表示预计到2021年人工智能衍生的商业价值将达到3.3万亿美元。

这是什么概念呢?如果把人工智能衍生产业当做是一个国家的话,这个3.3万亿已经能超过英国(3.2万亿)成为世界第五经济体了。普华永道甚至预估,人工智能到2030年会带来16万亿美元的GDP增长,比2017年的中国GDP还多了2万亿。

而智能手机将会是最普及的人工智能平台,并直接影响人类生活方方面面。除了很早就开始布局的高通,近年来苹果、华为海思、联发科等移动SoC厂商都开始了移动终端侧人工智能的探索。

最近甚至还和传统的CPU/GPU一样,出现了移动端的AI的benchmark跑分测试。但大众不但对AI本身知之甚少,而且还存在很多对于AI和AI测试的误区,所以我们这次将会从高到低,为大家梳理一下端侧AI的一些科普和误区。

AI与深度学习的关系

首先,我们从“AI人工智能、机器学习和深度学习”这几个逐级递进的概念开始说起。人工智能的目的是要让计算机有类似人类的推理、知识、规划、学习、交流、感知等能力,主要有“模式识别、机器学习、数据挖掘、智能算法”4个技术分支,当中对普通用户影响最大的是机器学习。

机器学习,顾名思义就是让计算机自行学习创建模型和算法。近年在计算机视觉和自然语言处理领域都效果卓著的深度学习,就是其中一种让计算机创建模型的方法。其通过模拟神经元,对数据高级抽象,完成核心的训练(training)和推理(inferencing)过程。

“训练”是用大量数据输入到现有的算法模型,让计算机从数据中调整各种参数来优化算法模型。而“推理”就是使用训练出来的模型就能对未知数据进行判断和预测。大家偶尔听到的“深度神经网络、卷积神经网络、深度置信、递归神经网络、前馈神经网络,什么决策树、特征工程和流水线模型”,都是深度学习当中的模型和框架。

看着高大上的AI能干什么?

那其实深度学习能干什么呢?举个例子,给算法模型“喂”一堆食物的照片后,这个调整训练出来的模型就能识别出食物的照片。给“阿尔法狗”的算法模型喂一堆棋谱,随后就是我们之前看到的人机棋战了。

当年深度学习突破时,人类突然就发现了一个新世界。严格来说, 是发现了通往新世界的捷径。近年来科技巨头的巨额投入、模型框架的提升和计算力的暴涨,让人工智能在图像、人脸识别、语义分析等强人工智能领域都取得了阶段性的成果,并已经被广泛应用在日常的网络和移动端产品中。

基本上现在云端服务和旗舰手机,甚至安防设备上经常能看到的强弱人工智能应用,都是加入了深度学习技术的产品。日常公共领域的人脸取款、人脸付款、机器车牌识别和移动追踪就不说了。

从近年开始普及的相机自动场景识别、物体识别/分类、拍照增强、相册人脸查找和分类、缩略图的超解析,到识别条形码、笔迹转换等图像领域,再到Siri/Google Assistant/微软小娜等语音助手的唤醒、语音分析和翻译软件等自然语言处理应用,都是些以前想都不敢想,但现在却非常实用的AI功能。

凶残的端侧AI竞争态势

现在看回去,手机等移动设备已经是非常重要的本地深度学习载体。类似自动驾驶,终端侧的使用状况复杂、联网质量无法保障、对实时性要求很高,不适合全靠云端处理。而且终端侧如果能“就地”对原始数据进行处理,就能大幅减轻传输、存储和云端的压力,并能有效保护隐私。

所以能遇见的未来,由云端负责训练和优化模型,随后再云端或终端侧执行和堆理模型的“云端+终端”形式,是最受关注的人工智能形式之一。但最开始搞深度学习的,都是云端高性能的服务器或强大的GPU,根本没有移动端的事。

其一是因为大量的数据训练需要庞大的算力,其二是神经网络算法模型,和传统软件需要的软硬件要求有本质的分别。直到高通第一代配备人工智能的产品骁龙820面世之前,民用移动端根本没有能跑神经网络的产品。当然,其实现在很多第三方的深度学习程序,也无法用移动产品直接跑起来,或者效率都很低。

现在英伟达、Google、Facebook等巨头云端AI打得不可开交。而终端侧这边,有CEVA、Synopsys这种传统DSP IP厂,也有Cadence这种可定制处理器,ARM在新构架中也有相关的支持,上年的苹果A11仿生处理器、带NPU的华为麒麟,盯准的都是端侧AI。

但暂时跑得最远的是高通,其在近3代的旗舰骁龙平台产品上对人工智能的重视和投入,在加上其压倒性的移动平台占有率,让其在端侧人工智能成为一道高墙。

AI跑分为何物?

AI和深度学习的发展迅速而且前景广阔,涌入了大量的研究机构和公司,竞争产品层出不穷,这自然就少不了正面甚至跨平台的比较。正如CPU和GPU走过的路一样,为了衡量不同产品的性能高低,AI领域近年也开始出现benchmark基准测试,也就是我们熟知的“跑分”。

除了国外由大牛多如繁星的MLPerf外,在2017年10月的中国人工智能产业发展联盟(AIIA)也正式启动了人工智能芯片Benchmark项目。而移动端,最近比较热门的是苏黎世联邦理工学院推出,跑在安卓端的AI基准测试AI Benchmark。

基准测试,类似在给学生出考试题,试卷需要由横跨最常用的应用领域的试题组成,并为不同的考题赋予不同的分数权重以得出最后的总分,从而产生最公平、最有代表性的结果,以此衡量各种处理器的性能高低。

基准测试的核心是测试项目的选取和测试权重的确定。类似相机领域的DxOMark,好的基准测试除了能避开冗余设计和测试,也要求设立者要对行业未来具有足够的洞察力,能帮助设计者探索边界和极端情况,反映和引导行业向正确的方向发展。

但AI深度学习,涉及到了模型训练、数据推理等多个复杂步骤,且深度学习本身的“捷径”性质,这领域是理论严重落后于实践的黑箱,业界对AI benchmark还处在讨论的早期阶段,现在的AI基准测试也有很多的不足和争议之处。

针对深度学习核心的训练和推理两个环节,有着不同的评判体系。好消息是模型训练这边,虽然MLPerf的综合评分依旧比较难定夺,但已经是比较有公信力,比较统一的测试基准,剩下的主要是细节的优化。但坏消息是,在对于主要负责推理过程的终端侧AI,基准测试的设立还困难重重。

简单的神经网络结构图

首先是如何确定指标和权重?即便抛开优化程度、硬件构架等若干问题,延迟、带宽、能耗都要考虑,各种神经网络模型都有不同参数,不同设备在不同参数下有不同的输出曲线。如何在不同级别的设备中横向参考?(就像移动端和PC端的CPU、GPU跑分都还没能统一比较)?

而云端和端侧的应用又可以分为不同类别,还有各自的特点。是否需要针对不同的应用来搞不同的基准测试?这些子项目如何分配权重,能否统一到一个相对公正客观,有代表性的数值上?这些都是应用领域的差异性和实现选择的多样性直接导致的难题。AI基准测试的工作量之巨,让很多业者都觉得短期很难有统一的基准测试出现。 

AI测试与AI优化的误区

现在过头来看AI Benchmark这种早期的移动端AI测试,其结构还是和Geekbench 4这种移动端CPU测试很像。在AI Benchmark中,使用了MobileNet -V1、InceptionV3、Resnet - V1等在内的9种神经网络模型进行测试。具体项目包含2个物体识别分类、2个超分辨率,其余是人脸识别、图像去模糊、语义图像分割、图片增强和内存极限测试。

测试细节说明

首先最明显的是测试项目偏少,仅有9个子项目。作为对比GeekBench中即便是占比只有45%的整数测试,其都有13个子项目测试;其次是选取的测试模型的参数、压力、精度要求同样太单一。这样的测试覆盖面和精度,不要说AI测试,涵盖面和复杂度还不如CPU测试。

毕竟现阶段AI的研究和应用实在是太广,即便是云端大型的CPU、GPU、TPU不同的构架都未能分出高下。高通人工智能引擎AI Engine是为了在骁龙移动平台上加速终端侧人工智能用户体验实现的硬件与软件组件的集合。

其中关键组件包括——硬件:Hexagon向量处理器、Adreno GPU和Kryo CPU的人工智能优化组合;以及一套软件工具和库:骁龙神经处理SDK、Android NN和Hexagon NN;上述所有旨在共同支持开发者与OEM厂商,轻松实现和加速骁龙内核上的人工智能处理。

目前全球多家领先的OEM厂商、开发者以及云供应商等生态系统厂商已采用或宣布支持高通人工智能引擎AI Engine,以优化和加速人工智能应用。所以移动端这边,仅靠现有的简单测试,就想测试出高通这种“CPU+GPU+DSP异步构架”和麒麟NPU等后来产品的实际AI性能差距,未免有点太儿戏了。

虽然项目和比重还未达成共识,但评判AI性能的标准早就有共识了。在移动端,涉及了“性能、功耗、芯片面积和准确率”这4个核心。它们分别对应实际的响应速度、功耗控制、成本控制和用户体验。当放在这4个维度的评判体系下,不单单AI测试跑分还有不少的问题和改进空间。连部分有独立NPU的产品,都有很多实用性上的改进空间。

这里最明显的矛盾是,现在很多AI场景还不成熟,使用率有限,如果像部分产品那样直接使用独立NPU,除了会巨大的芯片面积导致成本提升外,还有功耗和发热上的影响,投入和产出完全不成正比。在性能、功耗、芯片面积和准确率这4大基准下,平衡最好的依旧是高通这边专项优化的异构路线。

第二个误区,是测试中对深度学习结果的精确率要求。在AI Benchmark中,2个图像识别测试的精确度要求分别只有60-80%,但在靠近用户的端侧应用,无论是手写识别还是高频的图像识别和分类,无论是部分测试还是实际产品,这样准确率都明显无法符合使用要求。

关于精确度的问题,高通在之前5月的人工智能创新论坛中,罕见地展示了自己和竞争对手在ResNet50和Inception-V3这两个主要用来进行图像识别模型的精确度和速度对比。在高通中高端的骁龙660/710中,其准确率和性能都比对手要高,有明显是个优化和设定上的取向差别。在直接面向终端用户的AI,除了速度外,识别手写或人脸/物体识别结果的成功率,都会直接影响用户体验和后续使用率。

高通AI的领域与层级图

最后一个误区,源自于AI基准测试完全无法衡量AI生态。AI芯片和通用性的CPU不同,AI软件的运行效率和开发商的优化和支持度直接关联,而且AI落地最终是由开发商来完成的。市场占有率低或者周边生态不完整的AI平台,发展越到后期,其体验差距会越发明显。

移动终端侧AI平台的硬件之争,最后一大部分都会是应用生态和配合度之间的对比,这也是高通如此积极和各领域开发商合作的原因。已知的高通合作伙伴,除了Facebook Caffe2、Google TensorFlow、Microsoft Azure这些上游的深度学习语言和框架外,5月的高通AI Day活动中还出现了腾讯高能舞室、旷视科技Face++、商汤科技、百度DuerOS等众多应用厂商的身影。

带独立NPU的SoC产品,在部分AI基准测试中虽然拿到了超高的分数。但这是忽略功耗、精确率、成本以及移动端AI基准测试设计不完善的共同结果,对实际使用价值的意义不大。

相反,看着很低调的高通,经过3代骁龙布局的异构AI路线,在功耗和精确率上要均衡很多,高通骁龙845移动平台就是高通第3代骁龙布局很重要的一环。而其在出货量、技术储备和生态搭建过程中的角色定义,还在继续加固其地位。在端侧AI,高通依旧还跑在很前面,这是我们需要理清的现状。

上一篇下一篇

猜你喜欢

热点阅读