端智能技术演进与实践| 青训营笔记

177 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第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分类模型,全神经网络

全连接神经网络.png

模型训练
  1. 搭建训练环境
  2. 训练样本处理
  3. 模型构建
  4. 模型训练
  5. 验证模型准确度
模型压缩和转换

原因:移动端使用的是被优化的推理引擎,可以在不同的CPU和GPU架构下更高效的执行模型推理计算。

模型部署到移动端

核心:让移动端加载到前面转化的模型
简单做法:放在app包体内的assets目录下
进阶做法:通过url动态下载,支持动态更新,同时减少包体积

移动端推理预测

推理预测是指设备上执行TensorFlow Lite模型

拿到结果执行任务策略