良好架构框架:AI 和机器学习视角

Google Cloud 架构良好的框架中的本文档介绍了一些原则和建议,可帮助您设计、构建和管理 AI 和机器学习工作负载, Google Cloud 以实现您的运营、安全性、可靠性、费用和性能目标。

本文档的目标受众群体包括在 Google Cloud中设计、构建、部署和维护 AI 和机器学习工作负载的决策者、架构师、管理员、开发者和运维人员。

以下页面介绍了适用于“良好架构框架”的每个支柱的 AI 和机器学习专用原则和建议:

贡献者

作者:

其他贡献者:

AI 和机器学习视角:卓越运营

架构良好的框架:AI 和机器学习视角中的这篇文档简要介绍了在 Google Cloud上构建和运行稳健 AI 和机器学习系统的原则和建议。这些建议可帮助您设置可观测性、自动化和可伸缩性等基本元素。本文档中的建议与 Google Cloud 良好架构框架的卓越运营支柱保持一致。

AI 和机器学习领域的卓越运营能力是指能够无缝部署、管理和治理 AI 和机器学习系统和流水线,从而帮助实现贵组织的战略目标。卓越运营可让您高效应对变化、降低运营复杂性,并确保运营始终与业务目标保持一致。

本文档中的建议对应于以下核心原则:

为模型开发奠定坚实基础

若要开发和部署可伸缩、可靠的 AI 系统,帮助您实现业务目标,强大的模型开发基础至关重要。此类基础架构可实现一致的工作流,自动执行关键步骤以减少错误,并确保模型可根据需求进行扩缩。强大的模型开发基础可确保您的机器学习系统能够顺畅地更新、改进和重新训练。该基础还可帮助您使模型的性能与业务需求保持一致,快速部署富有成效的 AI 解决方案,并适应不断变化的要求。

如需打下坚实的基础来开发 AI 模型,请考虑以下建议。

定义问题和所需的结果

在开始任何 AI 或机器学习项目之前,您必须明确要解决的业务问题和所需的结果。首先,概述业务目标,然后将这些目标细分为可衡量的关键绩效指标 (KPI)。如需在 Jupyter 笔记本环境中整理和记录问题定义和假设,请使用 Vertex AI Workbench 等工具。如需为代码和文档实现版本控制,并记录项目、目标和假设,请使用 Git 等工具。如需为生成式 AI 应用开发和管理提示,您可以使用 Vertex AI Studio

收集和预处理必要的数据

如需实现数据预处理和转换,您可以使用 Dataflow(适用于 Apache Beam)、Dataproc(适用于 Apache Spark),或者 BigQuery(如果基于 SQL 的流程适用)。如需验证架构和检测异常,请使用 TensorFlow Data Validation (TFDV),并在适用情况下利用 BigQuery 中的自动数据质量扫描

对于生成式 AI,数据质量包括准确性、相关性、多样性以及与所需输出特征的一致性。如果实际数据不足或不平衡,您可以生成合成数据,以帮助提高模型的稳健性和泛化能力。如需根据现有模式创建合成数据集,或增强训练数据以提升模型性能,请使用 BigQuery DataFrames 和 Gemini。合成数据对生成式 AI 来说尤为有价值,因为它有助于提高提示多样性和整体模型稳健性。构建数据集以微调生成式 AI 模型时,不妨考虑使用 Vertex AI 中的合成数据生成功能。

对于微调或基于人类反馈的强化学习 (RLHF) 等生成式 AI 任务,请确保标签准确反映生成输出的质量、相关性和安全性。

选择合适的机器学习方法

在设计模型和参数时,请考虑模型的复杂性和计算需求。根据任务(例如分类、回归或生成),考虑使用 Vertex AI 自定义训练来构建自定义模型,或使用 AutoML 来执行更简单的机器学习任务。对于常见应用,您还可以通过 Vertex AI Model Garden 访问预训练模型。您可以针对各种用例(例如生成文本、图片和代码)试用各种先进的基础模型。

您可能需要对预训练的基础模型进行微调,以便针对特定应用场景实现最佳性能。对于自定义训练的高性能要求,请配置 Cloud Tensor Processing Unit (TPU)GPU 资源,以加快深度学习模型(例如大型语言模型 [LLM] 和扩散模型)的训练和推理速度。

为代码、模型和数据设置版本控制

如需有效管理和部署代码版本,请使用 GitHub 或 GitLab 等工具。这些工具提供强大的协作功能、分支策略以及与 CI/CD 流水线的集成,以确保简化开发流程。

使用适当的解决方案来管理机器学习系统的每个工件,例如以下示例:

  • 对于容器映像和流水线组件等代码工件,Artifact Registry 提供了可扩缩的存储解决方案,有助于提高安全性。Artifact Registry 还包含版本控制功能,并且可以与 Cloud BuildCloud Deploy 集成。
  • 如需管理数据工件(例如用于训练和评估的数据集),请使用 BigQuery 或 Cloud Storage 等解决方案进行存储和版本控制。
  • 如需存储元数据和指向数据位置的指针,请使用版本控制系统或单独的数据目录。

如需保持特征数据的一致性和版本控制,请使用 Vertex AI Feature Store。如需跟踪和管理模型工件(包括二进制文件和元数据),请使用 Vertex AI Model Registry,以便无缝存储、整理和部署模型版本。

为确保模型可靠性,请实现 Vertex AI 模型监控。检测数据漂移、跟踪性能并识别生产环境中的异常。对于生成式 AI 系统,监控输出质量和安全合规性的变化。

自动执行模型开发生命周期

自动化功能可帮助您简化 AI 和机器学习生命周期的每个阶段。自动化可减少手动工作量并标准化流程,从而提高运营效率并降低错误风险。自动化工作流可加快迭代速度、在各个环境中实现一致的部署,并获得更可靠的结果,从而让您的系统能够无缝扩缩和适应。

如需自动执行 AI 和机器学习系统的开发生命周期,请考虑以下建议。

使用代管式流水线编排系统

使用 Vertex AI Pipelines 可自动执行机器学习生命周期的每个步骤,从数据准备到模型训练、评估和部署。为了加快部署速度并促进各项目之间的一致性,请使用安排的流水线运行自动执行重复性任务,使用执行指标监控工作流,并为标准化工作流开发可重复使用的流水线模板。这些功能也适用于生成式 AI 模型,后者通常需要执行提示工程、回答过滤和人参与式评估等专门步骤。对于生成式 AI,Vertex AI Pipelines 可以自动执行这些步骤,包括根据质量指标和安全准则评估生成的输出。为了提高问题多样性和模型稳健性,自动化工作流还可以包含数据增强技术。

实现 CI/CD 流水线

如需自动构建、测试和部署机器学习模型,请使用 Cloud Build。在运行应用代码的测试套件时,此服务尤为有效,可确保基础架构、依赖项和模型封装符合您的部署要求。

除了代码测试之外,机器学习系统通常还需要执行其他步骤。例如,您需要在不同负载下对模型进行压力测试,执行批量评估以评估各种数据集中的模型性能,并在重新训练之前验证数据完整性。如需模拟真实的工作负载以进行压力测试,您可以使用 LocustGrafana k6Apache JMeter 等工具。如需找出瓶颈,请通过 Cloud Monitoring 监控延迟时间、错误率和资源利用率等关键指标。对于生成式 AI,测试还必须包含针对生成内容类型的特定评估,例如文本质量、图片保真度或代码功能。这些评估可以涉及自动化指标(例如语言模型的困惑度),也可以涉及对创意性和安全性等更细微方面进行人为评估。

如需实现测试和评估任务,您可以将 Cloud Build 与其他 Google Cloud 服务集成。例如,您可以使用 Vertex AI Pipelines 进行自动化模型评估,使用 BigQuery 进行大规模数据分析,并使用 Dataflow 流水线验证进行特征验证。

您可以使用 Vertex AI 进行持续训练,以便对新数据自动重新训练模型,从而进一步增强 CI/CD 流水线。具体而言,对于生成式 AI,为了让生成的输出相关且多样,重新训练可能涉及使用新训练数据或提示自动更新模型。您可以使用 Vertex AI Model Garden 选择可供调优的最新基础模型。此做法可确保模型保持最新状态,并根据不断变化的业务需求进行优化。

实现安全且受控的模型版本

为了最大限度地降低风险并确保可靠的部署,请实现一种模型发布方法,以便您尽早检测问题、验证性能,并在需要时快速回滚。

如需将机器学习模型和应用打包到容器映像中并进行部署,请使用 Cloud Deploy。您可以将模型部署到 Vertex AI 端点

使用Canary 版本等策略为 AI 应用和系统实现受控发布。对于使用 Gemini 等托管式模型的应用,我们建议您在全面部署之前,先面向部分用户逐步发布新版应用。通过这种方法,您可以及早发现潜在问题,尤其是在使用输出可能会有所不同的生成式 AI 模型时。

如需发布经过微调的模型,您可以使用 Cloud Deploy 管理模型版本的部署,并使用 Canary 版本策略来最大限度地降低风险。对于受管理的模型和经过微调的模型,受控发布版本的目标是在向所有用户发布应用和模型之前,先对更改进行小范围测试。

如需进行可靠的验证,请使用 Vertex AI Experiments 将新模型与现有模型进行比较,并使用 Vertex AI 模型评估来评估模型性能。具体而言,对于生成式 AI,请定义与预期用例和潜在风险相符的评估指标。您可以使用 Vertex AI 中的 Gen AI 评估服务来评估毒性、连贯性、事实准确性和是否遵守安全准则等指标。

为了确保部署可靠性,您需要制定稳健的回滚计划。对于传统机器学习系统,请使用 Vertex AI Model Monitoring 来检测数据偏移和性能下降。对于生成式 AI 模型,您可以将 Vertex AI 模型评估与 Cloud Logging 和 Cloud Monitoring 搭配使用,跟踪相关指标,并针对输出质量变化或有害内容出现设置提醒。根据生成式 AI 专用指标配置提醒,以便在必要时触发回滚过程。如需跟踪模型谱系并还原为最新的稳定版本,请使用 Vertex AI Model Registry 中的分析洞见。

实现可观测性

由于数据或环境的变化以及模型的更新,AI 和机器学习系统的行为可能会随时间而变化。这种动态特性使得可观测性对于检测性能问题、偏差或意外行为至关重要。对于生成式 AI 模型,这一点尤其正确,因为其输出可能具有高度可变性和主观性。借助可观察性,您可以主动解决意外行为,并确保 AI 和机器学习系统始终保持可靠、准确和公平。

如需为 AI 和机器学习系统实现可观测性,请考虑以下建议。

持续监控效果

使用指标和成效标准持续评估部署后的模型。

您可以使用 Vertex AI Model Monitoring 主动跟踪模型性能、识别训练-服务偏差和预测偏移,并接收提醒以触发必要的模型重新训练或其他干预措施。为了有效监控训练-应用偏差,请构建一个代表理想数据分布的黄金数据集,并使用 TFDV 分析训练数据并建立基准架构。

配置 Model Monitoring 以将输入数据的分布与基准数据集进行比较,以便自动检测偏差。对于传统机器学习模型,请重点关注准确率、精确率、召回率、F1 得分、AUC-ROC 和 log loss 等指标。在模型监控中为提醒定义自定义阈值。对于生成式 AI,请使用 Gen AI Evaluation Service 持续监控生产环境中的模型输出。您还可以为回答质量、安全性、指令遵从性、基础知识、写作风格和详细程度启用自动评估指标。如需评估生成的输出的质量、相关性、安全性和是否符合指南,您可以采用人参与式评估。

创建反馈环,以便在模型监控触发提醒时,使用 Vertex AI 流水线自动重新训练模型。利用这些数据洞见,不断改进您的模型。

在开发期间评估模型

在部署 LLM 和其他生成式 AI 模型之前,请在开发阶段对其进行全面评估。使用 Vertex AI 模型评估功能可实现最佳性能并降低风险。使用 Vertex AI 快速评估,让系统 Google Cloud 根据您提供的数据集和提示自动运行评估。

您还可以定义和集成特定于您的应用场景的自定义指标。如需针对生成的内容提供反馈,请使用 Vertex AI 模型评估功能集成人参与式工作流。

使用对抗性测试来识别漏洞和潜在的失败模式。如需识别和减少潜在偏差,请使用子群组分析和反事实生成等技术。利用在开发阶段完成的评估中收集的数据洞见,确定生产环境中的模型监控策略。按照本文档中的持续监控性能部分所述,为解决方案做好持续监控准备。

监控库存状况

如需深入了解已部署端点和基础架构的运行状况和性能,请使用 Cloud Monitoring。对于 Vertex AI 端点,您可以跟踪请求速率、错误率、延迟时间和资源利用率等关键指标,并针对异常设置提醒。如需了解详情,请参阅 Vertex AI 的 Cloud Monitoring 指标

监控底层基础架构的运行状况,其中可能包括 Compute Engine 实例、Google Kubernetes Engine (GKE) 集群以及 TPU 和 GPU。从 Active Assist 获取自动优化建议。如果您使用自动扩缩功能,请监控扩缩行为,以确保自动扩缩功能能够对流量模式的变化做出适当响应。

通过将 Cloud Deploy 与 Cloud Monitoring 集成,跟踪模型部署的状态,包括 Canary 版本和回滚。此外,您还可以使用 Security Command Center 监控潜在的安全威胁和漏洞。

针对业务专用阈值设置自定义提醒

为了及时发现和解决异常和问题,请根据与您的业务目标相关的阈值设置自定义提醒。您可以使用以下产品来实现自定义提醒系统: Google Cloud

  • Cloud Logging:收集、存储和分析 AI 和机器学习系统的所有组件中的日志。
  • Cloud Monitoring:创建自定义信息中心以直观呈现关键指标和趋势,并根据您的需求定义自定义指标。配置提醒以接收有关重大问题的通知,并将提醒与 PagerDuty 或 Slack 等事件管理工具集成。
  • Error Reporting:自动捕获和分析错误和异常。
  • Cloud Trace:分析分布式系统的性能并找出瓶颈。跟踪功能对于了解 AI 和机器学习流水线不同组件之间的延迟时间特别有用。
  • Cloud Profiler:持续分析生产环境中代码的性能,并找出 CPU 或内存用量方面的性能瓶颈。

打造卓越运营文化

将重点从仅构建模型转移到构建可持续、可靠且有影响力的 AI 解决方案。让团队能够持续学习、创新和改进,从而缩短开发周期、减少错误并提高效率。通过优先考虑自动化、标准化和伦理考虑,您可以确保 AI 和机器学习计划始终如一地创造价值、降低风险并促进负责任的 AI 开发。

如需为 AI 和机器学习系统打造卓越运营文化,请考虑以下建议。

推广自动化和标准化

为了强调效率和一致性,请将自动化和标准化做法嵌入到 AI 和机器学习生命周期的每个阶段。自动化功能可减少手动错误,让团队可以腾出时间专注于创新。标准化可确保流程可在各个团队和项目中重复使用并进行扩展。

优先考虑持续学习和改进

营造一个以持续教育和实验为核心原则的环境。鼓励团队及时了解 AI 和机器学习领域的最新进展,并提供从过往项目中学习的机会。好奇心和适应力文化有助于推动创新,并确保团队有能力应对新挑战。

培养责任感和所有权意识

明确定义角色、职责和指标,以建立信任并达成共识,从而取得理想成效。为团队赋能,让他们能够在这些范围内做出明智的决策,并建立透明的方式来衡量进度。这种归属感可以激励团队,并确保团队对结果承担集体责任。

嵌入 AI 伦理和安全注意事项

在开发的每个阶段,都应优先考虑伦理问题。鼓励团队批判性地思考其 AI 解决方案的影响,并促进就公平性、偏见和社会影响进行讨论。明确的原则和问责机制可确保您的 AI 系统符合组织价值观并促进信任。

实现可伸缩的设计

为了适应不断增长的数据量和用户需求,并最大限度地提高 AI 投资的价值,您的 AI 和机器学习系统需要具有可伸缩性。系统必须适应并以最佳方式运行,以避免影响效果的性能瓶颈。在设计可伸缩性时,您需要确保 AI 基础架构能够应对增长并保持响应能力。使用可伸缩的基础架构、规划容量,并采用横向扩缩和托管式服务等策略。

如需设计可扩缩的 AI 和机器学习系统,请考虑以下建议。

规划容量和配额

评估未来增长情况,并相应地规划基础架构容量和资源配额。与业务利益相关方合作,了解预计增长情况,然后据此确定基础架构要求。

使用 Cloud Monitoring 分析历史资源利用率、发现趋势并预测未来需求。定期进行负载测试,以模拟工作负载并找出瓶颈。

熟悉您所用服务(例如 Compute Engine、Vertex AI 和 Cloud Storage)的Google Cloud 配额。通过 Google Cloud 控制台主动申请配额增加,并使用预测和负载测试数据来证明增加配额的合理性。监控配额用量并设置提醒,以便在用量接近配额限制时收到通知。

如需根据需求优化资源使用情况,请调整资源大小,为容错批处理工作负载使用 Spot 虚拟机,并实现自动扩缩。

为峰值事件做好准备

确保您的系统能够在高峰事件期间处理流量或工作负载的突然激增。记录您的高峰事件策略,并定期进行演练,以测试系统处理增加的负载的能力。

如需在需求激增时积极扩缩资源,请在 Compute EngineGKE 中配置自动扩缩政策。对于可预测的峰值模式,不妨考虑使用预测性自动扩缩。如需根据应用专用信号触发自动扩缩,请在 Cloud Monitoring 中使用自定义指标。

使用 Cloud Load Balancing 在多个应用实例之间分配流量。根据应用的需求选择合适的负载平衡器类型。对于分布在不同地理位置的用户,您可以使用全球负载均衡将流量路由到最近的可用实例。对于基于微服务的复杂架构,不妨考虑使用 Cloud Service Mesh

使用 Cloud CDN 在 Google 网络的边缘缓存静态内容。如需缓存频繁访问的数据,您可以使用 Memorystore,它为 Redis、Valkey 或 Memcached 提供了全托管式内存中服务。

使用 Pub/Sub 进行实时消息传递,并使用 Cloud Tasks 执行异步任务,从而解耦系统组件

扩缩应用以用于生产环境

为了确保在生产环境中实现可伸缩的服务,您可以使用 Vertex AI Distributed TrainingVertex AI Prediction 等托管式服务。借助 Vertex AI Prediction,您可以在将模型部署到端点或请求批量预测时为预测节点配置机器类型。对于某些配置,您可以添加 GPU。选择合适的机器类型和加速器,以优化延迟时间、吞吐量和成本。

如需跨分布式计算资源扩展复杂的 AI 和 Python 应用以及自定义工作负载,您可以使用 Ray on Vertex AI。此功能有助于优化性能,并支持与Google Cloud 服务无缝集成。Ray on Vertex AI 通过处理集群管理、任务调度和数据传输,简化了分布式计算。它可与其他 Vertex AI 服务(例如训练、预测和流水线)集成。Ray 提供容错和自动扩缩功能,可帮助您根据不断变化的工作负载调整基础架构。它提供了一个统一的框架,可用于分布式训练、超参数调优、强化学习和模型服务。使用 Ray 通过 DataflowDataproc 进行分布式数据预处理、加速模型训练、可扩缩的超参数调优、强化学习和并行批量预测。

贡献者

作者:

其他贡献者:

AI 和机器学习视角:安全

良好架构框架:AI 和机器学习视角中的本文档概要介绍了一些原则和建议,以确保您的 AI 和机器学习部署符合贵组织的安全和合规性要求。本文档中的建议与 Google Cloud 良好架构框架的安全支柱保持一致。

安全部署 AI 和机器学习工作负载是一项关键要求,尤其是在企业环境中。为满足这一要求,您需要采用从 AI 和机器学习解决方案的初始概念设计开始,延伸到开发、部署和持续运营的全面安全方法。 Google Cloud 提供强大的工具和服务,旨在帮助您保护 AI 和机器学习工作负载。

明确定义目标和要求

与在开发后添加控制措施相比,在设计和开发流程的早期集成所需的安全和合规控制措施更为容易。从设计和开发流程开始,就做出适合您的具体风险环境和具体业务重点的决策。

请考虑以下建议:

  • 从一开始就识别潜在的攻击途径,并采用安全和合规性视角。在设计和改进 AI 系统时,请留意可能面临的攻击面、潜在风险和义务。
  • 将 AI 和机器学习安全工作与业务目标保持一致,并确保安全是整体策略中不可或缺的一部分。了解您的安全选择对主要业务目标的影响。

确保数据安全,防止数据丢失或被误处理

数据是一项宝贵且敏感的资产,必须妥善保护。数据安全有助于您维护用户信任、实现业务目标并满足合规性要求。

请考虑以下建议:

  • 请勿收集、保留或使用对实现业务目标没有严格必要的数据。如果可能,请使用合成数据或完全匿名化数据。
  • 监控数据收集、存储和转换。维护所有数据访问和操作活动的日志。这些日志可帮助您审核数据访问情况、检测未经授权的访问尝试,以及防止不必要的访问。
  • 根据用户角色实现不同级别的访问权限(例如无访问权限、只读或写入)。确保根据最小权限原则分配权限。用户必须仅拥有执行其角色活动所需的最低权限。
  • 实施加密、安全边界和数据移动限制等措施。这些措施有助于您防范数据渗漏和数据丢失。
  • 防范机器学习训练系统的数据中毒。

确保 AI 流水线安全可靠,防范篡改

您的 AI 和机器学习代码以及代码定义的流水线是关键资产。未经保护的代码可能会被篡改,这可能会导致数据泄露、违反合规性要求以及关键业务活动中断。确保 AI 和机器学习代码的安全有助于确保模型和模型输出的完整性和价值。

请考虑以下建议:

  • 在模型开发过程中,采用安全编码实践(例如依赖项管理或输入验证和清理)来防范漏洞。
  • 保护您的流水线代码和模型工件(例如文件、模型权重和部署规范)免遭未经授权的访问。根据用户角色和需求,为每个工件实现不同的访问权限级别。
  • 强制执行资产和流水线运行的沿袭和跟踪。此强制执行功能可帮助您满足合规性要求,并避免生产系统遭到入侵。

使用安全的工具和工件在安全的系统上部署

确保您的代码和模型在具有强大访问控制系统的安全环境中运行,并为在该环境中部署的工具和工件提供安全保障。

请考虑以下建议:

  • 在具有适当访问权限控制措施且可防范未经授权的使用或操纵的安全环境中训练和部署模型。
  • 针对 AI 专用工件(例如模型和软件包)遵循标准的软件工件的供应链级别 (SLSA) 指南。
  • 请优先使用专为 AI 工作负载设计且经过验证的预构建容器映像。

保护和监控输入

AI 系统需要输入信息才能进行预测、生成内容或自动执行操作。某些输入可能会造成风险或被用作攻击途径,因此必须进行检测和清理。尽早检测潜在的恶意输入有助于确保 AI 系统安全无虞并按预期运行。

请考虑以下建议:

  • 实施安全做法,为生成式 AI 系统开发和管理提示,并确保对提示进行筛查以防范有害意图。
  • 监控预测或生成式系统的输入,以防止端点过载或系统无法处理的问题。
  • 确保只有部署的系统的预期用户才能使用该系统。

监控、评估输出并做好回应准备

AI 系统之所以能够创造价值,是因为它们生成的输出可以增强、优化或自动执行人类决策。为了确保 AI 系统和应用的完整性和可信性,您需要确保输出安全且在预期参数范围内。您还需要制定突发事件响应计划。

请考虑以下建议:

  • 监控 AI 和机器学习模型在生产环境中的输出,并找出任何性能、安全和合规性问题。
  • 通过实现可靠的指标和安全措施(例如在预测模型中识别超出范围的生成式回答或极端输出)来评估模型性能。收集用户对模型性能的反馈。
  • 实施健全的提醒和突发事件响应流程,以解决任何潜在问题。

贡献者

作者:

其他贡献者:

AI 和机器学习视角:可靠性

架构良好的框架:AI 和机器学习视角中的本文档简要介绍了在 Google Cloud上设计和运行可靠 AI 和机器学习系统的原则和建议。该课程探讨了如何将高级可靠性实践和可观测性集成到架构蓝图中。本文档中的建议与 Google Cloud 良好架构框架的可靠性支柱保持一致。

在快速发展的 AI 和机器学习领域,可靠的系统对于确保客户满意度和实现业务目标至关重要。您需要 AI 和机器学习系统能够强大、可靠且具有适应性,以满足预测性机器学习和生成式 AI 的独特需求。为了应对 MLOps(从开发到部署再到持续改进)的复杂性,您需要采用以可靠性为先的方法。 Google Cloud 提供符合站点可靠性工程 (SRE) 原则的专用 AI 基础架构,为可靠的 AI 和机器学习系统奠定了坚实的基础。

确保基础架构可扩缩且具有高可用性

通过采用可伸缩且可靠的架构,您可以让应用在不中断服务或降低性能的情况下处理不同级别的需求。这意味着,在基础架构中断和流量非常高的情况下,用户仍可使用您的 AI 服务。

请考虑以下建议:

  • 设计具有自动和动态扩缩功能的 AI 系统,以应对需求波动。这有助于确保即使在流量激增时也能获得理想的性能。
  • 通过负载测试和性能监控,主动管理资源并预测未来需求。利用历史数据和预测分析,就资源分配做出明智的决策。
  • 通过在 Google Cloud 中采用多可用区和多区域部署原型并实现冗余和复制,从而实现高可用性和容错性。
  • 将传入流量分配到 AI 和机器学习服务和端点的多个实例。负载均衡有助于防止任何单个实例过载,并有助于确保一致的性能和可用性。

使用模块化和松散耦合的架构

为了让 AI 系统能够对各个组件的故障具有弹性,请使用模块化架构。例如,将数据处理和数据验证组件设计为单独的模块。当特定组件发生故障时,模块化架构有助于最大限度地缩短停机时间,让您的团队能够更快地开发和部署修复程序。

请考虑以下建议:

  • 将 AI 和机器学习系统拆分为小型自包含模块或组件。这种方法有助于提高代码可重用性,简化测试和维护,并让您能够独立开发和部署各个组件。
  • 设计具有明确定义的接口的松散耦合模块。这种方法可最大限度地减少依赖项,让您能够在不影响整个系统的情况下进行独立更新和更改。
  • 做好优雅降级的规划。当某个组件发生故障时,系统的其他部分必须继续提供足够的功能级别。
  • 使用 API 在模块之间创建明确的边界,并隐藏模块级实现细节。通过这种方法,您可以更新或替换各个组件,而不会影响与系统其他部分的互动。

构建自动化 MLOps 平台

借助自动化 MLOps 平台,模型生命周期的各个阶段和输出更可靠。通过促进一致性、松散耦合和模块化,并将操作和基础架构表示为代码,您可以消除脆弱的手动步骤,并维护更强大、更可靠的 AI 和机器学习系统。

请考虑以下建议:

  • 自动执行模型开发生命周期,从数据准备和验证到模型训练、评估、部署和监控。
  • 以代码形式管理基础架构 (IaC)。这种方法支持高效的版本控制、必要时快速回滚和可重复部署。
  • 使用相关数据验证模型是否按预期运行。 自动监控模型的性能,并针对意外输出构建适当的提醒。
  • 验证 AI 和机器学习流水线的输入和输出。例如,验证数据、配置、命令参数、文件和预测。为意外值或不允许的值配置提醒。
  • 为模型端点采用托管版本控制策略。这种策略支持增量发布,并可在出现问题时快速恢复。

通过数据和模型治理来维护信任和控制

AI 和机器学习系统的可靠性取决于数据和模型的可信度和治理能力。AI 输出可能会以静默的方式不符合预期。例如,输出可能在形式上是一致的,但可能不正确或不受欢迎。通过实现可追溯性和强大的治理,您可以确保输出可靠且值得信赖。

请考虑以下建议:

  • 使用数据和模型目录高效跟踪和管理您的素材资源。为方便跟踪和审核,请在整个生命周期内全面记录数据和模型版本。
  • 实施严格的访问控制和审核轨迹,以保护敏感数据和模型。
  • 解决 AI 偏见这一关键问题,尤其是在生成式 AI 应用中。为了赢得信任,请努力提高模型输出的透明度和可解释性。
  • 自动生成特征统计信息并实现异常检测,以主动识别数据问题。为确保模型可靠性,请建立机制来检测和减少数据分布变化的影响。

实施全面的 AI 和机器学习可观测性和可靠性实践

为了不断改进 AI 运维,您需要制定有意义的可靠性目标并衡量进度。可观测性是可靠系统的基础要素。借助可观测性,您可以管理正在进行的操作和关键事件。良好实现的可观测性有助于您为用户构建和维护可靠的服务。

请考虑以下建议:

  • 跟踪处理器(CPU、GPU 和 TPU)以及内存用量、网络延迟时间和磁盘用量等其他资源的基础架构指标。执行负载测试和性能监控。使用监控中的测试结果和指标来管理 AI 和机器学习系统的扩缩和容量。
  • 设定可靠性目标并跟踪应用指标。衡量您构建的 AI 应用的吞吐量和延迟时间等指标。监控应用和公开端点的使用模式。
  • 建立特定于模型的指标(例如准确性或安全指标),以评估模型的可靠性。跟踪这些指标在一段时间内的变化,以发现任何偏移或降级情况。如需高效地进行版本控制和自动化,请将监控配置定义为代码。
  • 定义和跟踪业务级指标,了解模型和可靠性对业务成效的影响。如需衡量 AI 和 ML 服务的可靠性,不妨考虑采用 SRE 方法并定义服务等级目标 (SLO)

贡献者

作者:

其他贡献者:

AI 和机器学习视角:费用优化

架构良好的框架:AI 和机器学习视角中的本文档概述了在整个机器学习生命周期中优化 AI 系统费用的原则和建议。通过采用积极且明智的成本管理方法,贵组织可以充分发挥 AI 和机器学习系统的潜力,同时保持财务纪律。本文档中的建议与 Google Cloud Well-Architected Framework 的费用优化支柱保持一致。

AI 和机器学习系统可以帮助您从数据中发掘有价值的分析洞见和预测能力。例如,您可以减少内部流程中的摩擦改善用户体验,以及获得更深入的客户洞察。云端提供大量资源,可让您快速实现价值,而无需为 AI 和机器学习工作负载进行大量前期投资。为了最大限度地提高业务价值并使支出与业务目标保持一致,您需要了解费用驱动因素、主动优化费用、设置支出控制措施,并采用 FinOps 做法。

定义和衡量费用和回报

如需在 Google Cloud中有效管理 AI 和机器学习费用,您必须定义和衡量云资源的支出以及 AI 和机器学习计划的业务价值。 Google Cloud 提供了全面的结算和费用管理工具,可帮助您精细跟踪支出。您可以衡量的业务价值指标包括客户满意度、收入和运营成本。通过为成本和业务价值建立具体的指标,您可以就资源分配和优化做出明智的决策。

请考虑以下建议:

  • 为 AI 和机器学习项目制定明确的业务目标和关键绩效指标 (KPI)。
  • 使用 Google Cloud 提供的结算信息来实现费用监控和报告流程,这有助于您将费用归因于特定 AI 和机器学习活动。
  • 建立信息中心、提醒和报告系统,以便根据 KPI 跟踪费用和回报。

优化资源分配

若要在 Google Cloud中为 AI 和机器学习工作负载实现成本效益,您必须优化资源分配。通过仔细调整资源分配以满足工作负载需求,您可以避免不必要的开支,并确保 AI 和机器学习系统拥有实现最佳性能所需的资源。

请考虑以下建议:

  • 使用自动扩缩功能动态调整训练和推理资源。
  • 从小型模型和数据开始。尽可能以较小规模测试假设,从而节省费用。
  • 通过实验了解您的计算需求。根据您的 ML 要求,合理调整用于训练和服务的资源规模。
  • 采用 MLOps 实践,减少重复性工作、人工流程和低效的资源分配。

强制执行数据管理和治理做法

有效的数据管理和治理做法在成本优化中起着至关重要的作用。井然有序的数据有助于贵组织避免不必要的重复,减少获取高质量数据所需的工作量,并鼓励团队重复使用数据集。通过主动管理数据,您可以降低存储成本、提升数据质量,并确保机器学习模型的训练和运作基于最相关、最有价值的数据。

请考虑以下建议:

  • 建立并采用明确定义的数据治理框架。
  • 在数据提取时,将标签和相关元数据应用于数据集。
  • 确保数据集可在整个组织中被发现和访问。
  • 尽可能让数据集和特征在整个机器学习生命周期内可重复使用。

利用 MLOps 实现自动化和简化

采用 MLOps 实践的一个主要好处是,从技术角度和人员活动角度来看,成本会降低。自动化功能可帮助您避免重复机器学习活动,并提高数据科学家和机器学习工程师的工作效率。

请考虑以下建议:

  • 提高数据收集和处理技术的自动化和标准化水平,从而减少开发工作量和时间。
  • 开发自动化训练流水线,以减少手动干预的需求并提高工程师的工作效率。为流水线实现机制,以重复使用准备就绪的数据集和训练好的模型等现有资产。
  • 使用 Google Cloud 中的模型评估和调优服务,以便通过更少的迭代次数提升模型性能。这样,AI 和机器学习团队就可以在更短的时间内实现更多目标。

使用托管式服务以及预训练或现有模型

利用 AI 和机器学习实现业务目标的方法有很多。采用增量方法进行模型选择和模型开发。这有助于避免每次从头开始所带来的过高费用。如需控制费用,请先采用简单的方法:使用机器学习框架、托管式服务和预训练模型。

请考虑以下建议:

  • 使用笔记本环境进行探索性和快速的机器学习实验。
  • 使用现有模型和预训练模型作为起点,加快模型选择和开发流程。
  • 使用托管式服务训练或部署模型。AutoML 和托管式自定义模型训练服务都可以帮助降低模型训练费用。代管式服务还有助于降低模型服务基础架构的费用。

培养成本意识和持续优化的文化

营造鼓励沟通和定期审核的协作环境。这种方法有助于团队在整个机器学习生命周期中发现并实施节省费用的机会。

请考虑以下建议:

  • 在整个机器学习生命周期中采用 FinOps 原则
  • 确保为 AI 和机器学习项目的所有费用和业务利益分配了明确负责的所有者。

贡献者

作者:

其他贡献者:

AI 和机器学习视角:性能优化

良好架构框架:AI 和机器学习视角中的这篇文档简要介绍了一些原则和建议,可帮助您优化 Google Cloud上 AI 和机器学习工作负载的性能。本文档中的建议与 Google Cloud 良好架构框架的性能优化支柱保持一致。

AI 和机器学习系统可为贵组织赋予新的自动化和决策能力。这些系统的性能可能会直接影响您的业务驱动因素,例如收入、成本和客户满意度。为了充分发挥 AI 和机器学习系统的潜力,您需要根据业务目标和技术要求优化其性能。性能优化过程通常涉及一些权衡。例如,提供所需性能的设计选择可能会导致成本更高。本文档中的建议将性能置于成本等其他因素之上。

为了优化 AI 和机器学习性能,您需要就模型架构、参数和训练策略等因素做出决策。在做出这些决策时,请考虑 AI 和机器学习系统及其部署环境的整个生命周期。例如,非常大的 LLM 可以在庞大的训练基础架构上实现高性能,但在容量受限的环境(例如移动设备)中,非常大的模型可能无法取得理想的效果。

将业务目标转化为效果目标

若要做出有助于优化性能的架构决策,请先明确一组业务目标。设计 AI 和机器学习系统,以提供支持业务目标和优先事项所需的技术性能。您的技术团队必须了解效果目标与业务目标之间的映射。

请考虑以下建议:

  • 将业务目标转化为技术要求:将 AI 和机器学习系统的业务目标转化为具体的技术性能要求,并评估未满足这些要求的影响。例如,对于用于预测客户流失情况的应用,机器学习模型应在准确率和召回率等标准指标方面表现出色,并且应用应满足低延迟时间等操作要求。
  • 在模型生命周期的所有阶段监控性能:在模型部署后的实验和训练期间,监控关键绩效指标 (KPI),并观察与业务目标存在的任何偏差。
  • 自动执行评估,使其可重复且标准化:借助标准化且可比较的实验评估平台和方法,工程师可以加快性能改进速度。

运行和跟踪频繁的实验

要将创新和创造力转化为效果提升,您需要营造一种支持实验的文化,并打造一个支持实验的平台。由于 AI 和机器学习技术在不断快速发展,因此性能改进是一个持续的过程。为了保持快速迭代的过程,您需要将实验环境与训练和服务平台分开。制定标准化且可靠的实验流程至关重要。

请考虑以下建议:

  • 构建实验环境:若要提升性能,需要专用的强大交互式环境,以支持机器学习流水线的实验和协作开发。
  • 将实验作为一种文化植入:在任何生产环境部署之前运行实验。迭代发布新版本,并始终收集性能数据。尝试使用不同的数据类型、特征转换、算法和超参数

构建和自动执行训练和服务

训练和部署 AI 模型是 AI 服务的核心组成部分。您需要强大的平台和实践,以支持快速可靠地创建、部署和提供 AI 模型。请花些时间和精力,为核心 AI 训练和服务任务创建基础平台。这些基础平台有助于缩短团队的工作时间和工作量,并从中长期提高输出质量。

请考虑以下建议:

  • 使用训练服务的 AI 专用组件:此类组件包括高性能计算组件和 MLOps 组件,例如特征存储区、模型注册表、元数据存储区和模型性能评估服务。
  • 使用预测服务的 AI 专用组件:此类组件可提供高性能且可伸缩的资源,支持特征监控,并实现模型性能监控。为防止和管理性能下降,请实施可靠的部署和回滚策略。

将设计选项与性能要求相匹配

在做出设计决策以提升性能时,请仔细评估这些决策是否符合您的业务要求,还是会造成浪费和适得其反。如需选择合适的基础架构、模型或配置,请找出性能瓶颈并评估它们与性能指标之间的关联。例如,即使在功能强大的 GPU 加速器上,您的训练任务也可能会因存储层的数据 I/O 问题或模型本身的性能限制而出现性能瓶颈。

请考虑以下建议:

  • 根据性能目标优化硬件用量:为了训练和部署符合性能要求的机器学习模型,您需要优化计算层、存储层和网络层的基础架构。您必须衡量和了解影响效果目标的变量。这些变量在训练和推理阶段是不同的。
  • 侧重于工作负载专用要求:将性能优化工作重点放在 AI 和机器学习工作负载的独特要求上。依靠托管式服务来确保底层基础架构的性能。
  • 选择适当的训练策略:我们提供了多个预训练基础模型,并且会经常发布更多此类模型。选择可为您的任务提供最佳性能的训练策略。确定您是应构建自己的模型、根据您的数据调整预训练模型,还是使用预训练模型 API。
  • 认识到效果优化策略的回报率可能会递减:如果某种特定的效果优化策略未能带来可衡量的增量业务价值,请停止采用该策略。

为了创新、排查和调查性能问题,请在设计选择和性能结果之间建立明确的联系。除了实验之外,您还必须可靠地记录资产、部署、模型输出以及生成输出的配置和输入的谱系。

请考虑以下建议:

  • 构建数据和模型谱系系统:所有已部署的资产及其效果指标都必须回溯到导致部署系统的数据、配置、代码和选择。此外,模型输出必须与特定的模型版本以及输出生成方式相关联。
  • 使用可解释性工具提升模型性能:采用并标准化用于模型探索和可解释性的工具和基准。这些工具可帮助机器学习工程师了解模型行为,并提升性能或消除偏差。

贡献者

作者:

其他贡献者: