You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SageMaker部署模型重复上传报错:权限不足问题咨询

问题

使用SageMaker部署模型时遇到权限问题:模型数据已存储在S3并传入PyTorchModel,但部署时仍尝试重新上传至S3根目录路径,因无该路径权限失败。

错误信息

S3UploadFailedError: Failed to upload
/tmp/tmpoy3pcol_/temp-model.tar.gz to
xyz_bucket/text_trove/model.tar.gz: An error occurred (AccessDenied)
when calling the CreateMultipartUpload operation: Access Denied

代码示例

sess = sagemaker.Session(
    default_bucket = "xyz_bucket"
)
bucket = sess.default_bucket()

pretrained_model_data = sess.upload_data(
    path="model-tiny.tar.gz", bucket=bucket, key_prefix="abc/pqr/test/summarizer"
)

model=PyTorchModel(py_version='py3',
    name="text_trove",
    image_uri="texttrove/tt_sagemaker_py3.8_cuda11.0_torch_2.0:latest",
    entry_point="inference.py",
    source_dir=".",
    role=role,
    model_data=pretrained_model_data, sagemaker_session= sess 
)

predictor = model.deploy(
    initial_instance_count=1,
    instance_type=instance_type,
    serializer=JSONSerializer(),
    deserializer=JSONDeserializer(),
    sagemaker_session=sess,  
    tags=[{"Key":"app_group","Value":"xyzzy_tag"}]
)

疑问

  1. 为何模型已在S3中,部署时仍会尝试重新上传?
  2. 如何修改model.deploy()的S3前缀,使其上传至可访问的嵌套路径而非根目录?

解答

问题1:已存在的模型仍被重新上传的原因

你在PyTorchModel中指定了source_dir=".",SageMaker会自动将当前目录下的推理代码(inference.py)及相关依赖打包成新的tar.gz文件,上传到S3的默认路径下。这个操作和你传入的model_data(预训练模型权重)是独立的——model_data指向的是模型权重,但SageMaker需要单独上传推理代码包,这就是你看到的重新上传行为。

问题2:修改上传路径至可访问的嵌套路径

有两种简洁的解决方式:

方式1:在PyTorchModel中指定model_data_prefix参数

直接在初始化PyTorchModel时添加该参数,指定你有权限的嵌套路径,示例如下:

model=PyTorchModel(py_version='py3',
    name="text_trove",
    image_uri="texttrove/tt_sagemaker_py3.8_cuda11.0_torch_2.0:latest",
    entry_point="inference.py",
    source_dir=".",
    role=role,
    model_data=pretrained_model_data, 
    sagemaker_session= sess,
    model_data_prefix="abc/pqr/test/summarizer/code"  # 替换为你有权限的嵌套路径
)

该参数会控制SageMaker上传代码包的S3前缀,避免使用根目录下的默认路径。

方式2:手动打包代码并上传到指定路径

如果不需要SageMaker自动打包代码,可以手动将source_dir目录下的文件打包成tar.gz,上传到有权限的S3路径,再将该路径传入PyTorchModel的model_data(需确保镜像能正确加载代码和模型权重)。不过这种方式需要额外处理代码与模型的关联逻辑,推荐优先使用第一种方式。


内容的提问来源于stack exchange,提问作者Rahul Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:17:16