【问题标题】:Sagemaker: read-only file system: /opt/ml/models/../config.json when invoking endpointSagemaker:只读文件系统:调用端点时的/opt/ml/models/../config.json
【发布时间】:2023-01-13 02:32:51
【问题描述】:

尝试使用 sagemaker 创建多模型。 执行以下操作:

boto_seasson = boto3.session.Session(region_name='us-east-1')
sess = sagemaker.Session(boto_session=boto_seasson)

iam = boto3.client('iam')
role = iam.get_role(RoleName='sagemaker-role')['Role']['Arn']

huggingface_model = HuggingFaceModel(model_data='s3://bucket/path/model.tar.gz',
                                     transformers_version="4.12.3",
                                     pytorch_version="1.9.1",
                                     py_version='py38',
                                     role=role,
                                     sagemaker_session=sess)
mme = MultiDataModel(name='model-name',
                     model_data_prefix='s3://bucket/path/',
                     model=huggingface_model,
                     sagemaker_session=sess)
predictor = mme.deploy(initial_instance_count=1, instance_type="ml.t2.medium")

如果我尝试预测:

predictor.predict({"inputs": "test"}, target_model="model.tar.gz")

我收到以下错误:

{ModelError}An error occurred (ModelError) when calling the InvokeEndpoint operation: Received client error (400) from primary with message "{
  "code": 400,
  "type": "InternalServerException",
  "message": "[Errno 30] Read-only file system: \u0027/opt/ml/models/d8379026esds430426d32321a85878f6b/model/config.json\u0027"
}

如果我通过 huggingfacemodel 部署单个模型:

huggingface_model = HuggingFaceModel(model_data='s3://bucket/path/model.tar.gz',
                                     transformers_version="4.12.3",
                                     pytorch_version="1.9.1",
                                     py_version='py38',
                                     role=role,
                                     sagemaker_session=sess)
predictor = huggingface_model.deploy(initial_instance_count=1, instance_type="ml.t2.medium")

然后predict 正常工作没有错误。

所以我想知道我在MultiDataModel部署上获得“只读”的原因可能是什么?

提前致谢。

【问题讨论】:

    标签: python amazon-web-services boto3 amazon-sagemaker


    【解决方案1】:

    您好 Mpizos,您有 CloudWatch 的任何日志吗?对于 MultiDataModel,我还注意到一件事,您指定了一个特定的 model.tar.gz,如以下代码所示。

    huggingface_model = HuggingFaceModel(model_data='s3://bucket/path/model.tar.gz',
                                         transformers_version="4.12.3",
                                         pytorch_version="1.9.1",
                                         py_version='py38',
                                         role=role,
                                         sagemaker_session=sess)
    

    对于 MME,模型数据需要是一个 bucket/prefix/ 或者只是一个 bucket/ 这应该包含不同模型的多个 model.tar.gz。也许调整它以获得所有模型的正确路径,如果它解决了您的问题,请告诉我。另一种选择是利用 Boto3 进行 MME 部署,这是较低级别的并且在任何问题上都提供了更多的粒度,请观察以下示例:https://github.com/RamVegiraju/SageMaker-Deployment/tree/master/RealTime/Multi-Model-Endpoint/Pre-Trained-Deployment

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 2019-07-04
      • 2012-06-03
      相关资源
      最近更新 更多