写点什么

Google I/O 2021 What's new in Android Machine Learning

作者:CatTalk
  • 2021 年 11 月 29 日
  • 本文字数:1588 字

    阅读完需:约 5 分钟

Google I/O 2021 What's new in Android Machine Learning

视频地址:Android 机器学习新功能,Video 时长:9min29s


以下是视频内容的文字总结,以供参考

一、背景知识

设备端的机器学习近年来发展迅速,Google I/O 2021 《What's new in Android Machine Learning》这一 part 主要从设备端机器学习的一些优势、常见应用场景、在部署中面临的一些技术挑战、以及 Google 针对这些问题的解决方案几个方向来展开。

二、分享内容

2.1 设备端机器学习的发展与优势

过去十年,机器学习在视觉、语音处理及语言任务能力方面取得了长足的发展。

与云端部署相比,设备端机器学习有很多优势:

  • 本地设备上处理数据,可以减少无线电使用量,从而降低功耗

  • 消除往返,改进延迟

  • 减少隐私数据暴露

  • 不仅可以离线使用,也可在线使用


常见应用:视频会议背景模糊、实时语音字幕、使用 ML Kit 进行实时姿态检测、离线翻译、手写识别等,其他内容可以访问 g.co/on-device-ml


Android 设备上 ML 发展迅速,包含硬件加速功能的设备超过 7.3 亿,ML Kit 每月活跃用户超过 5 亿

2.2 设备端机器学习面临的一些挑战

在 Android 上部署这些应用面临一些共同的挑战


  • 包体大小的限制

  • 设备之间的性能差异、稳定性、准确性问题

  • 设备的兼容性大导致的通用机器学习 API 数量稀少(不同版本的支持)


能不能有一套组件来解决这些问题?

2.3 解决方案

提供一套可更新的完全集成的机器学习推理堆栈(方案)

  • 无需捆绑集成机器学习相关组件

  • 能提供各种硬件加速来进行性能优化

  • 适用于各个 Android 版本的统一 API,定期从 Google 获取常用更新


就是 TensorFlow Lite for Android

  • 通过 Google Play 为 Android 设备预装 TensorFlow Lite, 不需要捆绑安装,减小包体大小, 通过 Google Play 自动更新

  • TensorFlow Lite 集成硬件加速,通过向模型中添加元数据,为模型选择最佳性能的后端,CPU 性能提升了 50%,


TensorFlow Lite 拥有强大的 CPU 后端,并能使用 Android 基础的硬件加速

之前想让模型运行在 GPU 上,在 Android 上非常复杂

  • 性能、稳定性和准确性都会因为芯片组合 GPU 驱动程序而异

  • 需要设置实验,获取不同设备上的数据进行训练

目前,已经提供了部分解决方案,从 TFLite 2.3 起,Android 版内置了 GPU 加速支持列表,只需实例化,通过 GPU 代理类安全使用确认支持的相关硬件调用,但是并没法衡量使用 GPU 后是否达到加速效果

为此提供了自动加速,将模型考虑在内,借助额外的元数据,检查模型是否正常运行,以及使用加速器时的性能是否优于 CPU。自动支持列表不仅适用于 CPU 和 GPU,还适用于其他 DSP、NPU


Android 神经网络 API

随着新 ANdroid 机型 DSP、NPU 硬件单元的增加,NNAPI 可以保证在不同设备上访问这些底层硬件单元

但是自 Android 10 版本以来 NNAPI 是集成到 Android OS 中了,更新缓慢,新模型只能再新设备上运行,并且需要开发者自动适配不同的设备

Android 12 开始 NNAPI 从 OS 中移除,通过 Google Play 更新,并且可更实际的新硬件驱动。不同的 Android 版本-硬件使用相同的 NNAPI,并且高通将成为可更新 NNAPI 产品的合作伙伴

三、总结

3.1 内容小结

设备端机器学习,Android 新特性


  1. 支持 Google Play 的手机将在设备端自动集成 TensorFlow Lite,无需打包到应用中;

  2. 机器学习框架侧支持自动硬件加速,通过对模型添加 meta-data,自动对比和选择 CPU、GPU、NPU 等模型运行时的最佳性能;

  3. 将 NNAPI 从 Android OS 侧剥离出来,通过 Google Play 更新,并且可实际更新对应的硬件驱动,以便在不同 Android 版本和硬件设备上提供统一兼容的 NNAPI;

3.2 关键 QA

Q:TensorFlow Lite 如何在设备端直接集成?


A:https://www.infoq.com/news/2021/07/android-on-device-ml/。通过 Google Play Service 服务更新常用组件一样,成为基础 API 库


Q:自动硬件加速如何实现?


A:简单理解应该是在每次运行过程中在不指定硬件 backend 情况下,自发收集和调度模型的运行情况,找到最有解;


Q:NNAPI 到底是什么?


A:之前是集成在 Android OS 层面的神经网络库,后续单独剥离出来,也是通过 Google Play Services 更新,另外正在和硬件厂商合作,统一对应硬件兼容和驱动更新。

发布于: 刚刚阅读数: 3
用户头像

CatTalk

关注

公众号:CatTalk 2018.02.26 加入

移动研发,主要关注Android、Java、大前端,目前从事AIOT端智能业务落地

评论

发布
暂无评论
Google I/O 2021 What's new in Android Machine Learning