使用HuggingFace镜像创建SageMaker异步端点遇镜像NotFound错误求助
问题解决:SageMaker调用HuggingFace镜像失败的排查与解决
核心问题定位
你使用了HuggingFace训练镜像(huggingface-pytorch-training)来创建推理端点,但这类镜像仅用于模型训练场景,不支持推理任务。SageMaker推理必须使用专门的HuggingFace推理镜像(命名包含inference关键词),这是导致镜像找不到的主要原因。
正确的HuggingFace推理镜像获取
HuggingFace在SageMaker上的推理镜像分为PyTorch和TensorFlow两大系列,镜像命名格式如下(以us-east-1区域为例):
- PyTorch推理镜像:
763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:<version-tag> - TensorFlow推理镜像:
763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-tensorflow-inference:<version-tag>
你之前使用的训练镜像标签1.9.1-transformers4.12-gpu-py38-cu111-ubuntu20.04对应存在推理版本,替换为推理镜像即可:
763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.9.1-transformers4.12-gpu-py38-cu111-ubuntu20.04
问题排查步骤
- 确认镜像类型:严格区分训练(training)和推理(inference)镜像,推理场景必须使用带
inference后缀的镜像 - 检查区域一致性:确保镜像的ECR区域与你的SageMaker资源所在区域完全匹配,比如us-west-2区域需将镜像地址中的
us-east-1替换为us-west-2 - 验证镜像存在性:使用AWS CLI命令确认镜像是否存在(替换对应区域和标签):
aws ecr describe-images --repository-name huggingface-pytorch-inference --image-ids imageTag=1.9.1-transformers4.12-gpu-py38-cu111-ubuntu20.04 --region us-east-1 - 权限验证:确保执行
CreateModel操作的IAM角色拥有AmazonEC2ContainerRegistryReadOnly权限,允许拉取ECR镜像
示例代码修正
调用CreateModel时使用正确的推理镜像:
import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-east-1') response = sagemaker_client.create_model( ModelName="huggingface-async-inference-model", ExecutionRoleArn="arn:aws:iam::你的账号ID:role/你的SageMaker角色", PrimaryContainer={ "Image": "763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.9.1-transformers4.12-gpu-py38-cu111-ubuntu20.04", "ModelDataUrl": "s3://你的模型存储路径/model.tar.gz" # 替换为你的模型S3路径 } )
内容的提问来源于stack exchange,提问作者Luis Leal
相关产品推荐
相关产品推荐

