使用AWS SageMaker无服务器推理部署自定义模型:端点创建失败
问题分析与解决方案
遇到CloudWatch报tarfile.ReadError: empty file且端点一直处于创建状态,核心原因是SageMaker无法读取到有效的模型压缩包,可按以下步骤排查:
验证模型压缩包完整性
先把S3里的model.tar.gzip下载到本地,检查文件是否正常:# 替换为你的桶路径 aws s3 cp s3://your-bucket/model-path/model.tar.gzip ./ # 查看文件大小,若几KB甚至更小大概率是空包 ls -lh model.tar.gzip # 尝试解压看能否列出内容 tar -tzf model.tar.gzip要是解压失败或者文件为空,说明上传过程中包损坏了,重新生成完整的压缩包再上传到S3。
核对S3路径与权限
检查创建SageMaker模型时指定的S3路径是否完全正确,没有拼写错误。同时确认SageMaker的执行角色有该S3对象的s3:GetObject权限,权限策略可参考:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket/model-path/model.tar.gzip" } ] }检查压缩包打包方式
确保打包时是从正确的目录层级执行命令,比如你的code目录和模型文件都在当前文件夹下,应该用:tar -czf model.tar.gzip code/ your-model-file.pth不要进入子目录打包,否则可能导致压缩包顶层没有内容,被识别为空文件。
确认Endpoint配置关联的模型
检查创建EndpointConfig时关联的Model资源,在SageMaker控制台查看该模型的"Model data"路径是否指向正确的model.tar.gzip文件,避免配置时选错了模型。
内容的提问来源于stack exchange,提问作者Nidhi Pandey
相关产品推荐
相关产品推荐

