《Well-Architected Framework: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 和机器学习服务的可靠性,请考虑采用 SRE 方法并定义服务等级目标 (SLO)。
贡献者
作者:
- Rick (Rugui) Chen | AI 基础架构解决方案架构师
- Filipe Gracio 博士 | 客户工程师
其他贡献者:
- Jose Andrade | 企业基础架构客户工程师
- Kumar Dhanagopal | 跨产品解决方案开发者
- Marwan Al Shawi | 合作伙伴客户工程师