这是我参与「第四届青训营 」笔记创作活动的第3天
端智能技术
端智能是指把机器/深度学习算法模型应用和部署到端设备上,这里“端设备”是相对于云服务而言的,可以是手机,也可以是物联网IoT设备。
为什么要做端智能
低延迟、实时性高:特征收集、模型推理、业务逻辑均在端侧完成,无需网络交互,端侧也更能够实时感应用户状态。
保护隐私:数据只在端侧使用,无需上传云端,可更好地保护用户隐私数据。
算力:移动端设备越来越强大,算力越来越高。
可离线:可以离线使用。
低成本:在端侧计算,利用端侧算力和存储空间,可节省大量的云端计算和存储资源。
缺点:端设备上的算力、存储、功耗都是有限的,运行的模型大小也会受到限制,云端有海量的数据和充足的算力资源,两者可以协同。
端云智能:端智能不是云智能的替代,是云端机器学习的延伸,是要结合云和端各自的优势,在云端之间合理分配任务以获取问题的最优解。
端侧机器学习框架
Google:Tensorflow Lite、ML Kit
Meta:PyTorch Mobile、PyTorch Live
Apple: CoreML
腾讯:NCNN、TNN
阿里:MNN
百度:Paddle-Lite
华为: HiAI、ML Kit
小米:Mace
其他:字节(ByteNN、Pitaya),快手(KwaiNN、Ykit)……
端智能技术实践案例
端智能案例落地套路
问题和方案:问题的描述和定义、设计机器学习解决方案
训练AI模型:数据收集、模型设计模型训练、模型压缩模型转换
AI模型在移动端部署应用:模型部署到移动端、收集输入推理预测、拿到结果执行业务策略
训练机器模型
数据收集
来源方式:开源数据、合成数据、人工收集和标注数据
数据增广:旋转平移、缩放交换
模型设计
10分类模型,全神经网络
模型训练
- 搭建训练环境
- 训练样本处理
- 模型构建
- 模型训练
- 验证模型准确度
模型压缩和转换
原因:移动端使用的是被优化的推理引擎,可以在不同的CPU和GPU架构下更高效的执行模型推理计算。
模型部署到移动端
核心:让移动端加载到前面转化的模型
简单做法:放在app包体内的assets目录下
进阶做法:通过url动态下载,支持动态更新,同时减少包体积
移动端推理预测
推理预测是指设备上执行TensorFlow Lite模型