什么是前端智能推理引擎
在前端智能推理引擎之前,我们先来说一下什么是”端智能”。
端智能(On-Device Machine Learning)是指把机器学习的应用放在端侧做。这里的“端侧”,是相对于云服务而言的。它可以是手机,也可以是 IOT 设备等。
传统的机器学习,由于模型大小、机器算力的问题,很多是放在服务端做的。比如 Amazon AWS 有“Amazon Rekognition Service”,Google 有 “Google Cloud Vision Service”。而随着以手机为代表的端侧设备算力的提高,以及模型设计本身的演进,大小更小、能力更强的模型逐渐能够部署到端上运行。
相比云端部署的方式,APP端拥有更直接的用户特征,同时具备如下优势:
- 实时性高,端侧处理可节省数据的网络传输时间。
- 节省资源,充分利用端侧算力和存储空间。
- 隐私性好,产生数据到消费数据都在端侧完成,避免传输引起的隐私泄露风险。
这些是端智能的优势,但它不是万金油,仍然存在一些局限性:
- 设备资源有限,端侧算力、存储是有限的,不能做大规模高强度的持续计算。
- 算法规模小,端侧算力小,而且单用户的数据,在算法上并不能做到最优。
- 用户数据有限,端侧数据不适合长期存储,同时可用数据有限。
同理,前端智能是指将机器学习的应用放到前端上(web、h5、小程序等).
所以,什么是前端智能推理引擎呢?
如下图:
前端智能推理引擎实际上就是利用前端上算力去执行模型的那个东西。
业界现有的前端推理引擎
这里列出三个常见的推理引擎
- tensorflow.js(下面简称为tfjs)
- ONNX.js
- WebDNN
对于一个端上推理引擎来说,最重要的是什么&#