如何通过Lambda函数创建模型包组并添加现有模型包至该组
解决方案:将已有模型包加入SageMaker模型包组
AWS SageMaker目前没有直接API支持将已创建的模型包移动或添加到模型包组,因为模型包的所属组是创建时指定的固定属性,无法通过update_model_package接口修改(该接口确实不支持传入ModelPackageGroupName参数)。
可行的解决方法是基于现有模型包的配置,在目标模型包组下创建一个新的模型包版本,具体步骤如下:
- 第一步:获取现有模型包的完整配置
调用describe_model_package接口,拿到原模型包的推理规格、审批状态等关键配置信息。 - 第二步:在目标组下创建新模型包
使用create_model_package接口,指定目标ModelPackageGroupName,同时复用第一步获取的原模型配置(比如容器镜像、S3模型路径、支持的实例类型等),这样就能生成一个关联到目标组的新模型包版本。
示例boto3代码:
import boto3 # 初始化SageMaker客户端 sagemaker = boto3.client('sagemaker') # 替换为你的现有模型包名称/ARN existing_mp_name = "your-existing-model-package" # 替换为目标模型包组名称 target_group_name = "your-target-model-package-group" # 获取现有模型包的配置 existing_mp_details = sagemaker.describe_model_package(ModelPackageName=existing_mp_name) # 创建关联到目标组的新模型包 new_mp_response = sagemaker.create_model_package( ModelPackageGroupName=target_group_name, ModelPackageDescription=f"复制自现有模型包: {existing_mp_name}", InferenceSpecification={ "Containers": existing_mp_details["InferenceSpecification"]["Containers"], "SupportedTransformInstanceTypes": existing_mp_details["InferenceSpecification"]["SupportedTransformInstanceTypes"], "SupportedRealtimeInferenceInstanceTypes": existing_mp_details["InferenceSpecification"]["SupportedRealtimeInferenceInstanceTypes"] }, ModelApprovalStatus=existing_mp_details["ModelApprovalStatus"] ) print(f"已成功在目标组创建新模型包,ARN: {new_mp_response['ModelPackageArn']}")
- 可选操作:如果原模型包不再需要,可以调用
delete_model_package接口将其删除,避免资源冗余。
内容的提问来源于stack exchange,提问作者Govind Sajeev
相关产品推荐
相关产品推荐

