实现机器学习

Last reviewed 2023-08-23 UTC

Google Cloud 架构框架中的文档介绍了在 Google Cloud 中进行数据分析的一些核心原则和最佳实践。您将了解一些关键的 AI 和机器学习 (ML) 服务,以及它们在 AI 和机器学习生命周期的各个阶段如何提供帮助。这些最佳实践可帮助您满足 AI 和机器学习需求并创建系统设计。本文档假定您熟悉基本的 AI 和机器学习概念。

如需简化开发过程并在 Google Cloud 上构建机器学习模型时将开销降至最低,请考虑适合您的使用场景的最高抽象级别。抽象级别被定义为查看系统或为系统编程依据的复杂程度。抽象级别越高,查看者可用的详细信息就越少。

如需根据您的业务需求选择 Google AI 和机器学习服务,请参阅下表:

角色 Google 服务
企业用户 标准解决方案,例如 Contact Center AI InsightsDocument AIDiscovery AICloud Healthcare API
机器学习经验极少的开发者 预先训练的 API 可处理常见感知任务,例如视觉、视频和自然语言。这些 API 受预先训练的模型支持,提供默认检测器。用户无需具备任何机器学习专业知识,也不需要进行模型开发,即可使用这些 API。预先训练的 API 包括:Vision APIVideo APINatural Language APISpeech-to-Text APIText-to-Speech APICloud 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 StorageBigQuery 为机器学习数据和工件提供灵活的存储选项。
BigQuery ML 允许您直接根据 BigQuery 内部的数据构建机器学习模型。
Pub/SubDataflow
Cloud Data FusionDataproc
支持批量和实时数据注入和处理。如需了解详情,请参阅数据分析
Vertex AI 为数据科学家和机器学习工程师提供单一平台,以创建、生成、训练、测试、监控、调整和部署生成式 AI 到 MLOps 各种机器学习模型。

工具包括以下内容:
Vertex AI Agent Builder 可让您为网站构建聊天机器人和搜索引擎,以便在企业数据中使用。
  • Vertex AI Agent Builder 上的对话式 AI 可通过依托生成式 AI 技术的聊天机器人和数字助理帮助改变客户和员工的互动。例如,使用这些工具,您可以在聊天体验中支持交易,而不仅仅是提供信息。
  • Vertex AI Agent Builder 上的企业搜索可让企业在其公开或非公开网站中为客户和员工打造搜索体验。除了提供高质量的多模态搜索结果外,企业搜索还可以汇总结果,并使用生成式 AI 提供相应的引用。
Vertex AI 上的生成式 AI 可让您访问 Google 的大型生成式 AI 模型,以便对其进行测试、调整和部署,从而在依托 AI 技术的应用中使用。Vertex AI 上的生成式 AI 也称为 genai
  • 生成式 AI 模型(也称为基础模型)按其设计生成的内容类型进行分类。这些内容包括文本和聊天、图片、代码和文本嵌入。
  • Vertex AI Studio 可让您在 Google Cloud 控制台中快速对生成式 AI 模型进行原型设计和测试。您可以测试示例提示,设计自己的提示,并自定义基础模型来处理符合应用需求的任务。
  • 模型调整可让您使用输入输出样本数据集来调整基础模型,从而为特定应用场景自定义基础模型。
  • 模型库提供企业级基础模型、特定于任务的模型和 API。
预先训练的 API
AutoML 提供自定义模型工具来构建、部署和扩缩机器学习模型。开发者可以上传自己的数据,并使用合适的 AutoML 服务构建自定义模型。
  • AutoML Image:对图片数据执行图片分类和对象检测。
  • AutoML Video:对视频数据执行对象检测、分类和操作识别。
  • AutoML Text:对文本数据执行语言分类、实体提取和情感分析。
  • AutoML Translation:检测和翻译语言对。
  • AutoML Tabular:可让您构建回归、分类或预测模型。适用于结构化数据。
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 的交互,请使用以下其他工具选项之一,具体取决于您要从哪里读取数据:

输入数据类型还可以确定可用的模型开发工具。通过预先训练的 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 以外的编程语言训练模型,请使用自定义容器。在自定义容器中,将您的训练应用及其所有依赖项预安装到运行训练作业的映像上。

考虑分布式训练要求

请考虑您的分布式训练要求。某些机器学习框架(如 TensorFlowPyTorch)可让您在多台机器上运行相同的训练代码。这些框架根据每台机器上设置的环境变量自动协调工作的划分。其他框架可能需要额外的自定义。

后续步骤

如需详细了解 AI 和机器学习,请参阅以下内容:

探索架构框架中的其他类别,例如可靠性、卓越运营以及安全性、隐私权和合规性。