Skip to content

ModelPackage doesn't support SageMaker Pipeline parameter #3636

@duk-amz

Description

@duk-amz

Describe the bug
A clear and concise description of what the bug is.
Using ModelPackage in a SageMaker Pipeline for inference. I expect to create a pipeline, use a model_version (string) as a parameter, and use ModelStep to dynamically create SageMaker Model and make batch inference. But if find this leads to an error

model_version is ParameterString

AttributeError                            Traceback (most recent call last)
<ipython-input-36-62c24131e39c> in <module>
      7 step_create_model = ModelStep(
      8     name="Create_Model",
----> 9     step_args=model.create(instance_type="ml.m5.large"),
     10     depends_on = [step_lambda]
     11 )
/opt/conda/lib/python3.7/site-packages/sagemaker/workflow/pipeline_context.py in wrapper(*args, **kwargs)
    263             if run_func.__name__ in ["register", "create"]:
    264                 self_instance.sagemaker_session.init_model_step_arguments(self_instance)
--> 265                 run_func(*args, **kwargs)
    266                 context = self_instance.sagemaker_session.context
    267                 self_instance.sagemaker_session.context = None
/opt/conda/lib/python3.7/site-packages/sagemaker/model.py in create(self, instance_type, accelerator_type, serverless_inference_config, tags)
    471             accelerator_type=accelerator_type,
    472             tags=tags,
--> 473             serverless_inference_config=serverless_inference_config,
    474         )
    475 
/opt/conda/lib/python3.7/site-packages/sagemaker/model.py in _create_sagemaker_model(self, *args, **kwargs)
   1604         container_def = {"ModelPackageName": model_package_name}
   1605 
-> 1606         self._ensure_base_name_if_needed(model_package_name.split("/")[-1])
   1607         self._set_model_name_if_needed()
   1608 

AttributeError: 'Properties' object has no attribute 'split'

To reproduce
A clear, step-by-step set of instructions to reproduce the bug.

model_package_arn = "arn:xxxxxxxx:1" # Should be a ParameterString
model = ModelPackage(
    role = role,
    model_package_arn = model_package_arn,
    sagemaker_session = pipeline_session,
)
step_create_model = ModelStep(
    name="Create_Model",
    step_args=model.create(instance_type="ml.m5.large"),
)

Expected behavior
A clear and concise description of what you expected to happen.

The ModelPackage model can be used to create sagemaker model successfully.

Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.

System information
A description of your system. Please provide:

  • SageMaker Python SDK version:
  • Framework name (eg. PyTorch) or algorithm (eg. KMeans):
  • Framework version:
  • Python version:
  • CPU or GPU:
  • Custom Docker image (Y/N):

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions