SageMaker 管道实际上是什么?

Bru*_*gen 5 amazon-web-services amazon-sagemaker mlops

Sagemaker 管道对我来说相当不清楚,我在 ML 领域没有经验,但我正在努力弄清楚管道定义。

我有几个问题:

  • Sagemaker 管道是独立的服务/功能吗?因为我没有看到任何通过控制台创建它们的选项,但我确实看到了 CloudFormation 和 CDK 资源。

  • Sagemaker 管道本质上是代码管道吗?它们如何整合,它们有何不同?

  • 还有一个Python SDK,这与CDK和CloudFormation有何不同?

除了Python SDK用法之外,我似乎找不到任何示例,怎么回事?

这些文档和研讨会似乎只是正确描述了 Python SDK 的用法,如果有人能为我解决这个问题,那将非常有帮助!

Nei*_*gan 4

SageMaker 有两个称为管道的东西:模型构建管道串行推理管道。我相信你指的是前者

模型构建管道定义机器学习工作流程中的步骤,例如预处理、超参数调整、批量转换和设置端点

串行推理管道是两个或多个 SageMaker 模型依次运行

模型构建管道以 JSON 定义,并由 SageMaker 以某种专有的无服务器方式托管/运行

Sagemaker 管道是独立的服务/功能吗?因为我没有看到任何通过控制台创建它们的选项,但我确实看到了 CloudFormation 和 CDK 资源。

您可以使用API创建/修改它们,也可以通过CLIPython SDKCloudFormation调用 API 。这些都在幕后使用 AWS API

您可以在 SageMaker Studio 中启动/停止/查看它们:

Left-side Navigation bar > SageMaker resources > Drop-down menu > Pipelines
Run Code Online (Sandbox Code Playgroud)

Sagemaker 管道本质上是代码管道吗?它们如何整合,它们有何不同?

不太可能。CodePipeline 更多的是用于构建和部署代码,而不是特定于 SageMaker。据我所知,没有直接集成,除此之外您可以使用 CP 启动 SM 管道

还有一个Python SDK,这与CDK和CloudFormation有何不同?

Python SDK 是一个独立的库,可以以开发人员友好的方式与 SageMaker 进行交互。它比 CloudFormation 更具动态性。让我们使用代码构建管道。而 CloudFormation 采用静态 JSON 字符串

Python SageMaker SDK 使用的一个非常简单的示例:

Left-side Navigation bar > SageMaker resources > Drop-down menu > Pipelines
Run Code Online (Sandbox Code Playgroud)

pipeline.definition()生成相当详细的 JSON,如下所示:

processor = SKLearnProcessor(
    framework_version="0.23-1",
    instance_count=1,
    instance_type="ml.m5.large",
    role="role-arn",
)

processing_step = ProcessingStep(
    name="processing",
    processor=processor,
    code="preprocessor.py"
)

pipeline = Pipeline(name="foo", steps=[processing_step])
pipeline.upsert(role_arn = ...)
pipeline.start()
Run Code Online (Sandbox Code Playgroud)

您可以将上述 JSON 与 CloudFormation/CDK 结合使用,但您可以使用 SageMaker SDK构建JSON

您还可以使用 Step Function 状态机、Data Science SDKAirflow定义模型构建工作流程