为您的应用寻找合适的 AI/ML 解决方案

本指南旨在帮助您将 Google 的生成式人工智能和机器学习 (AI/ML) 解决方案集成到您的应用中。它提供了指导,帮助您了解可用的各种 AI/ML 解决方案,并选择最适合您需求的方案。本文档旨在通过关注您的需求和用例,帮助您确定要使用哪些工具以及为何使用这些工具。

为帮助您选择最适合您特定需求的 AI/ML 解决方案,本文档包含解决方案指南。通过回答一系列有关项目目标和限制条件的问题,本指南可为您指明最合适的工具和技术。

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

Decision flowchart for GenAI use cases. Criteria include Modality
           (text, image versus audio, video, image generation), Complexity
           (summarize, rewrite versus domain knowledge), and Context Window
           (short input/output versus extensive documents/media), leading to
           either On-device GenAI (Gemini Nano) or Firebase AI Logic (Gemini
           Flash, Pro, Imagen).
图 1:此图表是高阶解决方案指南,可帮助您为 Android 应用找到合适的 AI/ML 解决方案。如需更详细地了解 AI 和 ML 选项,请参阅本文档后面的解决方案指南

利用设备端推理的强大功能

在为 Android 应用添加 AI 和 ML 功能时,您可以选择不同的实现方式:设备端或云端。

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

通过 Gemini Nano,您可以在 Android 设备上直接运行推理。如果您正在处理文本或图片,请首先使用 ML Kit 的生成式 AI API 来获取开箱即用的解决方案。ML Kit 生成式 AI API 由 Gemini Nano 提供支持,并针对特定的设备端任务进行了微调。ML Kit 生成式 AI API 因其更高级的接口和可伸缩性,是您应用实现生产就绪的理想途径。这些 API 可让您实现摘要、校对文本重写等用例,以及生成图片描述

为了超越 ML Kit 生成式 AI API 提供的基本用例,请考虑使用 Gemini Nano 实验性访问。通过 Gemini Nano 实验性访问,您可以更直接地使用 Gemini Nano 进行自定义提示。

对于传统机器学习任务,您可以灵活地实现自己的自定义模型。我们提供强大的工具,例如 ML KitMediaPipeLiteRTGoogle 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) 技术能够更好地解决。这些成熟的方法擅长处理涉及预测、分类、检测和理解现有数据中模式的任务,通常比生成式模型的效率更高、计算成本更低、实现更简单。

传统 ML 框架为侧重于分析输入、识别特征或基于学习到的模式进行预测(而非生成全新输出)的应用提供了稳健、优化且通常更实用的解决方案。Google 的 ML Kit、LiteRT 和 MediaPipe 等工具为这些非生成式用例提供了强大的定制功能,尤其适用于移动和边缘计算环境。

使用 ML Kit 快速开始机器学习集成

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

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

如需开始使用,请访问 ML Kit 开发者网站,获取全面的指南和文档。

使用 LiteRT 进行自定义 ML 部署

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

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

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

使用 MediaPipe 为您的应用构建实时感知功能

MediaPipe 提供开源、跨平台、可定制的机器学习解决方案,专为实时和流媒体设计。得益于经过优化的预构建工具,可应对手部跟踪、姿态估计、人脸网格检测和对象检测等复杂任务,即使在移动设备上也能实现高性能的实时交互。

MediaPipe 基于图的流水线高度可定制,让您可以为 Android、iOS、网络、桌面和后端应用量身定制解决方案。当您的应用需要理解实时传感器数据并立即做出反应(尤其是视频流)时,请选择 MediaPipe,适用于手势识别、AR 特效、健身跟踪或虚拟形象控制等用例,所有这些都侧重于分析和解释输入。

通过 MediaPipe 探索解决方案并开始构建。

选择方法:设备端还是云端

将 AI/ML 功能集成到 Android 应用中时,早期的一个关键决策是直接在用户设备上还是在云端执行处理。ML Kit、Gemini Nano 和 TensorFlow Lite 等工具可实现设备端功能,而与 Firebase AI Logic 结合的 Gemini 云端 API 则可提供强大的云端处理功能。做出正确的选择取决于特定于您的用例和用户需求的各种因素。

考虑以下方面来指导您的决策

  • 连接和离线功能:如果您的应用需要在没有互联网连接的情况下可靠运行,那么 Gemini Nano 等设备端解决方案是理想选择。云端处理本质上需要网络访问。
  • 数据隐私:对于出于隐私原因必须将用户数据保留在设备上的用例,设备端处理通过将敏感信息保留在本地而具有明显的优势。
  • 模型能力和任务复杂性:云端模型通常规模更大、功能更强大,并且更新更频繁,这使其适用于高度复杂的 AI 任务,或者在处理需要更高输出质量和广泛功能的大型输入时至关重要。较简单的任务可以由设备端模型很好地处理。
  • 成本考量:云端 API 通常采用按使用量付费的定价模式,这意味着成本会随着推理次数或处理数据量的增加而增加。设备端推理虽然通常不收取直接的按使用量费用,但会产生开发成本,并可能影响设备资源,如电池续航时间和整体性能。
  • 设备资源:设备端模型会占用用户设备上的存储空间。了解特定设备端模型(如 Gemini Nano)的设备兼容性也很重要,以确保您的目标受众可以使用这些功能。
  • 微调和定制:如果您需要为特定用例微调模型的能力,云端解决方案通常能提供更大的灵活性和更广泛的定制选项。
  • 跨平台一致性:如果跨多个平台(包括 iOS)的 AI 功能一致性至关重要,请注意某些设备端解决方案(如 Gemini Nano)可能尚未在所有操作系统上可用。

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


AI/ML 解决方案指南

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

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

  • A) 生成新内容(文本、图片描述),或执行简单的文本处理(摘要、校对或文本重写)? → 转到生成式 AI
  • B) 分析现有数据/输入以进行预测、分类、检测、理解模式,或处理实时流(如视频/音频)? → 转到传统机器学习和感知

传统机器学习和感知

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

您正在执行的具体任务是什么?

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

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

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

A) 是的,离线、最大隐私或无云端费用是关键。

  • → 转到设备端生成式 AI
    • B) 否,连接可用且可接受,云端功能和可伸缩性更重要,或者特定功能需要云端。
  • → 转到云端生成式 AI
    • 设备端生成式 AI(使用 Gemini Nano)

注意事项:需要兼容的 Android 设备,iOS 支持有限,有特定的令牌限制(1024 个提示,4096 个上下文),模型功能不如云端对应模型强大。

您的用例是否特别符合 ML Kit 生成式 AI API 提供的简化任务?(文本摘要、文本校对、文本重写、生成图片描述)并且令牌限制是否足够?

A) 是的

  • → 使用:ML Kit 生成式 AI API(由 Gemini Nano 提供支持):
    • 原因:在设备上集成特定常见生成式任务的最简单方法,设备端解决方案中的最高优先级。
    • B) 否(您需要更灵活的提示或超出特定 ML Kit 生成式 AI API 的任务,但仍希望在 Nano 的功能范围内进行设备端执行)
  • → 使用:Gemini Nano 实验性访问
    • 原因:为超出结构化 ML Kit 生成式 AI API 的用例提供设备端开放提示功能,同时遵守 Nano 的限制。
    • 云端生成式 AI

使用更强大的模型,需要连接,通常会产生推理成本,提供更广泛的设备覆盖范围以及更简单的跨平台(Android 和 iOS)一致性。

您的优先考量是什么:在 Firebase 内轻松集成还是最大程度的灵活性/控制权?

A) 倾向于更简单的集成、托管的 API 体验,并且可能已经在使用 Firebase?

  • → 使用:Firebase AI Logic SDK → 转到Firebase AI Logic
    • B) 需要最大程度的灵活性、访问最广泛的模型(包括第三方/自定义模型)、高级微调,并愿意管理自己的后端集成(更复杂)?
  • → 使用:带有自定义云后端的 Gemini API(使用 Google Cloud Platform)
    • 原因:提供最多的控制权、最广泛的模型访问和自定义训练选项,但需要大量的后端开发工作。适用于复杂、大规模或高度定制的需求。
    • (您选择了 Firebase AI Logic SDK) 您需要哪种生成式任务和性能配置文件?

A) 需要兼顾性能和成本,适用于注重速度的通用文本生成、摘要或聊天应用?

  • → 使用:带有 Gemini Flash 的 Firebase AI Logic SDK
    • 原因:在 Vertex AI 托管环境中针对速度和效率进行了优化。
    • B) 需要更高质量和功能来处理复杂的文本生成、推理、高级 NLU 或指令遵循?
  • → 使用:带有 Gemini Pro 的 Firebase AI Logic SDK
    • 原因:更强大的文本模型,适用于要求严苛的任务,通过 Firebase 访问。
    • C) 需要复杂的图片生成,或基于文本提示进行高级图片理解或处理?
  • → 使用:带有 Imagen 3 的 Firebase AI Logic SDK
    • 原因:使用托管的 Firebase 环境访问最先进的图片生成模型。
    • 本页上的内容和代码示例均受内容许可中所述的许可约束。Java 和 OpenJDK 是 Oracle 和/或其关联公司的商标或注册商标。