Google Cloud 架构框架中的文档介绍了在 Google Cloud 中进行数据分析的一些核心原则和最佳实践。您将了解一些关键的 AI 和机器学习 (ML) 服务,以及它们在 AI 和机器学习生命周期的各个阶段如何提供帮助。这些最佳实践可帮助您满足 AI 和机器学习需求并创建系统设计。本文档假定您熟悉基本的 AI 和机器学习概念。
如需简化开发过程并在 Google Cloud 上构建机器学习模型时将开销降至最低,请考虑适合您的使用场景的最高抽象级别。抽象级别被定义为查看系统或为系统编程依据的复杂程度。抽象级别越高,查看者可用的详细信息就越少。
如需根据您的业务需求选择 Google AI 和机器学习服务,请参阅下表:
角色 | Google 服务 |
---|---|
企业用户 | 标准解决方案,例如 Contact Center AI Insights、Document AI、Discovery AI 和 Cloud Healthcare API。 |
机器学习经验极少的开发者 | 预先训练的 API 可处理常见感知任务,例如视觉、视频和自然语言。这些 API 受预先训练的模型支持,提供默认检测器。用户无需具备任何机器学习专业知识,也不需要进行模型开发,即可使用这些 API。预先训练的 API 包括:Vision API、Video API、Natural Language API、Speech-to-Text API、Text-to-Speech API 和 Cloud Translation API。 |
面向开发者的生成式 AI | 利用 Vertex AI Agent Builder,开发者可以在几分钟内使用开箱即用的功能构建和部署聊天机器人,在数小时内构建和部署搜索引擎。想要将多种功能整合到企业工作流程中的开发者可以使用 Gen App Builder API 来直接集成。 |
开发者和数据科学家 | 借助 AutoML,可使用您自己的图片、视频、文本或表格数据开发自定义模型。AutoML 通过在 Google 模型库中自动搜索性能最出色的模型架构来加速模型开发,因此您无需构建模型。AutoML 会为您处理常见任务,例如选择模型架构、超参数调节、预配机器以进行训练和部署。 |
数据科学家和机器学习工程师 | 通过 Vertex AI 自定义模型工具,您可以训练和部署自定义模型,它们可以将机器学习工作流付诸使用。您还可以在自行管理的计算(例如 Compute Engine 虚拟机)上运行机器学习工作负载。 |
数据科学家和机器学习工程师 | Vertex AI 上的生成式 AI 支持(也称为 genai)可让您访问 Google 的大型生成式 AI 模型,以便在依托 AI 技术的应用中测试、调整和部署该模型。 |
熟悉 SQL 接口的数据工程师、数据科学家和数据分析师 | 借助 BigQuery ML,您可以根据 BigQuery 中存储的数据开发基于 SQL 的模型。 |
关键服务
下表简要介绍了 AI 和机器学习服务:
Google 服务 | 说明 |
---|---|
Cloud Storage 和 BigQuery | 为机器学习数据和工件提供灵活的存储选项。 |
BigQuery ML | 允许您直接根据 BigQuery 内部的数据构建机器学习模型。 |
Pub/Sub、Dataflow、 Cloud Data Fusion 和 Dataproc |
支持批量和实时数据注入和处理。如需了解详情,请参阅数据分析。 |
Vertex AI | 为数据科学家和机器学习工程师提供单一平台,以创建、生成、训练、测试、监控、调整和部署生成式 AI 到 MLOps 各种机器学习模型。 工具包括以下内容:
|
Vertex AI Agent Builder | 可让您为网站构建聊天机器人和搜索引擎,以便在企业数据中使用。
|
Vertex AI 上的生成式 AI | 可让您访问 Google 的大型生成式 AI 模型,以便对其进行测试、调整和部署,从而在依托 AI 技术的应用中使用。Vertex AI 上的生成式 AI 也称为 genai。
|
预先训练的 API | |
AutoML | 提供自定义模型工具来构建、部署和扩缩机器学习模型。开发者可以上传自己的数据,并使用合适的 AutoML 服务构建自定义模型。
|
AI Infrastructure | 可让您使用 AI 加速器处理大规模机器学习工作负载。这些加速器可让您以经济实惠的方式训练深度学习模型和机器学习模型并从中进行推理。 GPU 可帮助您经济实惠的方式进行推理、纵向扩容或横向扩容深度学习模型的训练。张量处理单元 (TPU) 是定制的 ASIC,用于训练和执行深度神经网络。 |
Dialogflow | 提供可提供对话体验的虚拟客服。 |
Contact Center AI | 借助 Agent Assist 功能,为人工客服提供自动化、具有丰富数据洞见的联络中心体验。 |
Document AI | 为一般文档以及贷款相关文档和采购相关文档等特定文档类型大规模提供文档理解。 |
Lending DocAI | 自动执行抵押贷款文件处理。缩短处理时间并简化数据捕获流程,同时符合法规和合规性要求。 |
Procurement DocAI | 通过将非结构化文档(例如账单和收据)转换为结构化数据,自动大规模捕获采购数据,从而提升运营效率、改善客户体验并做出明智决策。 |
建议 | 提供个性化产品推荐。 |
Healthcare Natural Language AI | 可让您查看和分析医学文档。 |
Media Translation API | 启用从音频数据进行实时语音翻译。 |
数据处理
将以下数据处理最佳实践应用于您自己的环境。
确保数据符合机器学习要求
无论数据类型如何,您用于机器学习的数据都应满足特定基本要求。这些要求包括数据预测目标的能力,用于训练的数据与用于预测的数据之间的粒度一致性,以及用于训练的准确标记的数据。您的数据量也应该足够。如需了解详情,请参阅数据处理。
在 BigQuery 中存储表格数据
如果要使用表格数据,请考虑将所有数据都存储在 BigQuery 中,并使用 BigQuery Storage API 从中读取数据。如需简化与 API 的交互,请使用以下其他工具选项之一,具体取决于您要从哪里读取数据:
- 如果要使用 Dataflow,请使用 BigQuery I/O 连接器。
- 如果要使用 TensorFlow 或 Keras,请使用适用于 BigQuery 的 tf.data.dataset 读取器。
- 如果要使用图片或视频等非结构化数据,请考虑将所有数据都存储在 Cloud Storage 中。
输入数据类型还可以确定可用的模型开发工具。通过预先训练的 API、AutoML 和 BigQuery ML,您可以为某些图片、视频、文本和结构化数据使用场景提供更加经济实惠且更加节省时间的开发环境。
确保您有足够的数据来开发机器学习模型
如需开发实用的机器学习模型,您需要有足够的数据。如需预测类别,建议每个类别的样本数量是特征数量的 10 倍。您需要预测的类别越多,需要的数据就越多。不均衡数据集需要更多数据。如果没有足够的带标签数据可用,请考虑半监督式学习。
数据集大小也会对训练和部署造成影响:如果您的数据集较小,则可以直接在 Notebooks 实例中进行训练;如果您有需要进行分布式训练的较大数据集,请使用 Vertex AI 自定义训练服务。如果您希望 Google 为您的数据训练模型,请使用 AutoML。
准备可供使用的数据
精心准备的数据可以加速模型开发。配置数据流水线时,请确保它可以处理批量数据和流式数据,以便从这两种类型的数据中获得一致的结果。
模型开发和训练
将以下模型开发和训练最佳实践应用于您自己的环境。
选择代管式或自定义训练模型开发
构建模型时,请尽可能考虑最高抽象级别。尽可能使用 AutoML,以便为您处理开发和训练任务。对于自定义训练模型,请选择能够确保可扩缩性和灵活性的代管式选项,而不是自行管理的选项。如需详细了解模型开发选项,请参阅使用推荐的工具和产品。
考虑在 Compute Engine 虚拟机或深度学习虚拟机容器上使用 Vertex AI Training 服务而不是自行管理的训练。对于 JupyterLab 环境,请考虑使用 Vertex AI Workbench,它提供代管式和用户管理的 JupyterLab 环境。如需了解详情,请参阅机器学习开发和实现训练。
对自定义训练模型使用预构建或自定义容器
对于 Vertex AI 上的自定义训练模型,您可以根据机器学习框架和框架版本使用预构建或自定义容器。预构建容器适用于为特定 TensorFlow、scikit-learn、PyTorch 和 XGBoost 版本创建的 Python 训练应用。
否则,您可以选择为训练作业构建自定义容器。例如,如果您想使用预构建容器中没有的 Python 机器学习框架训练模型,或者想使用 Python 以外的编程语言训练模型,请使用自定义容器。在自定义容器中,将您的训练应用及其所有依赖项预安装到运行训练作业的映像上。
考虑分布式训练要求
请考虑您的分布式训练要求。某些机器学习框架(如 TensorFlow 和 PyTorch)可让您在多台机器上运行相同的训练代码。这些框架根据每台机器上设置的环境变量自动协调工作的划分。其他框架可能需要额外的自定义。
后续步骤
如需详细了解 AI 和机器学习,请参阅以下内容:
探索架构框架中的其他类别,例如可靠性、卓越运营以及安全性、隐私权和合规性。