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

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

为帮助您根据具体要求选择最合适的 AI/机器学习解决方案,本文档提供了解决方案指南。通过回答一系列与项目目标和约束条件相关的问题,该指南可引导您找到最合适的工具和技术。

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

生成式 AI 应用场景的决策流程图。这些标准包括模态(文本、图片与音频、视频、图片生成)、复杂性(总结、重写与领域知识)和上下文窗口(简短输入/输出与详尽文档/媒体),可分别导致设备端 GenAI (Gemini Nano) 或 Firebase AI 逻辑 (Gemini Flash、Pro、Imagen)。
图 1:此插图是一个概要的解决方案指南,可帮助您为 Android 应用找到合适的 AI/机器学习解决方案。如需详细了解 AI 和机器学习选项,请参阅本文档后面部分的解决方案指南

充分利用设备端推理

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

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

借助 Gemini Nano,您可以直接在搭载 Android 的设备上运行推理。如果您要处理文本或图片,请先使用 机器学习套件的 GenAI API 获取开箱即用型解决方案。ML Kit GenAI API 由 Gemini Nano 提供支持,并针对特定设备端任务进行了微调。由于 ML Kit GenAI API 具有更高级别的接口和可伸缩性,因此是将应用推向生产环境的理想途径。借助这些 API,您可以实现各种应用场景,以总结、校对重写文本,以及生成图片描述

如需超越机器学习套件 GenAI 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) 技术来解决。这些成熟的方法擅长处理涉及预测、分类、检测和理解现有数据中模式的任务,通常比生成式模型更高效、计算成本更低且实现更简单。

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

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

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

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

如需开始使用,请访问 ML Kit 开发者网站,查看我们的综合指南和文档。

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

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

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

详细了解如何使用 LiteRT 部署机器学习模型

使用 MediaPipe 在应用中构建实时感知

MediaPipe 提供专为直播和在线播放媒体设计的开源、跨平台且可自定义的机器学习解决方案。利用经过优化的预构建工具来处理手部跟踪、姿势估计、人脸网格检测和物体检测等复杂任务,这些工具可实现高性能的实时互动,即使在移动设备上也是如此。

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

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

选择方法:设备端或云端

在将 AI/ML 功能集成到 Android 应用时,一项重要的早期决策是,是在用户设备上直接执行处理,还是在云端执行处理。ML Kit、Gemini Nano 和 TensorFlow Lite 等工具可实现设备端功能,而内含 Firebase AI Logic 的 Gemini 云端 API 可提供强大的云端处理能力。做出正确的选择取决于具体使用情形和用户需求等多种因素。

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

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

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


AI/机器学习解决方案指南

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

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

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

传统机器学习和感知

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

您正在执行哪项具体任务?

  • A) 需要快速集成预构建的常见移动机器学习功能? (例如,条形码扫描、文本识别 (OCR)、人脸检测、为图片加标签、对象检测和跟踪、语言识别、基本智能回复)
    • → 使用:机器学习套件(传统 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 支持、特定的令牌限制(1024 个提示、4096 个上下文),模型的功能不如云端模型。

您的用例是否明确与机器学习套件 GenAI API 提供的简化任务相符?(总结文本、校对文本、重写文本、生成图片说明),并且令牌限制是否足够?

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

Cloud 生成式 AI

使用更强大的模型,需要连接,通常涉及推理开销,覆盖设备范围更广,并且更易于实现跨平台(Android 和 iOS)一致性。

您的首要目标是什么:在 Firebase 中轻松集成,还是实现最大程度的灵活性/控制?

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

您选择了 Firebase AI Logic SDK)您需要什么类型的生成式任务和性能配置文件?