在sagemaker中部署预训练的Tensorflow模型到一个端点(一个端点的多模型)时出错? &g



我遵循aws https://github.com/aws-samples/sagemaker-multi-model-endpoint-tensorflow-computer-vision/blob/main/multi-model-endpoint-tensorflow-cv.ipynb的这个例子使用两个预训练模型(在sagemaker之外训练)应用相同的工作流。

但是当我执行以下操作时,日志显示找不到模型:

import boto3
import datetime
from datetime import datetime
import time
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow.serving import TensorFlowModel
from sagemaker.multidatamodel import MultiDataModel
model_data_prefix = f's3://{BUCKET}/{PREFIX}/mme/'
output = f's3://{BUCKET}/{PREFIX}/mme/test.tar.gz'
modele = TensorFlowModel(model_data=output, 
role=role, 
image_uri=IMAGE_URI)
mme = MultiDataModel(name=f'mme-tensorflow-{current_time}',
model_data_prefix=model_data_prefix,
model=modele,
sagemaker_session=sagemaker_session)
predictor = mme.deploy(initial_instance_count=1,
instance_type='ml.m5.2xlarge',
endpoint_name=f'mme-tensorflow-{current_time}')

当我给出一个图像作为输入来预测时,我有这样的消息:

ModelError: An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (500) from model with message "<html>
<head>
<title>Internal Server Error</title>
</head>
<body>
<h1><p>Internal Server Error</p></h1>

</body>
</html>
".

日志给:

Could not find base path /opt/ml/models/.../model for servable ...

我错过了什么?

在示例笔记本中,模型是在SageMaker中训练的。因此,它是用某些环境变量创建的,例如"SAGEMAKER_PROGRAM"(我认为,需要检查文档),并将值设置为入口点脚本。

但是,当您使用在SageMaker之外训练的模型创建模型时,您需要添加这些环境变量。

如果没有入口点脚本,SageMaker就不知道该如何处理请求。

SageMaker支持在使用NVIDIA Triton推理服务器的gpu上部署多个深度学习模型。您可以使用triton模型配置和模型存储库将在SageMaker外部训练的模型和SageMaker MME一起部署。参考文档、示例和博客来开始

相关内容

  • 没有找到相关文章

最新更新