我想疑難排解 Amazon SageMaker 端點的高延遲問題。
簡短說明
SageMaker 端點可能會遇到下列類型的延遲問題:
- 模型延遲 - 這是模型回應推論請求所需的時間。模型延遲包括傳送請求然後擷取回應的本機通訊時間。此外,模型延遲包括模型容器內的推論完成時間。
- 超載延遲 - 這是 SageMaker 回應調用請求所需的時間,並排除模型延遲。
- 網路延遲 - 這是請求在用戶端和 SageMaker 端點之間來回移動所需的時間。網路延遲發生在 AWS 基礎架構之外。
如果 SageMaker 端點提供單一模型,則可以使用下列 Amazon CloudWatch 指標:
如果 SageMaker 端點提供多模型端點,則可以使用下列 CloudWatch 指標:
- 模型載入等待時間 - 此指標顯示執行推理之前,調用請求下載或載入目標模型所需的等待時間。
- 模型下載時間 - 此指標顯示從 Amazon Simple Storage Service (Amazon S3) 下載模型所需的時間。
- 模型載入時間 - 此指標顯示模型載入容器所需的時間。
- 模型快取命中 - 此指標顯示傳送至載入模型端點的 InvokeEndpoint 請求數量。
**注意:**多模型端點會在其整個生命週期內載入和卸載模型。若要檢視端點的載入模型數量,請使用 LoadedModelCount CloudWatch 指標。
解決方法
根據下列延遲類型疑難排解高延遲問題:
模型延遲
若要減少高模型延遲,請完成下列操作:
- 若要測試模型效能,請在 SageMaker 端點外對模型進行基準測試。
- 如果 SageMaker Neo 支援您的模型,請編譯模型。SageMaker Neo 可將模型最佳化,使其執行速度快兩倍,且記憶體佔用量更少,更能保持準確度。
- 如果 AWS Inferentia 支援您的模型,請編譯 Inferentia 的模型。以更低的每次推論成本實現更高的輸送量。
- 如果您使用 CPU 執行個體且模型支援 GPU 加速功能,請使用 GPU 執行個體將 GPU 加速功能新增至執行個體。
**注意:**根據程式碼處理推論的方式,推論程式碼可能會影響模型延遲。任何程式碼的延遲都會增加延遲時間。
- 若要動態增加和減少端點可用的執行個體數量,請將自動擴展新增至端點。過度使用的端點可能會導致更高的模型延遲。
超載延遲
導致高超載延遲的因子包括:
- 請求和回應的承載規模
- 請求頻率或罕見
- 請求的驗證或授權
此外,由於冷啟動,端點的首次調用可能會增加延遲。若要避免冷啟動時的高延遲問題,請將測試請求傳送至端點以預先加熱。
網路延遲
若要減少高網路延遲問題,請完成下列操作:
- 將用戶端應用程式部署更靠近託管 SageMaker 端點的 AWS 區域。
- 最佳化用戶端網路組態和網際網路連線能力。
- 若要將推論要求更接近用戶端,請使用內容交付網路 (CDN) 或邊緣運算解決方案。
**注意:**SageMaker 無法直接影響網路延遲。請確保根據使用案例最佳化使用 SageMaker 端點之應用程式的整體推理延遲。