MLOps 使用后台和自助服务 Amazon A SageMaker I 模板加速 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

MLOps 使用后台和自助服务 Amazon A SageMaker I 模板加速

Ashish Bhatt、Shashank Hirematt 和 Shivanshu Suryakar,Amazon Web Services

摘要

使用机器学习运营 (MLOps) 系统的组织在扩展、标准化和保护其机器学习基础架构方面面临重大挑战。这种模式引入了一种变革性方法,它将开源开发者门户 Backstag e 与 A mazon SageMaker AI 和强化基础设施即代码 (IaC) 模块相结合,以改善数据科学团队开发、部署和管理机器学习工作流程的方式。

此模式的 IaC 模块在 GitHub AWS AIOps 模块存储库中提供。这些模块提供了用于设置机器学习基础架构和创建一致的机器学习环境的预建模板。但是,数据科学家往往难以直接使用这些模板,因为它们需要基础架构专业知识。添加诸如Backstage之类的开发人员门户网站为数据科学家提供了一种用户友好的方式,无需了解底层基础架构的细节即可部署标准化的机器学习环境。

通过将 Backstage 用作自助服务平台并集成预配置的 SageMaker AI 模板,您可以:

  • 加快机器学习计划的价值实现时间。

  • 帮助实施一致的安全和治理。

  • 为数据科学家提供标准化、合规的环境。

  • 降低运营开销和基础架构复杂性。

这种模式提供了一种解决关键挑战的 MLOps 解决方案,还提供了一个可扩展、可重复的框架,在保持组织标准的同时实现创新。

目标受众

这种模式适用于组织内参与机器学习、云架构和平台工程的广泛受众。这包括:

  • 想要实现@@ 机器学习工作流程部署标准化和自动化的机器学习工程师

  • 想要自助访问预配置且合规的机器学习环境@@ 的数据科学家

  • 负责构建和维护内部开发者平台和共享基础设施的平台@@ 工程师

  • 为其设计可扩展、安全且经济实惠的云解决方案的云@@ 架构师 MLOps。

  • DevOps 有兴趣将持续集成和持续交付 (CI/CD) 实践扩展到机器学习基础架构配置和工作流程的@@ 工程师

  • 负责监督机器学习计划@@ 并希望提高团队生产力、治理和上市时间的技术主管和经理。

有关 MLOps 挑战、 SageMaker AI MLOps 模块以及此模式提供的解决方案如何满足您的机器学习团队需求的更多信息,请参阅其他信息部分。

先决条件和限制

先决条件

限制

  • 模板覆盖范围有限。目前,该解决方案仅支持更广泛的AIOps 解决方案中 SageMaker 与 AI 相关的 AIOps 模块。其他模块,例如亚马逊 Elastic Kubernetes Service(亚马逊 EKS)上的 Ray MLflow、Apache Airflow 以及亚马逊 Bedrock 的微调,尚未作为后台模板提供。

  • 不可配置的默认设置。模板使用 AIOps SageMaker 模块中的固定默认配置,无需自定义。您无法通过 Backstage 界面修改实例类型、存储大小、网络配置或安全策略,这限制了特定用例的灵活性。

  • AWS-仅支持。该平台专为 AWS 部署而设计,不支持多云场景。在外部使用云服务的组织 AWS Cloud 不能使用这些模板来满足其机器学习基础架构需求。

  • 手动凭证管理。您必须为每个部署手动提供 AWS 证书。此解决方案不提供与企业身份提供商的集成 AWS IAM Identity Center,也不提供自动凭证轮换。

  • 有限的生命周期管理。这些模板缺少全面的资源生命周期管理功能,例如自动清理策略、成本优化建议和基础设施偏差检测。创建后,您必须手动管理和监控已部署的资源。

架构

下图显示了统一开发者门户的解决方案架构,该门户通过跨环境的 SageMaker AI 来标准化和加速机器学习基础架构的部署。

包含后台、CNOE、Actions 和 Seed-Farmer 的统一开发者门户架构。 GitHub

在此架构中:

  1. AWS 应用程序现代化蓝图将基础设施设置配置为 Amazon EKS 集群作为云原生卓越运营 (CNOE) 框架的基础。这个全面的解决方案通过提供可扩展的内部开发者平台 (IDP) 来解决复杂的云原生基础设施管理挑战。蓝图提供了一种结构化的方法来建立强大、灵活的基础架构,以适应您不断变化的组织需求。

  2. CNOE 开源框架通过统一的平台工程方法整合 DevOps 工具并解决生态系统碎片化问题。通过整合不同的工具和技术,它简化了云原生开发的复杂格局,因此您的团队可以专注于创新而不是工具链管理。该框架提供了一种用于选择、集成和管理开发工具的标准化方法。

  3. 在 CNOE 中,Backstage 作为 out-of-the-box解决方案部署在 Amazon EKS 集群中。Backstage 捆绑了通过 Keycloak 提供的强大身份验证和 A rgo CD 的全面部署工作流程。该集成平台创建了一个用于管理开发流程的集中式环境,并为团队提供了在多个环境中访问、部署和监控其基础架构和应用程序的单一场所。

  4. GitHub 存储库包含涵盖整个 SageMaker AI 生命周期的预配置 AIOps 软件模板。这些模板可满足关键的机器学习基础架构需求,包括 SageMaker Studio 配置、模型训练、推理管道和模型监控。这些模板可帮助您加快机器学习计划,并确保不同项目和团队之间的一致性。

  5. GitHub A@@ c tions 实现了一个自动化工作流程,该工作流程通过 Seed-Farmer 实用程序动态触发资源配置。这种方法将 Backstage 目录与 AIOps 模块存储库集成,并创建了简化的基础架构部署流程。自动化减少了手动干预,最大限度地减少了人为错误,并确保在不同的环境中快速、一致地创建基础架构。

  6. AWS CDK可帮助您将基础架构定义和配置为代码,并确保在指定 AWS 账户范围内进行可重复、安全和合规的资源部署。这种方法以最少的人工干预提供了最大限度的治理,因此您可以创建易于复制、版本控制和审计的标准化基础架构模板。

工具

AWS 服务

其他工具

  • Backstag e 是一个开源框架,可帮助您构建内部开发者门户。

  • GitHub Actions 是一个自动@@ 执行软件开发工作流程的 CI/CD 平台,包括构建、测试和部署代码等任务。

代码存储库

此模式使用来自以下 GitHub 存储库的代码和模板:

实施

此实现使用了存储库上现代工程中的 Backstage 生产级部署模式。 AWS这种方法极大地简化了设置过程,同时纳入了安全性和可扩展性方面 AWS 的最佳实践。

此模式的 Epics 部分概述了实现方法。有关详细的 step-by-step部署说明,请参阅带有 Backstage 存储库的AIOps 内部开发者平台 (IDP) 中提供的综合部署指南。实施包括:

  • 最初的后台平台部署

  • 将 SageMaker 软件模板与 Backstage 集成

  • 使用和维护后台模板

部署指南还包括有关持续维护、故障排除和平台扩展的指南。

最佳实践

遵循这些最佳实践,以帮助确保 MLOps 基础设施实施中的安全性、治理和卓越运营。

模板管理

  • 切勿对实时模板进行重大更改。

  • 在生产部署之前,请务必对更新进行全面测试。

  • 保持清晰且有据可查的模板版本。

安全性

  • 将 GitHub 操作固定到特定的提交安全哈希算法 (SHAs),以帮助防止供应链攻击。

  • 使用具有精细权限的最低权限的 IAM 角色。

  • 将敏感凭据存储在 S GitHub ecret s 和AWS Secrets Manager

  • 切勿在模板中对凭据进行硬编码。

治理和跟踪

  • 实施全面的资源标签标准。

  • 实现精确的成本跟踪和合规性监控。

  • 对基础设施变更保持清晰的审计跟踪。

本指南为使用 Backstage、 SageMaker AI 和 IaC 模块实现这些最佳实践提供了坚实的基础。

操作说明

Task说明所需技能

在后台部署。

此步骤使用 AWS存储库现代工程中的蓝图来构建一个强大、可扩展的基础架构,该基础架构集成了多个 AWS 服务 基础架构,为机器学习工作流程创建集中式 IDP。按照部署指南的 Backstage 部署部分中的说明克隆存储库、安装依赖项、引导 AWS CDK 配置环境变量以及部署 Backstage 平台。

该基础设施使用 Amazon EKS 作为用于部署 IDP 组件的容器编排平台。Amazon EKS 架构包括安全的联网配置,用于建立严格的网络隔离和控制访问模式。该平台与身份验证机制集成,可帮助保护用户跨服务和环境的访问权限。

平台工程师

设置你的 SageMaker AI 模板。

此步骤使用 GitHub AIOps 内部开发者平台 (IDP) 中的脚本和 Backstage 存储库。按照部署指南SageMaker 模板设置部分中的说明克隆存储库、设置先决条件并运行安装脚本。

此过程将创建一个存储库,其中包含与 Backstage 集成所需的 SageMaker AI 模板。

平台工程师

将 SageMaker AI 模板与 Backstage 集成。

按照部署指南的 “SageMaker 模板集成” 部分中的说明注册您的 SageMaker AI 模板。

此步骤将 AIOps 模块(上一步中的 SageMaker AI 模板)集成到您的 Backstage 部署中,这样您就可以自助满足机器学习基础架构的需求。

平台工程师

使用 Backstage 中的 SageMaker AI 模板。

按照部署指南的 “使用 SageMaker 模板” 部分中的说明访问 Backstage 门户并在 SageMaker Studio 中创建机器学习环境。

在 Backstage 门户中,您可以从可用的 SageMaker AI 模板中进行选择,包括 SageMaker Studio 环境、 SageMaker 笔记本、自定义 SageMaker 项目模板和模型部署管道的选项。在您提供配置参数后,平台会自动创建专用存储库,并通过 Actions 和 Seed- GitHub Farmer 配置 AWS 资源。您可以通过 GitHub 操作日志和 Backstage 组件目录监控进度。

数据科学家、数据工程师、开发人员
Task说明所需技能

更新 SageMaker AI 模板。

要在 Backstage 中更新 SageMaker AI 模板,请按照以下步骤操作。

  1. 修改模板内容:

    1. template.yaml文件或编辑skeleton/目录中的文件进行必要的更改。

    2. 在本地或开发环境中测试任何新的参数、操作或文件结构。

  2. 测试变更:

    1. 使用 Backstage UI 或 CLI (@backstage/create-app) 通过使用更新的模板来搭建测试组件。

    2. 验证所有步骤是否成功运行,以及生成的代码是否符合您的期望。

  3. 提交并推送更改:

    1. 将更改推送到存储模板的 Git 存储库。

      如果模板是在特定分支中注册的(例如main),则更新将自动反映出来。

    2. 如果您使用的是版本控制(请参阅下一步),请确保更新了正确的版本或标签。

平台工程师

创建和管理模板的多个版本。

要进行重大更改或升级,您可能需要创建 SageMaker AI 模板的多个版本。

  1. 为每个版本使用 Git 标签或分支;例如:

    git checkout -b v2.0.0 git push origin v2.0.0
  2. (可选,但建议使用)分别注册每个版本。

    在 Backstage 中,您可以将模板的不同版本注册为目录中的单独实体,其中每个实体都指向特定的分支或标签。例如(对于.yaml文件):

    metadata: name: node-service-template-v2 description: Node.js service template - Version 2 spec: type: template lifecycle: experimental version: '2.0.0'
  3. 通过在模板存储库中维护CHANGELOG.md文件来清晰地传达更改。在此文件中,记录了每个模板版本中引入了哪些功能或更改。

  4. 如有必要,请弃用该模板的旧版本:

    1. 在模板描述中将其标记为已弃用。

    2. 如果不再需要该版本,请将其从目录中删除。

平台工程师
Task说明所需技能

将模板覆盖范围扩展到 SageMaker AI 之外。

当前的解决方案仅实现 SageMaker 与 AI 相关的 AIOps 模板。您可以通过添加AIOps 模块和为其他 AWS 服务 应用程序集成自定义软件模板来扩展机器学习环境。您可以使用 Backstage 中的模板设计器界面、实现自定义脚手架操作或使用标准元数据维护模板存储库来创建这些存储库。该平台支持模板版本控制、跨团队共享和验证工作流程,以实现一致性。有关更多信息,请参阅 Backstage 文档

您还可以实现模板继承模式来创建基础模板的专用版本。这种可扩展性使您能够管理 SageMaker 人工智能以外的各种 AWS 资源和应用程序,同时保留简化的开发人员体验并保持组织的标准。

平台工程师

使用动态参数注入。

当前模板使用无需自定义的默认配置,并运行 Seed-Farmer CLI 以使用默认变量部署资源。您可以通过对模块特定的配置使用动态参数注入来扩展默认配置。

平台工程师

增强安全性和合规性。

为了增强创建 AWS 资源的安全性,您可以启用基于角色的访问控制 (RBAC) 集成,包括单点登录 (SSO)、SAML、OpenID Connect (OIDC) 和策略即代码执行。

平台工程师

添加自动资源清理。

您可以启用自动清理策略的功能,还可以添加基础设施偏差检测和修复。

平台工程师
Task说明所需技能

移除后台基础架构和 SageMaker AI 资源。

使用完机器学习环境后,请按照部署指南的 “清理和资源管理” 部分中的说明移除 Backstage 基础架构并删除 ML 环境中的 SageMaker AI 资源。

平台工程师

问题排查

事务解决方案

AWS CDK 引导失败

验证 AWS 凭证和区域配置。

亚马逊 EKS 集群访问问题

检查 kubectl 配置和 IAM 权限。

Application Load Balancer 连接

确保安全组允许端口 80/443 上的入站流量。

GitHub 集成问题

验证 GitHub 令牌权限和组织访问权限。

SageMaker AI 部署失败

检查AWS 服务 配额和 IAM 权限。

相关资源

其他信息

业务挑战

开始或扩大其 MLOps 计划的组织经常会遇到以下业务和技术挑战:

  • 环境不一致。缺乏标准化的开发和部署环境使协作变得困难,并增加了部署风险。

  • 手动配置开销。使用 SageMaker Studio、Amazon Simple Storage Service (Amazon S3) 存储桶、IAM 角色 CI/CD 和管道手动设置机器学习基础设施既耗时又容易出错,而且会使数据科学家偏离模型开发的核心任务。

  • 缺乏可发现性和重复使用性。由于缺乏集中式目录,因此很难找到现有的机器学习模型、数据集和管道。这会导致冗余工作和错失重复使用的机会。

  • 复杂的治理和合规性。如果没有自动护栏,确保机器学习项目遵守组织安全政策、数据隐私法规以及诸如《健康保险便携性和责任法案》(HIPAA) 和《通用数据保护条例》(GDPR) 等合规标准可能具有挑战性。

  • 实现价值的时间很慢。这些挑战的累积效应导致机器学习项目生命周期延长,并延迟机器学习投资实现业务价值。

  • 安全风险。不一致的配置和手动流程可能会引入安全漏洞,从而难以强制执行最低权限和网络隔离。

这些问题延长了开发周期,增加了运营开销,并带来了安全风险。机器学习的迭代性质要求可重复的工作流程和高效的协作。

Gartner预测,到2026年,80%的软件工程组织将拥有平台团队。(参见 Gartner 网站上的平台工程赋能开发者变得更好、更快、更快乐。) 该预测凸显了 IDP 如何加快软件交付。作为 IDP,Backstage 可帮助恢复复杂基础设施的秩序,以便团队能够快速安全地交付高质量的代码。将 Backstage 与强化 AIOps 模块集成,可帮助您从被动故障排除转变为主动预防。

MLOps SageMaker 模块

GitHub 存储库中用于此模式的AIOps 模块为 AWS 通过可重复使用和强化的 IaC 实现标准化 MLOps 提供了宝贵的基础。这些模块封装了配置 SageMaker 项目、管道以及相关的网络和存储资源的最佳实践,目的是降低复杂性并加快机器学习环境的设置。您可以将这些模板用于各种 MLOps 用例,以建立一致且安全的部署模式,从而为机器学习工作流程提供更受管控和更有效的方法。

直接使用这些 AIOps 模块通常需要平台团队部署和管理这些 IaC 模板,这可能会给想要自助访问的数据科学家带来挑战。要发现和了解可用模板、配置必要的参数并触发其部署,可能需要浏览 AWS 服务 控制台或直接与 IaC 工具进行交互。这可能会造成摩擦,增加更喜欢专注于机器学习任务的数据科学家的认知负担,如果这些模板不通过集中且用户友好的界面进行管理,则可能导致参数化不一致或偏离组织标准。将这些强大的 AIOps 模块与诸如Backstage之类的IDP集成,可为使用这些标准 MLOps 化构建块提供简化的自助服务体验、增强的可发现性以及更强的治理控制,从而帮助应对这些挑战。

作为 IDP 在后台

内部开发者平台 (IDP) 是由平台团队构建的自助服务层,旨在简化和标准化开发人员构建、部署和管理应用程序的方式。它抽象了基础架构的复杂性,让开发人员能够通过统一的界面轻松访问工具、环境和服务。

IDP 的主要目标是通过以下方式增强开发者的体验和生产力:

  • 为服务创建和部署等任务启用自助服务。

  • 通过标准模板促进一致性和合规性。

  • 在整个开发生命周期中集成工具(CI/CD、监控和文档)。

Backstage是一个开源开发者门户,由Spotify创建,现在是云原生计算基金会(CNCF)的一部分。它通过提供集中、可扩展的平台来管理软件组件、工具和文档,帮助组织构建自己的 IDP。借助 Backstage,开发者可以:

  • 通过软件目录发现和管理所有内部服务。

  • 通过脚手架插件使用预定义的模板创建新项目。

  • 从一个位置访问集成工具,例如 CI/CD 管道、Kubernetes 仪表板和监控系统。

  • 通过以下方式保持一致的、基于降价的文档。 TechDocs

常见问题解答

使用此后台模板与通过 SageMaker 控制台手动部署 SageMaker Studio 有什么区别?

与手动 AWS 控制台部署相比,Backstage模板具有多种优势,包括遵循组织最佳实践的标准化配置、使用Seed-Farmer和的自动IaC部署 AWS CDK、内置的安全策略和合规措施,以及通过集成组织的开发人员工作流程。 GitHub该模板还通过版本控制创建可重现的部署,这样可以更轻松地跨不同阶段(开发、暂存、生产)复制环境并保持团队间的一致性。此外,该模板还包括自动清理功能,并通过 Backstage 与贵组织的身份管理系统集成。通过控制台进行手动部署需要深厚的 AWS 专业知识,并且无法提供版本控制或与模板相同的标准化和治理水平。出于这些原因,控制台部署比生产机器学习环境更适合一次性实验。

什么是 Seed-Farmer?这个解决方案为什么要使用它?

Seed-Farmer 是一款 AWS 部署编排工具,它使用管理基础架构模块。 AWS CDK这种模式之所以使用 Seed-Farmer,是因为它提供了专为工作负载设计的标准化、可重复使用的基础设施组件,可以 AWS 服务 自动处理 AI/ML 工作负载之间的复杂依赖关系,并确保在不同环境中实现一致的部署。

我需要安装 AWS CLI 才能使用这些模板吗?

不,您不必 AWS CLI 在计算机上安装。这些模板完全通过云端 GitHub 操作运行。您通过 Backstage 界面提供您的 AWS 凭据(访问密钥、密钥和会话令牌),然后在 Actions 环境中自动进行 GitHub 部署。

部署 SageMaker Studio 环境需要多长时间?

典型的 SageMaker Studio 部署需要 15-25 分钟才能完成。这包括 AWS CDK 引导(2-3 分钟)、Seed-Farmer 工具链设置(3-5 分钟)和资源创建(10-15 分钟)。确切的时间取决于您的网络设置 AWS 区域 以及您的网络设置的复杂性。

我可以在同一个 SageMaker 环境中部署多个环境 AWS 账户吗?

是的,可以。每个部署都会根据您在模板中提供的组件名称创建具有唯一名称的资源。但是,请注意 AWS 服务 配额:每个账户在每个区域可以拥有有限数量的 SageMaker 域名,因此在创建多个环境之前,请检查配额