繁体   English   中英

如何通过自定义推理代码在 sagemaker 管道中运行批量转换作业?

[英]how to run a batch transform job in sagemaker pipeline via custom inference code?

基于此处提供的 aws 文档/示例, https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.html# Define-a-Transform-Step-to-Perform-Batch-Transformation ,创建一个 model 并且可以在经过训练的 model 上运行批量转换推理。它适用于此示例,但如果我们需要自定义推理脚本,我们如何在我们运行批量转换之前,在 model 或 model package 中包含自定义推理脚本?

from sagemaker.transformer import Transformer
from sagemaker.inputs import TransformInput
from sagemaker.workflow.steps import TransformStep

transformer = Transformer(
    model_name=step_create_model.properties.ModelName,
    instance_type="ml.m5.xlarge",
    instance_count=1,
    output_path=f"s3://{default_bucket}/AbaloneTransform",
)

step_transform = TransformStep(
    name="AbaloneTransform", transformer=transformer, inputs=TransformInput(data=batch_data)
)

您需要一个“ model 重新打包步骤”。

来自Amazon SageMaker 工作流常见问题

当管道需要在压缩的 model 文件 (model.tar.gz) 中包含自定义脚本以上传到 Amazon S3 并用于将 model 部署到 SageMaker 端点时,就会发生 Model 重新打包。 当 SageMaker 管道训练 model 并将其注册到 model 注册表时,如果训练作业中训练的 model output 需要包含自定义推理脚本,它会引入一个重新打包步骤。 重新打包步骤解压缩 model,添加新脚本,然后重新压缩 model。运行管道将重新打包步骤添加为训练作业。

基本上,您可以通过将训练 output 调用为model_data并将推理脚本作为entry_point

然后按顺序,在训练 model 之后,通过更改 entry_point 重新定义 model,在后者上你可以使用转换器。

这是取自经过测试的代码的示例流程:

my_model = Model(
    image_uri=your_img_uri,
    model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
    role=role,
    entry_point='inference_script.py',
    name="your_inference_step_name"
)

step_create_model = ModelStep(
    name="YourInfName",
    step_args=my_model.create(instance_type="ml.m5.xlarge")
)

transformer = Transformer(
    model_name=step_create_model.properties.ModelName,
    instance_count=your_instance_count,
    instance_type=your_instance_type,
    output_path=your_path
)

当然,除了通用的 Model,您可以直接使用最适合您要求的那个(例如 PyTorchModel 等...)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM