我想對在調用或建立 Amazon SageMaker AI 非同步端點時出現的問題進行疑難排解。
簡短說明
若要偵測調用非同步端點時發生的錯誤,請查看端點的 Amazon CloudWatch Logs。查看日誌群組名稱 /aws/sagemaker/Endpoints/example-endpoint-name 和日誌串流名稱 example-production-variant-name/example-instance-id/data-log 下的 CloudWatch 日誌。如需詳細資訊,請參閱使用 CloudWatch 監控的常用端點指標區段和非同步推斷端點指標區段。
解決方法
根據下列錯誤,對調用或建立 SageMaker AI 非同步端點節點時出現的問題進行疑難排解:
「ModelError: 調用 InvokeEndpoint 作業時發生錯誤 (ModelError): 收到來自主伺服器的用戶端錯誤 (413),無法載入整個回應主體」
如果在有效負載大小小於 1 GB 時發生此錯誤,請檢查非同步端點的 CloudWatch Logs。另外,在本機使用不同大小的影像測試模型,並確認有效負載大小小於 1 GB 時是否發生錯誤。
若要在本機偵錯模型,請執行更多日誌記錄 (列印陳述式),然後檢查導致錯誤的程式碼部分。如果模型在本機執行時沒有錯誤,則將模型託管在 SageMaker AI 上。如需詳細資訊,請參閱 GitHub 網站上的 amazon-sagemaker-local-mode。
範例程式碼:
import logging
import syslogger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.info("Loading file.")print("Loading file. --> from print statement")
工作者逾時
當模型容器內沒有足夠的工作者來處理 ping 和調用請求時,就會發生此錯誤。若要解決此錯誤,請增加工作者數量和 model_server_timeout 值。
在清除佇列之前,ApproximateAgeOfOldestRequest 常常會增加
當佇列請求不能有效清除時,會發生此問題。SageMaker AI 非同步端點使用先進先出 (FIFO) 方法。但是,模型推斷時間、資源爭用或網路延遲可能會干擾 FIFO 方法。
如果請求逾時,請增加 InvocationTimeoutSeconds 參數值。此參數指定 SageMaker AI 在傳回錯誤之前等待推斷完成的時間。可以設定的最大值是 3600 秒 (1 小時)。
此外,最佳做法是新增監控 ApproximateBacklogSizePerInstance 的自動擴展政策。這使得您的端點可以根據待辦事項大小進行向上擴展,並且可以更快地處理請求。
您的待辦事項大小很大,且執行個體數量沒有增加
若要對此問題進行疑難排解,請使用 describe-scalable-target、describe-scaling-policies 和 describe-scaling-activities AWS CLI 命令。另外,請檢查端點是否處於 InService 狀態。
相關資訊
疑難排解
如何從 SageMaker PyTorch 部署的端點取得日誌或列印陳述式?
在 Amazon SageMaker 中設定自動擴展推斷端點
定義擴展政策
GitHub 網站上的 amazon-sagemaker-examples