如何在SageMaker中添加依赖关系到模型?



我正在尝试这样部署一个模型:

model_alpha = PyTorchModel(
    entry_point='inference_alpha.py',
    source_dir='code_alpha',
    dependencies = ['module_0',
                    'module_1'],
    role=role,
    model_data=model_data_alpha,
    framework_version="1.7.1",
    py_version='py3',
    code_location='s3://model',
    name='alpha-model',
)

但是它给了我一个错误,文件夹module_0没有找到。我的目录是这样的:

>>> main/code_alpha
>>>     |------ inference_alpha.py
>>>     |------ module_0
>>>     |------ module_1

我正在使用笔记本来部署模型。

predictor_alpha = model_alpha.deploy(
    initial_instance_count=1,
    instance_type=instance_type,
    serializer=JSONSerializer(),
    deserializer=JSONDeserializer(),
)

我做错了什么?

在PytorchModel()的文档中,您可以看到这个类是基于FrameworkModel()的,直到通用的Model()。

因此,可以使用参数source_dir:

到任何其他服务的目录的路径(绝对或相对)源代码代码依赖除了入口点文件。如果不是指定后,使用training中的模型源目录。

基本概念是sourcedir.tar.gz包含你用source_dir指向的文件夹被加载到code_location中,然后你可以在脚本中正常使用它,因为它在该文件夹中作为entry_point运行。

此时,您的脚本变成:
model_alpha = PyTorchModel(
    entry_point='inference_alpha.py',
    source_dir=entire_local_path, # full path to code_alpha dir like /home/ec2-user/SageMaker/code_alpha
    role=role,
    model_data=model_data_alpha,
    framework_version="1.7.1",
    py_version='py3',
    code_location=upload_location, # where source_dir will be saved as sourcedir.tar.gz
    name='alpha-model'
)

在您的推理脚本中,您只需按如下方式导入表单:

from module_0.your_script import your_class, your_func

这个推理适用于所有类型的sagemaker组件。无论是pytorchmodel还是处理器还是训练过程等等…

最新更新