构建人人可实践的端侧 AI

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 业务创新加速器 构建人人可实践的端侧 AI 吴子奇(花名:明弈) 阿里巴巴 工程师
2.
3. • 端侧 AI 简介和业界趋势 • 端侧 AI 在阿里的发展和应用 • 端侧 AI 应用典型困惑 • 端 AI 研发范式 - 面向人人可实践的端侧 AI 框架 • Q & A
4. 暖场小互动 有多少人曾听说过端侧 AI ? Caffe CoreML MNN Walle MACE TFLite NCNN
5. 端侧 AI 简介 端侧 AI 是云端机器学习的延伸,是在用户终端设备进行深度学习运算 手机 平板 电脑 IoT 设备 … MNN / Caffe / CoreML / NCNN / TFlite 终端设备进行深度学习运算必不可少的核心模块 - 深度学习推理引擎
6. 端侧 AI 发展趋势 - 技术 Google Trends - Device AI 2017 是端侧 AI 引擎军备竞赛的起始 Tensorflow Lite Caffe 2 NCNN Tensorflow Mobile 2015 GDPR 2016 CoreML 2017 Mace 2018 MNN 2019 LibTorch 2020
7. 端侧 AI 发展趋势 - 苹果登场 2017 iPhone X 问世 Face ID 人脸识别解锁 Siri 唤醒词 首次搭建 专用神经网络芯片 Apple Neural Engine 《Machine Learning Research at Apple》 https://machinelearning.apple.com
8. 端侧 AI 发展趋势 - 业界应用场景 Snapchat 《SEP-Nets: Small and Effective Pattern Networks》 Google https://arxiv.org/pdf/1706.03912.pdf Google Facebook
9. 端侧 AI 在阿里的发展 - MNN 的演进 仅过去一年,MNN 在 性能优化方面 做出了巨大的提升 GPU CPU 矩阵乘优化 卷积优化 ARM 汇编优化 低精度计算 内存优化 并行归约优化 AVX512 半精度浮点 内存对齐优化 数据分块复用 AVX2 低比特量化 内存多元化调优 工作组大小拆分 矩阵乘优化示意 《MNN - 端侧推理引擎面临的挑战与应对》 https://gmtc.infoq.cn/2019/beijing/presentation/1833 《MNN - A Universal and Efficient Inference Engine》 https://arxiv.org/pdf/2002.12418.pdf 并行归约优化
10. 端侧 AI 在阿里的发展 - MNN 的演进(续) 可支持算子数 实际编写算子数 128 83 82 86 83 62 17 16 CPU Metal Vulkan CPU 优化前 100 75 50 OpenCL GPU 优化前 CUDA GPU 优化后 ms 90.70 75.00 80.50 65.00 61.40 61.40 46.35 25 0 CPU 优化后 20 17 34.00 25.00 Palm 45.00 34.10 31.87 18.37 Hp Video-pose 25.96 doc_mask 15.38
11. 端侧 AI 在阿里的发展 - 使用 MNN 的业务节选 拍立淘 AR 试妆 商品推荐 语音猜价
12. 看起来端侧 AI 的发展一片欣欣向荣 MIT Technology Review 《We are making on-device AI ubiquitous》 Gartner 《Gartner Highlights 10 Uses for AI-Powered Smartphones》 Google 《4 reasons Google’s on-device AI is very important》 Apple 《Here’s why Apple believes it’s an AI leader—and why it says critics have it all wrong》 实际上端侧 AI 落地之路充满坎坷
13. 端侧 AI 应用之困 - “工程”复杂度 数据采集 算法设计 模型训练 模型转换 模型推理 业务逻辑 端侧数据补充 实时推理反馈 算法工程师 协作 移动工程师 模型生产 跨语言 模型部署 逻辑串联 跨设备 跨工种 高效运行难 调试部署难 协作沟通难 应用展现
14. 端侧 AI 应用之困 - 场景杂 体育教学 / 游戏视频录制 / 欺诈提醒 / AI 工具 / 智能测试 … 短视频 / 信息流 / 商品推荐 90% 人力 90% 场景 长尾场景算法不愿意投入 定义问题难 商汤科技CEO:解决长尾应用是AI深入到行业的关键点 2020世界人工智能大会:人工智能进入“长尾应用” 模型获取难
15. 前进路上的一次探索 - MNNKit 工程使用标准实践 人脸识别 手势识别 算法接入规范 核心优势 姿态分割 完整的端到端封装, 简单的调用几行 API 即可应用算法 一定程度解决了无算法背景的工程接入问题 MNN Kit Core MNN MNNKit 人脸识别一个 API 调用即可完成 主要问题 MNNKit 提高了接入效率,但仍需MNN持续不断地支持双端算法迭代 黑盒封装,场景受限、拓展性交叉 模型供给跟不上,算法不会为探索型场景专门产出 / 优化模型
16. 一种更真实的业务工程师切入端 AI 的视角 感兴趣 1 先看先玩 有想法 2 动手尝试 优化 3 应用到自己场景 4 工具箱 视频 低门槛训练 快速一键部署/调试能力 模型优化 他人经验 开箱即用算法集 交互式代码编辑器 模型对比 一站式端 AI 应用研发 workflow MNN 工作台 MNN 运行时 MNN 模型市场
17. MNN 工作台 - 大幅降低端侧 AI 应用门槛 MNN 工作台 www.mnn.zone 3 端一体所见即所得模型预览部署能力 Playground UI API 5 免编译模型工具 单机预训练模版 10 款 MNN 模型开箱即用模型 AI For Everyone
18. MNN 工作台 - 核心功能架构分层 MNN 工作台(面向用户) 预训练场景 图像分类 文本分类 开箱即用算法 目标检测 OCR 主体识别 人像分割 人脸检测 人脸漫画脸 风格滤镜 … 入门:零门槛 / 交互式 快速体验深度学习模型效果 代码编辑器 断点调试 堆栈回溯 日志查看 虚拟环境配置 真机推送 数据库调试 日志过滤 pip 库安装 Mac Playground VSCode 插件 工具集 模型可视化 模型量化 模型转换 图像标注 模型算子耗时 提高:代码模版 通过代码了解深度学习流程 进阶:优化模型 熟悉常见模型调优方式 端 AI 核心技术 单机训练 模型压缩 模型量化 MNN - 推训一体框架 小样本学习 终极:钻研源码 对深度学习行业感兴趣并以此为职业
19. MNN 工作台核心技术 - MNN 动态图表达式 动态图代码示例 MNN-Transform 按SGD算法导出带权重更新的图 Parameter Optimizer 求导 Grad 随机梯度下降 SGD Module 自适应矩估计 Adam 参数管理 Data Loader 数据加载 预处理 训练代码 预测代码 Models 标准数据集模版 预制模型 MNN-Express MNN Checkpoint benchmark class UserModule : public module { public: virtual onForward() {……} }; //初始化 auto opt = new SGD; auto module = new UserModule; opt->append(module->parameters()); // 训练 for (int I = 0; i < XXX; ++i) { VARP data, label = loadTrainData(); VARP predict = module->forward(data); VARP loss = ComputeLoss(label, predict); opt->step(loss); } // 测试 for (int I = 0; i < XXX; ++i) { VARP data, label = loadTestData(); VARP predict = module->forward(data); ComputeAccuracy(label, predict); } // 导出模型 VARP input = _Input(); VARP predict = module->forward(input); Variable::save({predict}, “User.mnn”);
20. 核心技术 - MNN 训练流程 构建 构建 Optimizer Module 遍历训练数据 读取数据 预处理 计算损失 (Loss) 优化器中添加 Module 参数 N 优化器更新 训练若干个 epoch 数据集读完 Y 遍历测试数据 读取数据 预处理 计算指标 N 数据集读完 导出模型 结束
21. 核心技术产品化 - MNN 工作台单机交互式训练 训练 Template 训练 Dataset 训练 Option IPC 通信 MNN DataLoader MNN Module MNN Optimizer MNN-Express
22. MNN 运行时架构设计 图像/视频输入 业务层 角度参数计算 结果渲染 iOS Android MNN 运行时 SDK 上层 API 算法代码 通用oc/java接口 create 算法逻辑 算法开发 通用oc/java数据结构映射 release inference 前/后处理 计算推理 sdk.py 输入输出 热更新 Data CV 运行时扩展 MNN运行时 格式转换 仿射变换 图像裁剪 python-native数据通信 序列化 反序列化 Cross Language Binding & Bridge 语言桥接 基础或上层库 归一化 MNN 图像 数据 其他能力扩展 MNN 工作台
23. MNN 运行时 - 面向极速应用构建的 Playground UI 如何快速搭建一个视觉场景的 demo 应用,而不用学习 Android / iOS 开发? 验证应用 iOS/Android Playground App 基本的执行链路: 页面打开 图像/视频输入 相册选择/输入 预览 前处理 推理 Easy API • 基本交互事件:页面开关、控件点击等 MNNKit • 基本UI组件:Label、ImageView等 • 基本渲染能力:组件和图形的渲染 • 数据来源:相册选择和Camera组件 组件渲染 生命周期回调 Camera Label 图形渲染 环境变量注册 ImageView … Camera组件(标准实践) • 综合场景下正确地预览 Cross Language Bind 后处理 结果渲染 Playground UI 提供: 摄像头预览/输入 组件事件回调 Page app.wl MNNKit • 数据回调,包含自动计算好的角度 • 图形渲染,自动映射到渲染坐标系 Bind UI Page UI Component Android System Library • 镜头类型、数据格式等配置接口 UI Camera iOS System Library …
24. MNN 运行时 - Playground 三端一体示例 应用在开发阶段的验证工作从 3天+,减少到 1小时 无需算法协助 / 无需语言转换 自然语言描述 Playground API 搭建验证应用 OCR 三端一体部署验证
25. MNN 运行时 - 完全免费开放使用 直接体验 接入自身 App Playground App EasyMNN SDK iOS 《MNN 工作台 SDK EasyMNN 使用手册》 Android SDK iOS Android License EasyMNN 0.1.2 (对应工作台 1.3.0) 1.3.6 (对应工作台 1.3.6) com.alibaba.android.workbench:easymnn 0.1.2 《MNN Kit Terms of Service》 https://www.yuque.com/mnn/droiug/um6vcg
26. MNN 模型市场 - 集众人智 天猫空窗检测实践 - All by 客户端工程师 MNN 模型市场 market.mnn.zone 饿了么 - 着装抽检 天猫 - 空窗检测 淘系测试 - 白屏巡检 阿里游戏 - 荒野乱斗 性能评测 - 启动耗时 SKU 配置提取 半年时间 2000+ 总用户 / MAU 300+ 支持淘系测试、饿了么、九游、飞猪、考拉、同城零售等 7+ 团队 通过低门槛训练部署手段上线多个业务 业界知名公司(得 *) 也使用 MNN 工作台
27. 总结 MNN 让深度模型可以在端上高效运行 MNNKit 1.0 流水线协作 & 规范生产 & 定制化服务 提供标准化零件和生产力工具,大家自己创造 MNN 工作台 MNN 运行时 MNN 模型市场 端智能研发一站式 IDE 端侧运行核心基础 集智 AI 社区 低门槛单机训练 核心类库能力 开箱即用模型 标准化部署模版 极致部署模版 模型供给收益 高效算法调试 三端一体部署 解决方案分享
28. Q & A 欢迎加入 阿里巴巴 - 端智能 团队
29.

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 03:32
浙ICP备14020137号-1 $Carte des visiteurs$