苹果、华为搞起了移动AI芯片,但开发者们似乎意见很大
作为一家专注于人工智能产业的媒体,在麒麟970和苹果A11刚发布时我们也着实兴奋了一阵儿,可如今已经过去了一个多月,除了厂商展示参数、媒体狂欢之外,我们似乎还没听到其他人声音。
移动AI会给手机带来革命性的新体验吗?类似麒麟970和苹果A11这样的芯片,会成为移动AI最重要的驱动者吗?为了避免落入空谈,我们分别采访了BAT人工智能业务部、移动端开发、直播产品、深度学习图像处理四个业务领域的开发者。想知道在他们眼中,移动AI芯片到底是什么模样。
BAT开发者:模型优势比端的部署更重要
此前我们已经讨论过,在各种App中可以看到大量云端AI的痕迹,自拍美颜、语音助手,AI已经存在于移动设备里。可实际情况往往是机器学习开发者在一端研究算法、处理数据、训练模型,而移动开发者在另一端负责其他的数据结构和编程等等。两者之间通过一个云端服务器连接,除此之外少有交集。
提到移动AI时,大部分开发者考虑的是将模型移植到应用程序中,是否会加大安装包的大小,是否在每次更新模型时都需要上传更新包通过应用商店审核。
当下很多大企业对AI的追求几乎是不计成本的,加上唾手可得的大量数据,几乎要把开发者们“宠坏”。利用海量数据训练出复杂的模型,时时刻刻都在更新模型试图让其更加完善。
对于这些大企业来说,在得到一个让自己和行业都满意的模型之前,考虑在哪个端部署似乎有点早。一位来自阿里某智能产品的产品运营告诉我们, 相比端与端环境间的比较,他们目前更关心的是把算法模型打磨得更好。
这无形中也体现了AI发展的现状:从算法为主导到以产品为主导的过渡期,在用户们用脚投票之前,开发者很难自发地从一个开发环境迁移到另一个开发环境中。尤其是一些掌握着优势资源的大企业,或许对于他们来说,不安全感来自于算法间的差异,而不是用户体验上的细微之处。
历经转型的开发者:定制AI的无尽可能
不过一位曾经经历过PC端到移动端转型的开发者提示了我们,移动AI或许不仅仅是“离线AI”这么简单。
在从PC端到移动端迁移的过程中,开发者们发现不同的设备中,用户的行为是有很大差异的。同样,即使都是移动设备,手机、平板、智能手表甚至智能音箱等等产品上,用户的行为依然会产生很大差异。比如在平板中用户更倾向于打开视频,而手机中用户更倾向于打开文字信息等等。可在云端为主的智能推荐算法中,这两种设备的数据常常被混合在一起处理。
当移动设备有了在本地处理的能力,开发者就可以让推荐算法更好的匹配不同设备。以目前苹果A11和麒麟970公布的参数看来, 将智能推荐这类本身就依托于网络的算法完全移植到移动端本地,其实意义不大,但把云端推理结果放到移动端本地再次处理,会得到很不一样的用户体验。
这也意味着算法有可能和设备,并且进一步和个人用户更好地结合起来。通过移动设备丰富的感知能力,地理位置、天气、光线、使用时长、用户行程安排,甚至体温心率等等原本无法轻易获取的数据,都可以通过本地计算结合到已有的算法模型之中。在拥有移动AI的未来,外卖App会在下雨天把你最爱的火锅排到推荐流前列,而在公司时则把送餐速度最快的餐品排到前列。
总之, 从开发者的角度来看,移动AI最大的价值是在于把原本的“通用AI”变成“定制AI” 。
迁移实操开发者:移动AI需要更统一的编程环境
“定制AI”的概念虽然迷人,但真到了开发的实操阶段,却不像想象中那么容易。
一位就职于直播平台的资深PE工程师告诉我们,目前移动端GPU/AI芯片还是一个较新的概念,API接口较混乱,缺乏编程和计算方式的统一。
就以现在来看,苹果A11只把GPU能力开放给了CoreML一个框架,而目前大多数开发者采用的都是Tensorflow、Caffe等主流框架。这无疑给未来的迁移造成了影响: 开发者究竟要在原有框架上进行“阉割”,还是在CoreML上重新编程?
如果厂商提供较高的抽象层,移动AI开发者只能一个个去配适硬件抽象层。要是厂商倾向于提供底层抽象,就可以由更高层次的抽象屏蔽差异,从而提高开发效率。
尤其是对于Android这类本身生态就比较混乱的系统,开发者很可能受到更多阻碍。
以目前通用的CPU为先例,不同厂商的功耗和发热控制逻辑不同。同样的神经网络,在某一厂商的CPU上可能跑得很顺畅,而在另一家厂商的CPU上可能就会触发过热保护降频,最终导致神经网络的计算性能有剧烈的波动。
所以大部分开发者只敢在产品中嵌入一些计算量比较小的网络,或者是调用频率比较低的功能,无法选择在持续功能里用复发神经网络。
深度学习开发者:芯片仅仅是移动AI的开始
对于用户而言,移动AI芯片的出现意味着可以在终端上获得更好的产品体验,可对于开发者来说,移动AI却不能靠芯片一蹴而就。
我们采访了有着中国版Prisma之称的深黑科技,其CEO Jason告诉我们, 目前大多数移动AI芯片在机器学习做了较为普适性的优化,而对一些特定的计算方式则没有进行太多优化。比如深度学习中需要的卷积计算,当前更适合部署在云端。
并且在计划从云端到终端的迁移时,开发者还会受制于原本的框架。像Tensorflow就很容易支持iOS和Android上的部署,让迁移变得更加容易。可像Caffe、Torch这样基于小团队的框架,在产品化上相对乏力,目前还无法帮助开发者将代码迁移到两个移动端。这也给了Tensorflow更多的优势,尤其是在消费级应用之上。
移动AI芯片不能解决所有问题,但很多团队正在试图从软件方面加速移动AI的部署。在今年刚刚拿到融资的美国西雅图的AI创业公司xnor.ai,他们利用二值化神经网络减小神经网络模型的储存大小,从而加快运算速度、降低计算成本。最终实现不依赖网络,在嵌入式设备中部署深度学习模型。
硬件的出现,只是移动AI生态的一块基石。进入业务层面,还要考虑API配适、软件优化,甚至未来可能出现的5G网络等等。
所以,移动AI芯片没什么用处?
和开发者们交流过后,我们开始思考:对于他们而言,移动AI芯片的出现到底意味着什么? 虽然硬件的出现不代表立刻建立起生态圈,但手机厂商对移动AI的押注无疑给了大多数开发者信心,让更多人加入这一领域。
更重要的是, 移动AI芯片给了开发者推出轻量级产品的可能——不必担心云计算资源的使用资费、也不必担心用户量增长带来的服务器宕机。 可以说移动AI芯片的出现降低了消费级AI应用的准入门槛。
回到两款移动AI芯片上。苹果A11性能上的弱势不明显,可仅仅把GPU能力开放给CoreML和Metal 2(一款应用于游戏的图形处理软件)的做法明显降低了很多开发者的热情。这样的做法进一步巩固了iOS生态的完整和稳定,但更适用于高门槛定制化开发。
苹果这样的选择虽然挑不出错,但也很难心悦诚服地说是正确的。毕竟“完整稳定”和“画地自限”的区别只在一线之间。相对而言,如果麒麟970可以率先向更多框架和软件开放NPU算力,想必也会吸引更多的开发者。
当然,每个开发者写下自己第一行代码时,想到的绝不是去纽交所敲钟,而是凭着天生的好奇,第一次尝试和一个未知的世界对话。如果移动AI芯片可以让开发者们暂时放下无休止的需求,用第一次写代码时的热情去探索移动AI,不管对于芯片厂商还是人工智能产业而言,都是弥足珍贵的收获。
或许这正是移动AI芯片的最大意义: 硬件不能解决一切问题,但可以让更多的开发者参与其中。