有新开源代码当然是好事,手机端还是比较奢侈的。希望这个框架坑少一点、小一点,好能把更多的模型算法顺利地移植过来,好能进一步自动化剪枝、量化,进一步自动化知识蒸馏。在嵌入式端跑更多的算法,实现更多的功能。
目前在小米手机上已广泛应用,如人像模式、场景识别等。大家如何评价?
有新开源代码当然是好事,手机端还是比较奢侈的。希望这个框架坑少一点、小一点,好能把更多的模型算法顺利地移植过来,好能进一步自动化剪枝、量化,进一步自动化知识蒸馏。在嵌入式端跑更多的算法,实现更多的功能。
现在移动端的芯片有很多种,高通骁龙系列,小米澎湃芯片,MTK,华为海思,各个SOC厂商所采用的技术又不尽相同,这对于APP的开发者来说是烦的。从一个APP开发者的角度出发,我们希望能够有类似JAVA这样(build once,run anywhere)的框架能够屏蔽掉硬件层次的差异,这样能够带来极大的便利。目前各SOC基本上都有CPU和GPU,GPU对于神经网络运算的加速又是卓有成效的,所以要充分利用手机的硬件能力加速神经网络的速度,GPU是必不可少的。
小米的主要优势在于自己有设备平台,场景充分数据量大。注意到小米主要做的是框架,方便算法开发,自己本身的算法研发应该不多。简单罗列一下:1. 基于自家平台,适配性好。移动端轻量算法在性能上不太受挚肘。2. 落地方便迅速,生活场景应用广泛。框架内实现的算法和工具可以快速落地到用户的手机端,实现反馈循环快,且可以在各种生活场景中出现:面部识别、家居电器管理、消费娱乐推荐等等。3. 数据充足。这个优势非常大,目前很多算法难以落地原因是没有数据支撑。手机上在协议内的合法数据不计其数,而且高度定制化,多样性很高,利于模型成长,也就是说从开发到应用在软件中非常快。能想到的劣势有:1. 移动端毕竟是移动端,机能会受限。手机cpu和gpu用在给定模型预测上可能绰绰有余,但是大功率进行模型训练会发热影响正常使用不现实,机器学习应用上只能把产出放到手机上。2. 场景过于生活化,过于依赖实用性。比如手机用户往往只关注实用的应用,比如下棋ai、面部识别比对等。诸如物体识别、色情识别等等大型项目的模块型应用,难以普及到用户(没有人会用软件来做这种事),这种应用就很难得到反馈。综上,从框架优化到泛化成完整的人工智能落地渠道,还有路要走。当然开源是个很聪明和受欢迎的办法,人工智能产学研都有着开源的传统,已经迈出了一步。
说实在的,今天搞了一天。感觉就是个半成品,大部分代码都是stolen from Tensorflow, borrowed From Google之类的。build 跑不起来,各种奇葩问题,文档写得简直是天书一样。浪费一天时间,还是好好搞TensorFlow去吧。