0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Android上构建自定义AI功能

谷歌开发者 来源:Android 开发者 2024-11-15 11:51 次阅读

作者 / 高级开发者关系工程师 Kateryna Semenova 和高级产品经理 Mark Sherwood

在 "AI on Android Spotlight Week" 期间,我们深入探讨了如何将自己的 AI 模型引入 Android 设备,如手机、平板电脑等。通过利用 Google 和其他来源的工具与技术,您可以直接在这些设备上运行复杂的 AI 模型,以实现更出色的性能、更好的隐私性和更高的可用性,创造激动人心的可能性。

了解设备端 AI

设备端 AI 不依赖基于云服务器,而是直接在硬件设备上部署和运行机器学习或生成式 AI 模型。此方法具有几项优势,例如降低延迟、强化隐私、节约成本,以及减少了对互联网连接的依赖。

对于生成文本用例,请探索 Gemini Nano;用户现在可以通过 Gemini Nano 的 SDK 进行实验性访问。对于许多设备端 AI 用例,您可能想要在应用中打包自己的模型。我们将在本文介绍如何在 Android 上实现此操作。

设备端 AI 的核心资源

Google AI Edge 平台为在边缘设备上构建和部署 AI 模型提供了一个全面的生态系统。此平台支持各种框架和工具,能让开发者将 AI 功能无缝集成到应用中。Google AI Edge 平台包括:

MediaPipe Tasks - 跨平台低代码 API,用于处理常见的生成式 AI、视觉、文本和音频任务

LiteRT (前身为 TensorFlow Lite) - 用于在 Android 上部署自定义机器学习模型的轻量级运行时

MediaPipe Framework - 用于将多个机器学习模型与预处理和后处理逻辑高效链接在一起的流水线框架

Model Explorer - 转换、性能和调试可视化工具

如何在 Android 上构建

自定义 AI 功能

1. 定义您的用例: 在深入研究技术细节之前,明确定义您希望 AI 功能实现的目标非常重要。无论您致力于开发图像分类、自然语言处理还是其他应用,拥有明确的目标将为您的开发进程指明方向。

2. 选择合适的工具和框架: 根据您的用例,您或许可以使用开箱即用的解决方案,也可能需要创建或获取自己的模型。通过 MediaPipe Tasks 查看常见的解决方案,如手势识别、图像分割或面部特征点检测。如果您找到符合需求的解决方案,可以直接进入测试和部署步骤。

如果您需要为用例创建或获取自定义模型,则需要一个设备端机器学习框架,例如 LiteRT (前身为 TensorFlow Lite)。LiteRT 专为移动和边缘设备设计,为部署机器学习模型提供了轻量级运行时。只需按照以下子步骤操作:

开发和训练模型: 使用您选择的框架开发 AI 模型。训练可以在功能强大的机器或云环境中执行,但模型应针对设备上的部署进行优化。量化和剪枝等技术可以帮助缩小模型尺寸并提高推理速度。Model Explorer 可以帮助您在使用模型的同时理解和探索该模型。

转换和优化模型: 当您的模型训练好后,就可以将其转换为适合设备端部署的格式。例如,LiteRT 需要将其转换为特定格式。优化工具可以帮助减少模型的占用空间并提升其性能。AI Edge Torch 允许您使用 Google AI Edge LiteRT 和 MediaPipe Tasks 库来转换 PyTorch 模型,使其能在 Android 和其他平台上本地运行。

加速模型: 您可以使用 GPU 和 NPU,为 Android 上的模型推理加速。借助 LiteRT 的 GPU 代理,您可以立即在 GPU 上运行您的模型。我们正在努力构建下一代 GPU 和 NPU 代理,使您的模型运行得更快,并支持更多模型在 GPU 和 NPU 上运行。我们诚邀您参与我们的抢先体验计划,以试用这一新的 GPU 和 NPU 基础设施。我们将会陆续邀请参与者抢先体验,即刻联系我们参与体验吧!

3. 测试和部署: 为了确保您的模型在各种设备上都能实现预期的性能,严格的测试至关重要。完成测试后,即可向用户部署您的应用,为他们提供无缝且高效的 AI 体验。我们正在努力让 Google Play 和 Android App Bundle 发挥其优势,以便更好地为设备端 AI 功能提供自定义机器学习模型。Play for On-device AI 简化了启动、定位、版本控制、下载和更新设备端模型的复杂程度,从而为用户提供更好的使用体验,同时不会影响应用的大小,也不会增加成本。如有兴趣加入 Play for On-device AI 抢先体验计划,您可以填写表格。

通过隐私性和透明度

建立对 AI 的信任

随着 AI 在日常生活中发挥的作用日益增强,确保模型在设备上按预期运行至关重要。我们强调 "零信任" 方法,为开发者提供工具来验证设备完整性和用户对其数据的控制。在零信任方法中,开发者需要能够对设备的可信度做出明智决策。

我们推荐开发者使用 Play Integrity API,来验证应用、服务器请求和设备环境。您可以在应用后端决定下载并运行模型之前的重要时刻调用 API。还可以考虑启用在安装应用时进行完整性检查,以减少应用被分发到未知和不受信任的环境中。

Play Integrity API 利用 Android 平台密钥认证来验证硬件组件,并在整个设备群中生成完整性判定,从而使大多数开发者不再需要直接集成不同的认证工具,降低了设备生态系统的复杂性。在决定是否信任设备运行 AI 模型之前,开发者可以使用其中一个或两个工具来评估设备安全性和软件完整性。

结论

将您的 AI 模型引入设备涉及多个步骤,包括定义用例、部署和测试模型等。借助 Google AI Edge 等资源,开发者可以使用强大的工具和洞察,使过程更顺畅、更高效。随着设备端 AI 的不断发展,您将能够利用这些资源,创建先进的应用,提供更好的性能、隐私性和用户体验。我们目前正在寻找抢先体验的合作伙伴,在 Google AI Edge 中试用我们的一些最新工具和 API。填写表格联系我们,即刻了解我们该如何共同努力,以实现您的愿景。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3921

    浏览量

    127081
  • AI
    AI
    +关注

    关注

    87

    文章

    29922

    浏览量

    268211
  • 模型
    +关注

    关注

    1

    文章

    3139

    浏览量

    48669
  • 机器学习
    +关注

    关注

    66

    文章

    8366

    浏览量

    132344

原文标题:如何轻松将 AI 模型引入 Android 设备

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 668次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型开发

    NVIDIA AI Foundry 为全球企业打造自定义 Llama 3.1 生成式 AI 模型

    Foundry 提供从数据策管、合成数据生成、微调、检索、防护到评估的全方位生成式 AI 模型服务,以便部署自定义 Llama 3.1 NVIDIA NIM 微服务和新的 NVIDIA NeMo
    发表于 07-24 09:39 675次阅读
    NVIDIA <b class='flag-5'>AI</b> Foundry 为全球企业打造<b class='flag-5'>自定义</b> Llama 3.1 生成式 <b class='flag-5'>AI</b> 模型

    如何通过SDK功能获取esptouch v2 apk的自定义数据?

    嗨,我使用 esptouch v2 apk 来配置网络。我在 esptouch v2 apk 的自定义数据帧中输入 mqqt 数据,然后按确认键。同时,给ESP8266板电,ESP8266开始
    发表于 07-15 07:20

    如何为ESP8266构建自定义盾牌?

    我正在寻找某种如何为ESP8266构建自定义盾牌的指南。 到目前为止,我已经使用 NODEMCU 构建功能原型,但我现在想简化事情并使其更小。 1. 是否有一些书面的、开放的硬件
    发表于 07-08 07:17

    何在IDF框架中使用自定义的静态库和动态库?

    基于商业需要,我们需要在 ESP-IDF v4.0-rc 这个版本的IDF中开发与使用自定义库,有如下问题请协助: 1如何利用IDF框架编写自定义静态库和动态库? 2如何在IDF框架中使用自定
    发表于 06-25 07:57

    Chrome移动版支持自定义菜单栏功能

    在先前版本中,用户通过点击浏览器右上角的三个点按钮即可调出包含各类图标与操作的菜单。而此次更新后,Chrome新增了“自定义菜单”选项,允许用户自主控制该区域的展示内容。
    的头像 发表于 05-27 15:00 719次阅读

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1260次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 582次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 960次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 590次阅读

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 2752次阅读
    基于YOLOv8实现<b class='flag-5'>自定义</b>姿态评估模型训练

    博途用户自定义库的使用

    中经常使用的函数/函数块/数据类型等存放到自定义库中,方便自己使用及与别人共享。博途具有很强的库管理功能,包括:库版本管理,库的更新及清扫等等。本系列文章我将给大家介绍项目库、全局库、库的更新/清扫等功能,今天这篇文章,我们先来
    的头像 发表于 12-25 10:08 863次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用YOLOv8呢?
    的头像 发表于 12-20 10:51 715次阅读
    基于YOLOv8的<b class='flag-5'>自定义</b>医学图像分割

    NVIDIA AI Foundation Models:使用生产就绪型 LLM 构建自定义企业聊天机器人和智能副驾

      系列基础模型是一套功能强大的全新工具,可用于为企业构建生产就绪生成式 AI 应用,从而推动从客服 AI 聊天机器人到尖端 AI 产品的各
    的头像 发表于 11-17 21:35 856次阅读
    NVIDIA <b class='flag-5'>AI</b> Foundation Models:使用生产就绪型 LLM <b class='flag-5'>构建</b><b class='flag-5'>自定义</b>企业聊天机器人和智能副驾