本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 SageMaker 项目?
SageMaker 项目可帮助组织为数据科学家建立和标准化开发人员环境,为工程师建立和标准化CI/CD系统。MLOpsProjects 还可帮助组织设置依赖关系管理、代码存储库管理、构建可重复性和构件共享。
您可以使用自定义模板或 SageMaker提供的模板在 S AWS ervice Catalog 中置备 SageMaker 项目。有关 AWS 服务目录的信息,请参阅什么是 AWS 服务目录。通过 Projects, SageMaker MLOps工程师和组织管理员可以定义自己的模板或使用 SageMaker提供的模板。 SageMaker提供的模板通过源代码版本控制、自动机器学习管道和一组代码引导机器学习工作流程,以快速开始迭代机器学习用例。
什么时候应该使用 SageMaker项目?
虽然笔记本对模型构建和实验很有帮助,但共享代码的数据科学家和 ML 工程师团队需要一种更可扩展的方式来保持代码一致性和严格的版本控制。
每个组织都有自己的一套标准和实践,为其 AWS 环境提供安全和治理。 SageMaker 为想要快速开始使用机器学习工作流程和 CI/CD 的组织提供了一组第一方模板。这些模板包括使用 CI/CD AWS原生服务的项目,例如 AWS CodeBuild、 AWS CodePipeline和。 AWS CodeCommit这些模板还提供了创建使用第三方工具(例如 Jenkins 和 GitHub)的项目的选项。有关 SageMaker 提供的项目模板的列表,请参阅使用 SageMaker提供的项目模板。
Organizations 通常需要对其配置和管理的MLOps资源进行严格控制。此类责任承担某些任务,包括配置IAM角色和策略、强制执行资源标签、强制加密以及解除多个账户间的资源关联。 SageMaker 项目可以通过自定义模板产品来支持所有这些任务,其中组织使用 AWS CloudFormation 模板来定义机器学习工作流程所需的资源。数据科学家可以选择一个模板来引导和预配置他们的机器学习工作流。这些自定义模板是作为 Service Catalog 产品创建的,您可以在 Studio 或 Studio Classic 用户界面的 “组织模板” 下对其进行配置。Service Catalog 是一项服务,可帮助组织创建和管理获准在上 AWS使用的产品目录。有关创建自定义模板的更多信息,请参阅生成自定义 SageMaker 项目模板-最佳实践
SageMaker 项目可以帮助您管理 Git 存储库,以便您可以更有效地跨团队协作、确保代码一致性并支持 CI/CD。 SageMaker 项目可以帮助您完成以下任务:
-
将机器学习生命周期的所有实体整理到一个项目下。
-
建立一键式方法,为采用最佳实践的模型训练和部署设置标准机器学习基础设施。
-
为机器学习基础设施创建和共享模板,以处理多个使用案例。
-
利用 SageMaker提供的预建模板快速开始专注于模型构建,或者使用组织特定的资源和指南创建自定义模板。
-
通过扩展项目模板,与您选择的工具集成。有关示例,请参阅创建要与之集成的 SageMaker 项目 GitLab 和 GitLab管道
。 -
将机器学习生命周期的所有实体整理到一个项目下。
SageMaker 项目中有什么?
客户可以灵活地使用最适合其使用案例的资源来设置项目。以下示例展示了机器学习工作流程的MLOps设置,包括模型训练和部署。
![管道的 ML 工作流程图,包括模型训练和部署步骤。](images/projects/projects-ml-workflow.png)
带有 SageMaker提供的模板的典型项目可能包括以下内容:
-
一个或多个存储库,其中包含用于构建和部署机器学习解决方案的示例代码。这些是可行的示例,您可以根据需要对其进行修改。您拥有此代码,并可利用版本控制的存储库来完成任务。
-
定义数据准备、训练、模型评估和模型部署步骤的 SageMaker 管道,如下图所示。
-
一个 CodePipeline 或 Jenkins 管道,每次签入新版本的代码时都会运行你的 SageMaker 管道。有关的信息 CodePipeline,请参阅什么是 AWS CodePipeline。有关 Jenkins 的信息,请参阅 Jenkins 用户文档
。 -
包含模型版本的模型组。每次批准 SageMaker 管道运行产生的模型版本时,都可以将其部署到 SageMaker 终端节点。
每个 SageMaker 项目都有唯一的名称和 ID,它们作为标签应用于项目中创建的所有 SageMaker 和 AWS 资源。通过名称和 ID,您可以查看与您的项目关联的所有实体。其中包括:
-
管线
-
注册的模型
-
部署的模型(端点)
-
数据集
-
Service Catalog 产品
-
CodePipeline 和 Jenkins 的管道
-
CodeCommit 和第三方 Git 存储库
我需要创建项目才能使用 SageMaker管道吗?
不是。 SageMaker 管道是独立的实体,就像训练作业、处理作业和其他 SageMaker 作业一样。SDK无需使用 SageMaker 项目,即可使用 SageMaker Python 直接在笔记本中创建、更新和运行管道。
项目提供了一个附加层,可帮助您整理代码并采用生产质量系统所需的操作最佳实践。