架构完善框架:AI 和机器学习视角中的本文档简要介绍了在 Google Cloud上设计和运行可靠的 AI 和机器学习系统的原则和建议。本文探讨了如何将高级可靠性实践和可观测性集成到架构蓝图中。本文档中的建议与 Google Cloud 架构完善框架的可靠性支柱保持一致。
在快速发展的 AI 和 ML 领域,可靠的系统对于确保客户满意度和实现业务目标至关重要。您需要强大、可靠且可适应的 AI 和 ML 系统,以满足预测性 ML 和生成式 AI 的独特需求。为了应对 MLOps(从开发到部署和持续改进)的复杂性,您需要采用可靠性优先的方法。 Google Cloud 提供专门构建的 AI 基础设施,该基础设施符合站点可靠性工程 (SRE) 原则,并为可靠的 AI 和机器学习系统奠定坚实的基础。
确保基础架构可伸缩且具备高可用性
通过在架构中考虑可伸缩性和可用性,您可以让应用在不发生服务中断或性能下降的情况下应对不同程度的需求。这意味着,即使在基础设施中断或流量非常高时,用户仍可使用您的 AI 服务。
请考虑以下建议:
- 设计具有自动和动态伸缩功能的 AI 系统,以应对需求波动。这有助于确保即使在流量高峰期也能获得理想的性能。
- 通过负载测试和性能监控,主动管理资源并预测未来需求。利用历史数据和预测分析来做出明智的资源分配决策。
- 通过在 Google Cloud 中采用多可用区和多区域部署原型并实现冗余和复制,设计出具有高可用性和容错能力的系统。
- 在 AI 和 ML 服务的多个实例和端点之间分配传入流量。负载均衡有助于防止任何单个实例过载,并有助于确保性能和可用性保持一致。
使用模块化且松散耦合的架构
为了使 AI 系统能够应对单个组件的故障,请使用模块化架构。例如,将数据处理和数据验证组件设计为单独的模块。当某个特定组件发生故障时,模块化架构有助于最大限度地缩短停机时间,并让您的团队更快地开发和部署修复程序。
请考虑以下建议:
- 将 AI 和 ML 系统拆分为小的自包含模块或组件。这种方法可提高代码的可重用性,简化测试和维护,并让您独立开发和部署各个组件。
- 设计具有明确定义的接口的松散耦合模块。这种方法可最大限度地减少依赖项,让您能够独立进行更新和更改,而不会影响整个系统。
- 规划优雅降级。当某个组件发生故障时,系统的其他部分必须继续提供足够的功能。
- 使用 API 在模块之间创建清晰的边界,并隐藏模块级实现细节。借助此方法,您可以更新或替换单个组件,而不会影响与系统其他部分的互动。
构建自动化 MLOps 平台
借助自动化 MLOps 平台,模型生命周期的各个阶段和输出会更加可靠。通过提高一致性、松耦合性和模块化程度,并将运营和基础架构表示为代码,您可以消除脆弱的手动步骤,并维护更强大、更可靠的 AI 和机器学习系统。
请考虑以下建议:
- 自动执行模型开发生命周期,从数据准备和验证到模型训练、评估、部署和监控。
- 以代码形式管理基础架构 (IaC)。这种方法可实现高效的版本控制、在必要时快速回滚,以及可重复的部署。
- 验证模型是否能按预期处理相关数据。 自动监控模型的性能,并针对意外输出设置适当的提醒。
- 验证 AI 和 ML 流水线的输入和输出。例如,验证数据、配置、命令实参、文件和预测结果。为意外值或不允许的值配置提醒。
- 为模型端点采用受管理的版本控制策略。这种策略支持增量发布,并可在出现问题时快速恢复。
通过数据和模型治理来维持信任和控制
AI 和 ML 系统的可靠性取决于数据和模型的可信度以及治理能力。AI 输出可能会以无声的方式不符合预期。例如,输出可能在形式上是一致的,但可能不正确或不受欢迎。通过实施可追溯性和严格的治理,您可以确保输出结果可靠且值得信赖。
请考虑以下建议:
- 使用数据和模型目录来有效跟踪和管理您的资产。为了便于跟踪和审核,请在整个生命周期内维护数据和模型版本的全面记录。
- 实施严格的访问权限控制和审核轨迹,以保护敏感数据和模型。
- 解决 AI(尤其是生成式 AI 应用)中存在的严重偏见问题。为了赢得信任,请努力提高模型输出的透明度和可解释性。
- 自动生成特征统计信息并实现异常检测,以主动识别数据问题。为确保模型可靠性,请建立相关机制来检测和缓解数据分布变化的影响。
实施全面的 AI 和机器学习可观测性和可靠性实践
为了不断改进 AI 运营,您需要定义有意义的可靠性目标并衡量进展情况。可观测性是可靠系统的基础要素。可观测性可帮助您管理正在进行的操作和关键事件。妥善实现的可观测性有助于您为用户构建和维护可靠的服务。
请考虑以下建议:
- 跟踪处理器(CPU、GPU 和 TPU)以及其他资源(例如内存用量、网络延迟时间和磁盘用量)的基础设施指标。执行负载测试和性能监控。使用监控中的测试结果和指标来管理 AI 和 ML 系统的伸缩和容量。
- 制定可靠性目标并跟踪应用指标。衡量您构建的 AI 应用的吞吐量和延迟时间等指标。监控应用和公开端点的使用模式。
- 建立特定于模型的指标(例如准确率或安全指标),以便评估模型可靠性。随时间推移跟踪这些指标,以发现任何漂移或退化。为了实现高效的版本控制和自动化,请将监控配置定义为代码。
- 定义和跟踪业务级指标,以了解模型和可靠性对业务成果的影响。如需衡量 AI 和 ML 服务的可靠性,请考虑采用 SRE 方法并定义服务等级目标 (SLO)。
贡献者
作者:
- Rick (Rugui) Chen | AI 基础设施解决方案架构师
- Filipe Gracio 博士 | 客户工程师
其他贡献者:
- Jose Andrade | 企业基础架构客户工程师
- Kumar Dhanagopal | 跨产品解决方案开发者
- Marwan Al Shawi | 合作伙伴客户工程师