我正在关注 aws-samples 存储库中的 SageMaker Pipelines 笔记本。在本笔记本的底部,有一个“批量转换”部分,它执行我需要执行的任务,即对来自 SageMaker 管道的数据集运行推理。我的问题是,我试图通过加载模型注册表中的模型来替换训练步骤,并在管道中进行训练。
这是我想要替换的单元格来加载模型,而不是从训练步骤中获取模型:
# First, create a SageMaker model for the transform
model = Model(
image_uri=xgboost_image_uri,
model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
name=f"from-idea-to-prod-xgboost-model",
sagemaker_session=session,
role=sm_role,
)
'''
Insert load model from Model Registry
'''
# Define create model step
step_create_model = ModelStep(
name=f"{pipeline_name}-model",
step_args=model.create(instance_type="ml.m5.large", accelerator_type="ml.eia1.medium"),
)
请告诉我这是否可能,或者我采取了错误的方法。这里的要求是能够通过 lambda 函数触发此推理管道。
我尝试从模型包arn中执行ModelStep甚至CreateModelStep,但没有任何运气。
您的管道中是否有训练步骤,然后您是否注册此经过训练的模型,然后部署用于批量推理?您可以首先使用经过训练的模型工件执行 CreateModel 步骤,然后执行此步骤及其元数据并注册它
model = Model(
image_uri=image_uri,
model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
role=role,
sagemaker_session=pipeline_session
)
create_model_step = ModelStep(
name="CreateXGBoostModel",
step_args=model.create(),
)
# registering model object
from sagemaker.workflow.step_collections import RegisterModel
register_step = RegisterModel(
name="AbaloneRegisterModel",
model=model,
content_types=["text/csv"],
response_types=["text/csv"],
inference_instances=["ml.t2.medium", "ml.m5.xlarge"],
transform_instances=["ml.m5.xlarge"],
model_package_group_name='batchgroup',
)
然后您可以创建模型元数据并运行批量推理:
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.transformer import Transformer
from sagemaker.inputs import TransformInput
from sagemaker.workflow.steps import TransformStep
transformer = Transformer(model_name=create_model_step.properties.ModelName,
instance_count=1, instance_type=batch_transform_param,
assemble_with="Line", accept="text/csv",
sagemaker_session=PipelineSession())
transform_step = TransformStep(
name="AbaloneTransform",
step_args=transformer.transform(data=test_data_param,
content_type = "text/csv"),
)
有关整个端到端示例,请参考以下 Github:https://github.com/RamVegiraju/sagemaker-pipelines-examples/blob/master/train-batch-transform/pipelines-train-transform.ipynb