Sagemaker 不认可训练作业来启动推理

问题描述 投票:0回答:1

我在 sagemaker 中成功启动了培训工作。但是,当我尝试使用该模型进行推理时,sagemaker 无法找到该模型。

import sagemaker
from sagemaker.transformer import Transformer
from sagemaker.model import Model

# Set session parameters
sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

# Input paths
model_s3_path = 's3://sagemaker-us-west-1-6584743930/pytorch-training-2024-05-16-15-18-34-042/source/sourcedir.tar.gz'
input_s3_path = 's3://some-bucket/inference/beauty_annotations_simple_transformer.csv' 
output_s3_path = 's3://some-bucket/inference/ouput/'

# Define instance type
instance_type = 'ml.m5.large'

# Model
model = Model(
    model_data=model_s3_path,
    role=role,
    framework_version='2.0',
    entry_point='inference.py',
    source_dir='./source_dir'
)

# Transformer
transformer = Transformer(
    model_name=model.name,
    instance_count=1,
    instance_type=instance_type,
    output_path=output_s3_path,
    assemble_with='Line',  # method of output assembled
    accept='application/jsonlines',  # output format
)

# Launch batch transform job
transformer.transform(
    data=input_s3_path,
    content_type='text/csv',  # input format
    split_type='Line',  # output split method
)

# Job wait
transformer.wait()

错误

ValueError:无法获取模型信息 pytorch-training-2024-05-16-15-18-34-042。请确保型号 存在。本地实例类型需要本地创建的模型。

amazon-sagemaker ml inference
1个回答
0
投票

要使用自定义模型进行批量转换,您需要首先调用 Model.create() 将模型注册到 SageMaker。

在 CreateModel 请求中,容器定义包括 ModelDataUrl 参数,标识 Amazon S3 中的位置 模型工件的存储位置。当您使用 SageMaker 运行时 推断,它使用此信息来确定从哪里复制 模型工件。它将工件复制到 /opt/ml/model Docker 容器中的目录供推理代码使用。

您可以在SageMaker 如何加载模型工件中找到更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.