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

    文章

    3974

    浏览量

    130496
  • AI
    AI
    +关注

    关注

    88

    文章

    35476

    浏览量

    281298
  • 模型
    +关注

    关注

    1

    文章

    3531

    浏览量

    50578
  • 机器学习
    +关注

    关注

    66

    文章

    8510

    浏览量

    134864

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LOTO示波器自定义解码功能—CANFD解码

    LOTO示波器软件更新了自定义解码功能,并在bilibili上传了演示视频,视频链接: https://www.bilibili.com/video/BV1wq3ezjEjQ
    的头像 发表于 07-11 10:34 ?166次阅读
    LOTO示波器<b class='flag-5'>自定义</b>解码<b class='flag-5'>功能</b>—CANFD解码

    大彩讲堂:VisualTFT软件如何自定义圆形进度条

    VisualTFT软件如何自定义圆形进度条
    的头像 发表于 07-07 17:10 ?561次阅读
    大彩讲堂:VisualTFT软件如何<b class='flag-5'>自定义</b>圆形进度条

    KiCad 中的自定义规则(KiCon 演讲)

    “ ?Seth Hillbrand 在 KiCon US 2025 为大家介绍了 KiCad 的规则系统,并详细讲解了自定义规则的设计与实例。? ” ? 演讲主要围绕 加强 KiCad 中的自定义
    的头像 发表于 06-16 11:17 ?724次阅读
    KiCad 中的<b class='flag-5'>自定义</b>规则(KiCon 演讲)

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,自定义键盘可以
    的头像 发表于 06-05 14:19 ?771次阅读

    在IMX93自定义构建期间运行bitbake imx image full时遇到报错怎么解决?

    在 IMX93 自定义构建期间运行 bitbake imx image full 时,我们遇到错误。您能否尽早提供解决方案?我们使用的是 imx 6.6.52 版本。
    发表于 04-10 06:29

    LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装

    LabVIEW高效加工指令自定义封装
    的头像 发表于 04-08 13:49 ?2751次阅读
    LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令<b class='flag-5'>自定义</b>封装

    MIMXRT1176如何在MBDT中正确实现自定义LUT?

    (peripherals.c peripherals.h),但我注意到它们在编译时被覆盖了。 如何在 MBDT 中正确实现自定义 LUT?此外,有没有办法修改默认 LUT 而不在编译期间重置它?
    发表于 04-08 07:56

    何在IMX8MP Android 14平台添加自定义分区?

    我想在 IMX8MP Android 14 添加自定义分区,我该怎么做,请帮帮我?
    发表于 04-01 06:38

    如何使用Linux映像在IMX8ULP启用自定义logo?

    logo,我检查并修补了 defconfig 文件config_logo_linux_clut224=y 已启用,因为它之前未启用。但是在构建之后,发现我的自定义 logo 被 defult Tux logo 覆盖了,因此启动后没有发生任何变化。 我该如何解决这个问题?
    发表于 03-31 06:30

    如何添加自定义单板

    在开发过程中,用户有时需要创建自定义板配置。本节将通过一个实例讲解用户如何创建属于自己的machine,下面以g2l-test.conf为例进行说明。
    的头像 发表于 03-12 14:43 ?644次阅读

    如何快速创建用户自定义Board和App工程

    概述自HPM_SDKv1.7.0发布开始,在HPM_ENV中新增了user_template文件夹,以方便用户快速创建自定义的Board和App工程。user_template是用户模板工程,用户
    的头像 发表于 02-08 13:38 ?579次阅读
    如何快速创建用户<b class='flag-5'>自定义</b>Board和App工程

    Altium Designer 15.0自定义元件设计

    电子发烧友网站提供《Altium Designer 15.0自定义元件设计.pdf》资料免费下载
    发表于 01-21 15:04 ?0次下载
    Altium Designer 15.0<b class='flag-5'>自定义</b>元件设计

    think-cell:自定义think-cell(四)

    C.5 设置默认议程幻灯片布局 think-cell 议程可以在演示文稿中使用特定的自定义布局来定义议程、位置和议程幻灯片的其他形状,例如标题或图片。通过将此自定义布局添加到模板,您
    的头像 发表于 01-13 10:37 ?541次阅读
    think-cell:<b class='flag-5'>自定义</b>think-cell(四)

    think-cell;自定义think-cell(一)

    布局介绍了如何创建自定义议程幻灯片布局,第六部分 C.6 功能自定义 介绍了如何使用 PowerPoint 的功能自定义选项
    的头像 发表于 01-08 11:31 ?805次阅读
    think-cell;<b class='flag-5'>自定义</b>think-cell(一)

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

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