我正在尝试设置一个多模型端点(或者更准确地重新设置它,因为我很确定它不久前在早期版本的 sagemaker 上运行)来进行语言翻译。但我经常遇到同样的问题。这就是我正在尝试运行的内容(从 sagemaker 上的笔记本):
import sagemaker
from sagemaker.pytorch.model import PyTorchModel
from sagemaker.predictor import JSONSerializer, JSONDeserializer
role = 'role_name...'
pytorch_model = PyTorchModel(model_data='s3://foreign-language-models/opus-mt-ROMANCE-en.tar.gz',
role=role,
framework_version="1.3.1",
py_version="py3",
source_dir="code",
entry_point="deploy_multi_model.py")
x = pytorch_model.predictor_cls(endpoint_name='language-translation')
x.serializer = JSONSerializer()
x.deserializer = JSONDeserializer()
x.predict({'model_name': 'opus-mt-ROMANCE-en', 'text': ["Hola que tal?"]})
我遇到了错误:
ModelError: An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (500) from model with message "{
"code": 500,
"type": "InternalServerException",
"message": "Worker died."
}
当我调查日志时,错误链接到唯一值得注意的一个:
epollEventLoopGroup-4-1 com.amazonaws.ml.mms.wlm.WorkerThread - 9000 Worker disconnected. WORKER_MODEL_LOADED
但我不明白为什么会发生这种情况。 任何帮助将不胜感激,因为这目前让我发疯!如果您需要我提供更多信息来提供帮助,请随时询问。
这个问题很老了,可能无法回答,但是,面对这些问题时的处理方法非常简单:
这正是由于一般内部错误而导致的服务不可用消息。您应该从CloudWatch打开完整的端点日志并查看它在哪里发生故障。原因可以是任何类型。
要调试问题,请通过单击训练过程屏幕中的“查看日志”或转到以下路径的 CloudWatch 直接访问日志:
CloudWatch / Log groups /aws/sagemaker/TrainingJobs / <your_job_name>
.
如果问题立即出现,可能与模型数据加载不正确或推理数据传递不正确有关。
正如 @giuseppe-la-gualano 所建议的,这种情况下的 cloudwatch 错误可能与 SageMaker 端点在处理超出标准限制的负载/响应方面的限制有关。
对于端点,将每次调用的输入数据的最大大小限制为 6 MB。该值无法调整。
对于批量转换,每次调用的输入数据的最大大小为 100 MB。该值无法调整
如果出现此类错误,您将发现 SageMaker 端点的 CloudWatch 日志包含如下错误:
2023-11-03T05:13:06,763 [ERROR] epollEventLoopGroup-4-1 com.amazonaws.ml.mms.wlm.WorkerThread - Unknown exception
io.netty.handler.codec.CorruptedFrameException: Message size exceed limit: 6654978
在我的例子中,推理结果超出了 6MB 限制。
前进的方向可能是使用异步推理端点。
{
"ResponseMetadata": {
"RequestId": "GUID",
"HTTPStatusCode": 202,
"HTTPHeaders": {
"x-amzn-requestid": "GUID",
"x-amzn-sagemaker-outputlocation": "s3://location/result.out",
"x-amzn-sagemaker-failurelocation": "s3://location/file-error.out",
"date": "Fri, 03 Nov 2023 05:45:51 GMT",
"content-type": "application/json",
"content-length": "54",
"connection": "keep-alive"
},
"RetryAttempts": 0
},
"OutputLocation": "s3://location/result.out",
"FailureLocation": "s3://location/file-error.out",
"InferenceId": "GUID"
}
您可以查找是否存在输出或错误并采取相应措施。