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

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

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

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

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

充分利用设备端推理

向 Android 应用添加 AI 和 ML 功能时,您可以选择不同的交付方式,即在设备上交付或使用云交付。

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

借助 Gemini Nano,您可以直接在 Android 设备上运行推理。如果您要处理文本、图片或音频,请先使用 ML Kit 的 GenAI API,以获得开箱即用的解决方案。机器学习套件 GenAI API 由 Gemini Nano 提供支持,并针对特定的设备端任务进行了微调。ML Kit GenAI API 具有更高级别的接口和可伸缩性,是应用投入生产的理想途径。借助这些 API,您可以实现以下使用情形:总结、校对重写文本,生成图片描述,以及执行语音识别

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

对于侧重于分析输入、识别特征或根据学习到的模式进行预测的应用,传统机器学习框架可提供稳健、优化且通常更实用的解决方案,而不是生成全新的输出。Google 的 ML Kit、LiteRT 和 MediaPipe 等工具提供了强大的功能,可满足这些非生成型用例的需求,尤其是在移动和边缘计算环境中。

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

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

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

如需开始使用 ML Kit,请访问 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)、人脸检测、图片标签、对象检测和跟踪、语言 ID、基本智能回复)
    • → 使用:ML Kit(传统 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 个上下文),模型不如云端同类模型强大。

您的应用场景是否专门与 ML Kit GenAI API 提供的简化任务相符?(总结文本、校对文本、重写文本、生成图片说明或执行语音识别)并且令牌限制是否足够?

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

Cloud 生成式 AI

使用更强大的模型,需要连接网络,通常会产生推理费用,可覆盖更广泛的设备,并更轻松地实现跨平台(Android 和 iOS)一致性。

您优先考虑的是:在 Firebase 中轻松集成,还是最大限度的灵活性/控制?

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

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

  • A) 需要兼顾性能和成本,适合一般文本生成、总结或聊天应用(速度很重要)?
  • B) 需要更高质量和能力来处理复杂的文本生成、推理、高级 NLU 或指令遵从任务?
  • C) 需要根据文本提示进行复杂的图片生成或高级图片理解或处理?