苹果、华为搞起了移动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芯片的最大意义:硬件不能解决一切问题,但可以让更多的开发者参与其中。