这是我参与「第四届青训营 」笔记创作活动的第三天。这篇笔记主要是对安卓客户端"端智能技术演进与实践"这节课的记录。
笔记·Android客户端-端智能技术演进与实践
1.什么是端智能技术
端智能定义
端智能(On-Device Machine Learning)是指把机器学习/深度学习算法模型应用和部署到端设备上,这里“端设备”是相对于云服务而言的,可以是手机,也可以是物联网IoT设备。
eg.抖音换装特效,离线文字识别,肢体检测,手势识别
为什么要做端智能
Low Latency:低延迟、实时性高
Offline:可离线
Power:端设备算力越来越强大
Low Cost:低成本
Privacy:保护隐私
端云协同:端智能并不是云智能的替代,是云端机器学习的延伸,是要结合云和端各自的优势,在云端之间合理分配任务以获取问题最优解。
端智能技术的发展历程
2006年,深度学习被提出,又得益于大数据的发展和硬件算力提升,深度学习算法和框架也不断演进,人工智能领域迎来了一次大发展。
与此同时,端侧设备在算力、算法和框架上同样有突飞猛进的发展,各类端侧框架和案例层出不穷。
端侧机器学习框架
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)
2.端智能技术案例
端智能案例落地的套路
1.问题和方案:问题描述和定义->设计机器学习解决方案
2.训练AI模型:数据收集->模型设计,模型训练->模型压缩,模型转换
3.AI模型在移动端部署应用
手写数字识别
数据收集
数据来源方式
开源数据(MNIST)
合成数据
人工收集和标注的数据(√):设计和实际需求贴合的一个数据采集程序;兼顾不同年龄段、性别、左手or右手等
数据增广
旋转、平移、缩放变换
模型设计
10分类模型,全连接神经网络www.tensorflow.org/tutorials/q…
模型训练
搭建训练环境(Tensorflow);训练样本处理;模型构建(Keras);模型训练;验证模型准确度
模型压缩和转换
使用模型转换的原因:移动端使用的是被优化的推理引擎,可以在不同CPU和GPU架构下高效的执行模型推理计算。
使用Tensorflow Lite作为移动端上推理引擎。
TensorFlow模型在被TensorFlow Lite使用前,必须转换成这种格式。
Tensorflow Lite 提供转换器TFLite Convert
模型部署到移动端
核心:让移动端可以加载到前面转化的模型
简单做法:放在App包体内assets目录下。
进阶做法:通过url动态下载,支持动态更新,同时减少包体积。
移动端推理预测
推理预测是指设备上执行TensorFlow Lite模型
加载模型->构造模型输入->执行推理预测->获取推理运行结果
拿到结果,执行业务策略
3.端智能工程师学习长路线
入门
了解端智能技术是什么、可以做什么->掌握移动端开发、Machine Learning基础知识,了解业内端智能框架->理解怎么做端智能,可以协作完成端智能技术解决实际业务问题的需求落地
进阶
对移动端技术、端智能技术和负责业务有更深入的理解,可以站在更全面的事业上设计段上智能解决方案,建设端上智能架构。
总结
今天学习了端智能技术演进与实践,里面牵扯到了一些有关人工智能的内容,使我感受到前延技术改变了我们的日常生活。