簡體   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