我在 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。请确保型号 存在。本地实例类型需要本地创建的模型。
要使用自定义模型进行批量转换,您需要首先调用 Model.create() 将模型注册到 SageMaker。
在 CreateModel 请求中,容器定义包括 ModelDataUrl 参数,标识 Amazon S3 中的位置 模型工件的存储位置。当您使用 SageMaker 运行时 推断,它使用此信息来确定从哪里复制 模型工件。它将工件复制到 /opt/ml/model Docker 容器中的目录供推理代码使用。
您可以在SageMaker 如何加载模型工件中找到更多详细信息。