本指南旨在帮助您将 Google 的生成式人工智能和机器学习 (AI/ML) 解决方案集成到您的应用中。它会提供指导,帮助您了解各种可用的人工智能和机器学习解决方案,并选择最符合您需求的解决方案。本文档旨在帮助您确定要使用哪种工具以及使用原因,重点是您的需求和应用场景。
为了帮助您根据具体需求选择最合适的 AI/机器学习解决方案,本文档中包含解决方案指南。通过回答一系列有关项目目标和限制条件的问题,该指南可引导您找到最合适的工具和技术。
本指南可帮助您为应用选择最佳 AI 解决方案。请考虑以下因素:数据类型(文本、图片、音频、视频)、任务的复杂程度(从简单的总结到需要专业知识的复杂任务)以及数据大小(短输入与大型文档)。这有助于您决定是在设备上使用 Gemini Nano,还是使用 Firebase 基于云端的 AI(Gemini Flash 或 Gemini Pro)。
充分利用设备端推理
向 Android 应用添加 AI 和 ML 功能时,您可以选择不同的交付方式,即在设备上交付或使用云交付。
Gemini Nano 等设备端解决方案无需额外费用即可提供结果,可增强用户隐私保护,并提供可靠的离线功能,因为输入数据是在本地处理的。这些优势对于某些使用情形(例如消息摘要)至关重要,因此在选择合适的解决方案时,设备端成为首要考虑因素。
借助 Gemini Nano,您可以直接在搭载 Android 的设备上运行推理。如果您要处理文本、图片或音频,请先使用 ML Kit 的 GenAI API 来获取开箱即用型解决方案。机器学习套件 GenAI API 由 Gemini Nano 提供支持,利用 AICore 作为底层系统服务,并针对特定的设备端任务进行了微调。机器学习套件生成式 AI API 具有更高级别的接口和可扩缩性,是应用投入正式版的理想途径。借助这些 API,您可以通过文本和图片输入发送自然语言请求,从而实现各种使用场景,例如图片理解、简短翻译、引导式总结等。
对于传统的机器学习任务,您可以灵活地实现自己的自定义模型。我们提供 机器学习套件、MediaPipe、LiteRT 和 Google Play 交付功能等强大的工具,以简化您的开发流程。
对于需要高度专业化解决方案的应用,您可以使用自己的自定义模型,例如 Gemma 或其他根据您的特定使用情形量身定制的模型。使用 LiteRT 在用户设备上直接运行模型,LiteRT 提供预先设计的模型架构,可实现优化的性能。
您还可以考虑利用设备端模型和云端模型来构建混合解决方案。
移动应用通常会利用本地模型处理小型文本数据,例如聊天对话或博文。不过,对于较大的数据源(例如 PDF)或需要更多知识时,可能需要使用基于云的解决方案,该解决方案具有更强大的 Gemini 模型。
集成高级 Gemini 模型
Android 开发者可以使用 Firebase AI Logic SDK 将 Google 的高级生成式 AI 功能(包括强大的 Gemini Pro 和 Gemini Flash 模型)集成到其应用中。此 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 提供预构建的 API 和现成可用的模型,用于实现条形码扫描、文本识别 (OCR)、人脸检测、图片标签、对象检测和跟踪、语言识别和智能回复等功能。
这些模型通常针对设备端执行进行了优化,可确保低延迟、离线功能和增强的用户隐私保护,因为数据通常保留在设备上。选择机器学习套件可快速为您的移动应用添加成熟的机器学习功能,而无需训练模型或生成输出内容。它非常适合使用 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。借助机器学习套件、Gemini Nano 和 LiteRT 等工具,可以实现设备端功能,而 Gemini 云 API 与 Firebase AI Logic 相结合,可提供强大的云端处理能力。AppFunctions 代表第三条途径,让您可以通过以代理方式向系统提供应用的功能,从而“让您的应用进入 AI 领域”。
选择方法时,请考虑以下因素:
| 因素 | 设备端解决方案 | 云解决方案 |
|---|---|---|
| 连接和离线功能 | 非常适合离线使用;无需连接到网络即可运行。 | 需要网络连接才能与远程服务器通信。 |
| 数据隐私 | 在设备本地处理和存储敏感数据。 | 数据会传输到云端,因此需要信任提供商的安全性。 |
| 可发现性和覆盖面 | 直接操作系统集成 (AppFunctions) 允许助理发现功能。 | 发现通常仅限于应用的内部界面或特定的 API 集成。 |
| 模型功能 | 经过优化,可实现低延迟,并能处理特定的低强度任务。 | 功能强大的模型,能够处理高复杂度和大型输入。 |
| 费用注意事项 | 没有直接的按次使用费用;利用现有设备硬件。 | 通常涉及基于使用情况的定价或持续订阅费用。 |
| 设备资源 | 利用本地存储空间、RAM 和电池续航时间。 | 本地影响极小;繁重的工作负载会分流到服务器。 |
| 微调 | 灵活性有限;受本地硬件功能限制。 | 可灵活进行广泛的自定义设置和大规模调优。 |
| 跨平台一致性 | 可用性可能会因操作系统和硬件支持而异。 | 在任何可访问互联网的平台上获得一致的体验。 |
通过仔细考虑您的使用场景要求和可用选项,您可以找到理想的 AI/机器学习解决方案,以增强您的 Android 应用,并为用户提供智能且个性化的体验。
AI/机器学习解决方案指南
本解决方案指南可帮助您确定合适的开发者工具,以便将 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 API、Google Cloud Translation API,可能通过自定义后端或 Vertex AI 进行访问)。(如果离线或隐私保护至关重要,则优先级低于设备端选项)。
- 原因:云端解决方案提供强大的模型和广泛的语言支持,但需要连接网络,并且可能会产生费用。
生成式 AI
您需要创建新内容、总结、重写或执行复杂的理解或互动任务。
您是否需要 AI 在离线状态下运行、需要最大限度地保护数据隐私权(将用户数据保留在设备上),或者希望避免产生云推理费用?
- A) 是,离线、最大程度的隐私保护或无云费用至关重要。
- → 前往设备端生成式 AI
- B) 否,连接可用且可接受,云功能和可伸缩性更重要,或者特定功能需要云。
- → 前往 Cloud 生成式 AI
设备端生成式 AI(使用 Gemini Nano)
注意事项:需要使用兼容的 Android 设备,对 iOS 的支持有限,型号不如云端对应型号强大。
借助 ML Kit 的 Prompt API,您可以发送仅包含文本或包含文本和图片的自然语言请求,以实现各种使用场景,例如图片理解、简短翻译和引导式总结。如果您的使用情形符合这些令牌限制,那么机器学习套件 GenAI API 是实现设备端生成式 AI 的最佳选择。机器学习套件还提供简化的 API,用于执行摘要生成和智能回复等常见任务。
- → 使用:机器学习套件生成式 AI API(由 Gemini Nano 提供支持)
- 原因:使用自然语言提示在设备上集成生成式 AI 任务的最简单方法,设备端解决方案的最高优先级。
Cloud 生成式 AI
使用更强大的模型,需要连接网络,通常会产生推理费用,支持更多设备,并且更容易实现跨平台(Android 和 iOS)一致性。
您最看重的是什么:在 Firebase 中轻松集成,还是最大限度的灵活性/控制力?
- A) 希望集成更简单、API 体验更易于管理,并且可能已在使用 Firebase?
- → 使用:Firebase AI Logic SDK → 前往 Firebase AI Logic
- B) 需要最大限度的灵活性,能够访问最广泛的模型(包括第三方/自定义模型),进行高级微调,并且愿意管理自己的后端集成(更复杂)?
- → 用例:使用 Gemini API 和自定义 Cloud 后端(使用 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 访问。
AppFunctions
您需要增强应用的功能,以便与系统 AI 功能集成(让您的应用进入 AI 时代)。
- → 使用:AppFunctions
- 原因:使系统 AI 功能(例如 Google 助理)能够发现并调用应用的功能。