SageMaker有两个名为Pipelines的东西:
模型构建管道和
串行推理管道。我相信你指的是前者。
模型构建管道定义了机器学习工作流程中的步骤,例如预处理、超参数调整、批处理转换和设置端点。
串行推理管道是两个或更多SageMaker模型依次运行。
模型构建管道以JSON形式定义,并由SageMaker以某种专有的无服务器方式进行托管/运行。
“Sagemaker Pipelines”是一个独立的服务/功能吗?因为我在控制台上找不到创建它们的选项,尽管我看到了CloudFormation和CDK资源。
您可以使用
API创建/修改它们,也可以通过
CLI、
Python SDK或
CloudFormation进行调用。所有这些工具都在底层使用AWS API。
您可以在SageMaker Studio中启动/停止/查看它们:
Left-side Navigation bar > SageMaker resources > Drop-down menu > Pipelines
Amazon SageMaker管道本质上是CodePipeline吗?它们如何集成,又有什么不同之处?
不太可能。CodePipeline更多地用于构建和部署代码,而不是专门针对SageMaker。据我所知,除了您可以使用CP启动SM管道外,没有直接的集成。
还有一个Python SDK,它与CDK和CloudFormation有什么区别?
Python SDK是一个独立的库,以开发人员友好的方式与SageMaker进行交互。它比CloudFormation更具动态性。让您使用代码构建管道。而CloudFormation采用静态JSON字符串。
Python SageMaker SDK使用的非常简单的示例:
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()
pipeline.definition()
会生成类似以下这样冗长的JSON:
{
"Version": "2020-12-01",
"Metadata": {},
"Parameters": [],
"PipelineExperimentConfig": {
"ExperimentName": {
"Get": "Execution.PipelineName"
},
"TrialName": {
"Get": "Execution.PipelineExecutionId"
}
},
"Steps": [
{
"Name": "processing",
"Type": "Processing",
"Arguments": {
"ProcessingResources": {
"ClusterConfig": {
"InstanceType": "ml.m5.large",
"InstanceCount": 1,
"VolumeSizeInGB": 30
}
},
"AppSpecification": {
"ImageUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3",
"ContainerEntrypoint": [
"python3",
"/opt/ml/processing/input/code/preprocessor.py"
]
},
"RoleArn": "arn:aws:iam::123456789012:role/foo",
"ProcessingInputs": [
{
"InputName": "code",
"AppManaged": false,
"S3Input": {
"S3Uri": "s3://bucket/preprocessor.py",
"LocalPath": "/opt/ml/processing/input/code",
"S3DataType": "S3Prefix",
"S3InputMode": "File",
"S3DataDistributionType": "FullyReplicated",
"S3CompressionType": "None"
}
}
]
}
}
]
}
你可以使用上述JSON与CloudFormation / CDK一起使用,但是使用SageMaker SDK来构建JSON。
你还可以使用Step Function State Machines定义模型构建工作流程,使用Data Science SDK或Airflow。其中Data Science SDK和Airflow的链接分别为
Data Science SDK和
Airflow。