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

178 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第三天。这篇笔记主要是对安卓客户端"端智能技术演进与实践"这节课的记录。


笔记·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右手等

数据增广

旋转、平移、缩放变换

模型设计

playground.tensorflow.org/

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基础知识,了解业内端智能框架->理解怎么做端智能,可以协作完成端智能技术解决实际业务问题的需求落地

进阶

对移动端技术、端智能技术和负责业务有更深入的理解,可以站在更全面的事业上设计段上智能解决方案,建设端上智能架构。

总结

今天学习了端智能技术演进与实践,里面牵扯到了一些有关人工智能的内容,使我感受到前延技术改变了我们的日常生活。