为您的应用找到合适的 AI/机器学习解决方案

本指南旨在帮助您将 Google 的生成式人工智能和机器学习 (AI/ML) 解决方案集成到您的应用中。它提供了相关指导,可帮助您了解各种人工智能和机器学习解决方案,并选择最适合您需求的解决方案。本文档的目标是帮助您确定要使用哪个工具以及原因,重点关注您的需求和使用场景。

为了帮助您选择最适合您特定 要求的 AI/ML 解决方案,本文档提供了一个解决方案指南。通过回答一系列有关项目目标和限制的问题,该指南会将您引导至最合适的工具和技术。

本指南可帮助您为应用选择最佳 AI 解决方案。请考虑以下因素:数据类型(文本、图片、音频、视频)、任务的复杂性(从简单的摘要生成到需要专业知识的复杂任务)以及数据大小(短输入与大型文档)。这将有助于您决定是在设备上使用 Gemini Nano,还是使用 Firebase 的云端 AI(Gemini Flash、Gemini Pro 或 Imagen)。

生成式 AI 应用场景的决策流程图。这些标准包括模态(文本、图片与音频、视频、图片生成)、复杂性(总结、重写与领域知识)和上下文窗口(短输入/输出与大量文档/媒体),从而确定是使用设备端生成式 AI (Gemini Nano) 还是 Firebase AI Logic(Gemini Flash、Pro、Imagen)。
图 1:此图展示了一个高级解决方案指南 可帮助您为 Android 应用找到合适的 AI/ML 解决方案。如需详细了解 AI 和机器学习选项,请参阅本文档后面的 解决方案指南

充分利用设备端推理能力

向 Android 应用添加 AI 和机器学习功能时,您可以选择不同的方式来提供这些功能,即在设备上提供或使用云端提供。

Gemini Nano 等设备端解决方案无需额外费用即可提供结果,可增强用户隐私保护,并提供可靠的离线功能,因为输入数据是在本地处理的。对于某些使用场景(例如消息摘要生成),这些优势至关重要,因此在选择合适的解决方案时,应优先考虑设备端解决方案。

借助 Gemini Nano,您可以直接在 Android 设备上运行推理。如果您要处理文本、图片或音频,请先使用 ML Kit 的生成式 AI API,以获得开箱即用的解决方案。机器学习套件生成式 AI API 由 Gemini Nano 提供支持,利用 AICore 作为底层系统服务,并针对特定的设备端任务进行了微调。ML Kit 生成式 AI API 具有更高级别的接口和可扩缩性,是应用投入正式版的理想途径。借助这些 API,您可以发送包含文本和图片输入的自然语言请求,从而实现各种使用场景,例如图片理解、简短翻译、引导式摘要生成等。

对于传统的机器学习任务,您可以灵活地实现自己的自定义模型。我们提供了强大的工具(例如 机器学习套件MediaPipeLiteRTGoogle Play 分发功能)来简化开发流程。

对于需要高度专业化解决方案的应用,您可以使用自己的 自定义模型,例如 Gemma 或针对特定使用场景量身定制 的其他模型。使用 LiteRT 直接在用户设备上运行模型,LiteRT 提供预先设计的模型架构,可实现优化的性能。

您还可以考虑同时利用设备端模型和云端模型来构建混合解决方案。

移动应用通常使用本地模型来处理小型文本数据,例如聊天对话或博客文章。不过,对于较大的数据源(例如 PDF)或需要额外知识的情况,可能需要使用功能更强大的 Gemini 模型的云端解决方案。

集成高级 Gemini 模型

Android 开发者可以使用 Firebase AI Logic SDK 将 Google 的高级生成式 AI 功能( 包括功能强大的 Gemini Pro、Gemini Flash 和 Imagen 模型)集成到他们的 应用中。此 SDK 专为满足更大的数据需求而设计,通过启用对这些高性能多模态 AI 模型的访问权限,提供扩展的功能和适应性。

借助 Firebase AI Logic SDK,开发者只需极少的精力即可对 Google 的 AI 模型进行客户端调用。这些模型(例如 Gemini Pro 和 Gemini Flash)在云端运行推理,并支持 Android 应用处理各种输入,包括图片、音频、视频和文本。Gemini Pro 擅长推理复杂问题和分析大量数据,而 Gemini Flash 系列则具有卓越的速度和足够大的上下文窗口,可满足大多数任务的需求。

何时使用传统机器学习

虽然生成式 AI 可用于创建和编辑文本、图片和代码等内容,但许多现实世界的问题更适合使用传统的机器学习 (ML) 技术来解决。这些成熟的方法擅长处理涉及预测、分类、检测和理解现有数据中的模式的任务,通常比生成式模型更高效、计算成本更低且实现更简单。

传统的机器学习框架为专注于分析输入、识别特征或根据学习到的模式进行预测(而不是生成全新的输出)的应用提供了强大、优化且通常更实用的解决方案。Google 的机器学习套件、LiteRT 和 MediaPipe 等工具提供了针对这些非生成式应用场景量身定制的强大功能,尤其是在移动和边缘计算环境中。

使用机器学习套件快速开始机器学习集成

ML Kit 为常见的机器学习任务提供了可用于生产用途且针对移动设备进行了优化的解决方案,无需具备机器学习专业知识。这款易于使用的移动 SDK 可将 Google 的机器学习专业知识直接融入到您的 Android 和 iOS 应用中,让您可以专注于功能开发,而不是模型训练和优化。ML Kit 为条形码扫描、文本识别 (OCR)、人脸检测、图片标签、对象检测和跟踪、语言识别和智能回复等功能提供了预构建的 API 和现成可用的模型。

这些模型通常针对设备端执行进行了优化,可确保低延迟、离线功能和增强的用户隐私保护,因为数据通常保留在设备上。选择机器学习套件可快速将成熟的机器学习功能添加到移动应用中,而无需训练模型或生成输出。它非常适合使用 Google 的优化模型或部署自定义 TensorFlow Lite 模型来高效增强应用的“智能”功能。

访问 机器学习套件开发者网站,开始使用我们的综合指南和文档。

使用 LiteRT 进行自定义机器学习部署

如需获得更大的控制权或部署自己的机器学习模型,请使用基于 LiteRT 和 Google Play 服务的自定义机器学习堆栈。此堆栈为部署高性能机器学习功能提供了必要条件。LiteRT 是一款工具包,经过优化,可在资源受限的移动设备、嵌入式设备和边缘设备上高效运行 TensorFlow 模型,让您能够运行更小、更快且占用更少内存、电量和存储空间的模型。LiteRT 运行时针对边缘设备上的各种硬件加速器(GPU、DSP、NPU)进行了高度优化,可实现低延迟推理。

当您需要在计算能力或电池续航时间有限的设备(例如智能手机、IoT 设备或微控制器)上高效部署经过训练的机器学习模型(通常用于分类、回归或检测)时,请选择 LiteRT。它是部署自定义或标准预测模型的首选解决方案,尤其是在速度和资源节约至关重要的边缘设备上。

详细了解如何使用 LiteRT 进行机器学习部署

使用 MediaPipe 将实时感知功能融入到应用中

MediaPipe 提供开源、跨平台且可自定义的机器学习解决方案,专为直播和流媒体而设计。您可以受益于针对复杂任务(例如手部跟踪、姿势估计、人脸网格检测和对象检测)优化的预构建工具,所有这些工具都支持高性能实时互动,即使在移动设备上也是如此。

MediaPipe 基于图的流水线具有高度可自定义性,让您可以为 Android、iOS、Web、桌面和后端应用量身定制解决方案。 当您的应用需要理解并立即响应实时传感器数据(尤其是视频流)时,请选择 MediaPipe,以用于手势识别、AR 效果、健身跟踪或头像控制等使用场景,所有这些场景都专注于分析和解读输入。

探索解决方案并开始使用 MediaPipe 进行构建。

将应用与设备助理集成

虽然传统的 AI 集成侧重于“将 AI 融入到应用中”,但您也可以“将应用融入到 AI 中”。 通过将应用的功能贡献给系统 AI 功能,您可以让系统级助理(例如 Gemini)以代理方式发现和调用应用的功能。AppFunctions 是实现此集成的主要 方式,可让您的应用成为 更广泛的 Android AI 生态系统中的参与者。

选择一种方法

在集成 AI 以改进 Android 应用时,您应考虑三种主要方法:在设备上执行处理、利用云端模型或将应用的功能添加到系统级 AI。ML Kit、Gemini Nano 和 LiteRT 等工具支持设备端功能,而 Gemini 云端 API 与 Firebase AI Logic 结合使用可提供强大的云端处理能力。 AppFunctions 代表了第三条途径,让您可以通过以代理方式向系统提供应用的功能,从而“将应用融入到 AI 中”。

选择方法时,请考虑以下因素:

因素 设备端解决方案 云端解决方案
连接性和离线 功能 非常适合离线使用;无需网络 连接即可运行。 需要网络连接才能与远程 服务器通信。
数据隐私 在设备本地处理和存储敏感数据。 数据传输到云端,需要信任提供商的安全性。
曝光度和覆盖面 直接操作系统集成 (AppFunctions) 允许助理 发现功能。 发现通常仅限于应用的内部界面或 特定的 API 集成。
模型功能 针对低延迟和特定的、不太密集的 任务进行了优化。 功能强大的模型,能够处理高复杂性和 大型输入。
费用注意事项 没有直接的按使用量收费;利用现有设备 硬件。 通常涉及基于使用量的定价或持续 订阅费用。
设备资源 利用本地存储空间、RAM 和电池续航时间。 对本地影响最小;繁重的工作负载会卸载到 服务器。
微调 灵活性有限;受本地硬件 功能的限制。 具有更大的灵活性,可进行广泛的自定义和 大规模调优。
跨平台一致性 可用性可能因操作系统和硬件 支持而异。 在任何可访问互联网的平台上提供一致的体验 。

通过仔细考虑您的使用场景要求和可用选项,您可以找到完美的 AI/ML 解决方案来增强 Android 应用,并为用户提供智能且个性化的体验。


AI/ML 解决方案指南

此解决方案指南可帮助您确定将 AI/ML 技术集成到 Android 项目中所需的开发者工具。

AI 功能的主要目标是什么?

  • A) 生成新内容(文本、图片说明),或执行简单的文本处理(摘要生成、校对或重写文本)? → 前往生成式 AI
  • B) 分析现有数据/输入以进行预测、分类、检测、理解模式,或处理实时流(例如视频/音频)? → 前往传统机器学习和感知
  • C) 增强应用的功能以与系统 AI 功能集成 (将应用融入到 AI 中)?→ 前往将应用融入到 AI 中

传统机器学习和感知

您需要分析输入、识别特征或根据学习到的模式进行预测,而不是生成全新的输出。

您要执行什么具体任务?

  • A) 需要快速集成预构建的常见移动机器学习功能? (例如条形码扫描、文本识别 (OCR)、人脸检测、图片标签、对象检测和跟踪、语言 ID、基本智能回复)
    • → 使用:机器学习套件 (传统 API)
    • 原因:针对 成熟的移动机器学习任务进行最简单的集成,通常针对设备端使用进行了优化(低 延迟、离线、隐私保护)。
  • B) 需要处理 实时流式数据 (例如视频或音频)以执行感知任务? (例如手部跟踪、姿势估计、人脸网格、视频中的实时对象检测和分割)
    • → 使用:MediaPipe
    • 原因:专门用于 在各种 平台上实现高性能实时感知流水线的框架。
  • C) 需要在设备上高效运行 您自己的自定义训练的 机器学习模型(例如用于分类、回归、检测),并优先考虑性能和低资源使用率?
    • → 使用:LiteRT (TensorFlow Lite 运行时)
    • 原因:经过优化的运行时,可在移动设备和边缘设备上高效部署自定义模型(体积小、推理速度快、硬件加速)。
  • D) 需要 训练自己的自定义机器学习模型 以执行特定任务?
    • → 使用:LiteRT (TensorFlow Lite 运行时)+ 自定义模型训练
    • 原因:提供用于 训练和部署自定义模型的工具,针对移动设备和边缘 设备进行了优化。
  • E) 需要对 多种 语言进行高级内容分类、情感分析或翻译,并具有高度细微差别?
    • 考虑传统机器学习模型(可能使用 LiteRT 或云端部署)是否适合,或者高级 NLU 是否需要生成式模型(返回“开始”,选择 A)。对于基于云端的分类、情感分析或翻译:
    • → 使用:云端解决方案(例如 Google Cloud Natural Language APIGoogle Cloud Translation API可能使用自定义后端或 Vertex AI访问)。(如果离线或隐私保护是关键,则优先级低于设备端选项)。
    • 原因:云端解决方案提供 功能强大的模型和广泛的语言支持,但需要连接 并且可能会产生费用。

生成式 AI

您需要创建新内容、生成摘要、重写或执行复杂的理解或互动任务。

您是否需要 AI 离线 运行,需要最大限度地保护 数据隐私权 (将用户数据保留在设备上),或者想要 避免云端推理费用?

  • A) 是,离线、最大限度地保护隐私或不产生云端费用至关重要。
  • B) 否,连接可用且可接受,云端功能和 可扩缩性更重要,或者特定功能需要云端。

设备端生成式 AI(使用 Gemini Nano)

注意事项:需要兼容的 Android 设备,iOS 支持有限,模型 不如云端同类模型强大。

借助 ML Kit 的 Prompt API,您可以发送包含纯文本或文本和图片输入的自然语言请求,以用于各种使用场景,例如图片理解、简短翻译和引导式摘要生成。如果您的使用 场景可以满足这些 token 限制,那么机器学习套件生成式 AI API 是 您实现设备端生成式 AI 的最佳选择。机器学习套件还为摘要生成和智能回复等常见任务提供了简化的 API。


云端生成式 AI

使用功能更强大的模型,需要连接,通常会产生推理费用,提供更广泛的设备覆盖范围,并且更容易实现跨平台(Android 和 iOS)一致性。

您的首要考虑因素是什么:在 Firebase 中轻松集成,还是最大限度的 灵活性/控制权?

  • A) 更喜欢更轻松的集成、托管的 API 体验,并且可能已在使用 Firebase?
  • B) 需要最大限度的灵活性,访问最广泛的模型(包括第三方/自定义模型),进行高级微调,并且愿意管理自己的后端集成(更复杂)?
    • → 使用:Gemini API 和自定义云端后端(使用 Google Cloud Platform)
    • 原因:提供最大的控制权、 最广泛的模型访问权限和自定义训练选项,但需要投入大量 后端开发工作。适用于复杂、大规模或高度自定义的需求。

您选择了 Firebase AI Logic SDK)您需要哪种生成式任务和性能配置文件?

  • A) 需要兼顾性能和成本,适合一般的文本生成、摘要生成或聊天应用,并且速度很重要?
  • B) 需要更高的质量和能力,以进行复杂的文本生成、推理、高级 NLU 或指令遵循?
  • C) 需要根据文本提示进行复杂的 图片生成 或高级图片理解或操作?

AppFunctions

您需要增强应用的功能以与系统 AI 功能集成(将应用融入到 AI 中)。

  • → 使用:AppFunctions
  • 原因:使系统 AI 功能 (例如 Google 助理)能够发现和调用应用的功能。