如何在等待响应时增加 AWS Sagemaker 调用超时
How to increase AWS Sagemaker invocation time out while waiting for a response
我向 aws sagemaker 部署了一个大型 3D 模型。推理需要 2 分钟或更长时间。从 Python:
调用预测器时出现以下错误
An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from model with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."'
在 Cloud Watch 中,当容器正在处理时我也看到一些 PING 超时:
2020-10-07T16:02:39.718+02:00 2020/10/07 14:02:39 https://forums.aws.amazon.com/ 106#106: *251 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.32.0.2, server: , request: "GET /ping HTTP/1.1", upstream: "http://unix:/tmp/gunicorn.sock/ping", host: "model.aws.local:8080"
如何增加调用超时?
或者有没有办法对 sagemaker 端点进行异步调用?
目前无法增加超时时间——这是 GitHub 中的一个未决问题。浏览 SO 上的问题和类似问题,您似乎可以将批量转换与推理结合使用。
参考资料
Sagemaker Python SDK 超时问题:https://github.com/aws/sagemaker-python-sdk/issues/1119
这个超时实际上是在服务器端指定的——端点是特定的。您可以尝试 bring your own container
也称为 BYOC
的方式,这样您就可以完全控制端点端的所有内容,包括超时。
您还可以参考此回购协议的端点部分,该部分来自我的一位同事 - https://github.com/jackie930/yolov4-SageMaker
您应该更改的超时存在于 serve.py
model_server_timeout = os.environ.get('MODEL_SERVER_TIMEOUT', 60)
我向 aws sagemaker 部署了一个大型 3D 模型。推理需要 2 分钟或更长时间。从 Python:
调用预测器时出现以下错误An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from model with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."'
在 Cloud Watch 中,当容器正在处理时我也看到一些 PING 超时:
2020-10-07T16:02:39.718+02:00 2020/10/07 14:02:39 https://forums.aws.amazon.com/ 106#106: *251 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.32.0.2, server: , request: "GET /ping HTTP/1.1", upstream: "http://unix:/tmp/gunicorn.sock/ping", host: "model.aws.local:8080"
如何增加调用超时?
或者有没有办法对 sagemaker 端点进行异步调用?
目前无法增加超时时间——这是 GitHub 中的一个未决问题。浏览 SO 上的问题和类似问题,您似乎可以将批量转换与推理结合使用。
参考资料
Sagemaker Python SDK 超时问题:https://github.com/aws/sagemaker-python-sdk/issues/1119
这个超时实际上是在服务器端指定的——端点是特定的。您可以尝试 bring your own container
也称为 BYOC
的方式,这样您就可以完全控制端点端的所有内容,包括超时。
您还可以参考此回购协议的端点部分,该部分来自我的一位同事 - https://github.com/jackie930/yolov4-SageMaker
您应该更改的超时存在于 serve.py
model_server_timeout = os.environ.get('MODEL_SERVER_TIMEOUT', 60)