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

Last reviewed 2024-10-11 UTC

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

在快速发展的 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)

贡献者

作者:

其他贡献者: