如何針對 Amazon SageMaker 端點的延遲問題進行疑難排解?

1 分的閱讀內容
0

當我叫用 Amazon SageMaker 端點時,遇到高延遲的問題。

簡短說明

使用 Amazon CloudWatch 以針對適用於單一模型的 SageMaker 端點進行延遲指標 ModelLatencyOverheadLatency 的監控。

  • ModelLatency 是模型回應 SageMaker 所檢視之推論請求所花費的時間。此持續時間包括模型傳送請求和擷取回應的本機通訊時間。其中亦包括模型容器內推論的完成時間。
  • OverheadLatency 是 SageMaker 回應具有額外負荷之叫用請求所花費的時間。此時間測量是從 SageMaker 收到請求至傳回回應的時間減去 ModelLatency

當您使用 SageMaker 多模型端點時,CloudWatch 會提供下列其他指標:

  • **ModelLoadingWaitTime:**在執行推論之前,叫用請求等待目標模型下載或載入的時間。
  • **ModelDownloadingTime:**從 Amazon Simple Storage Service (Amazon S3) 下載模型的時間。
  • **ModelLoadingTime:**從容器載入模型的時間。
  • **ModelCacheHit:**傳送至先前載入模型之端點的 InvokeEndpoint 請求數量。

多模型端點會在其整個生命週期內載入和卸載模型。您可以使用 CloudWatch LoadedModelCount 指標來檢視端點載入的模型數量。

解決方法

高 ModelLatency

若要降低此延遲,請執行下列任一動作:

  • 在 SageMaker 端點外對模型進行基準測試,以測試效能。
  • 如果 SageMaker Neo 支援您的模型,您可以編譯模型。SageMaker Neo 可將模型最佳化,使其執行速度快達兩倍,且記憶體佔用量不到十分之一,更能保持準確度。
  • 如果 AWS Inferentia 支援您的模型,您可以編譯 Inferentia 的模型。相較於 AWS GPU 型執行個體,其可提供高達三倍的輸送量,且每次推論的成本可降低多達 45%。
  • 如果您使用 CPU 執行個體且模型支援 GPU 加速,請使用 GPU 執行個體將 GPU 加速新增至執行個體。
    **注意:**視程式碼處理推論的方式而定,推論程式碼可能會影響模型延遲。任何程式碼的延遲都會增加延遲時間。
  • 過度使用的端點可能會導致更高的模型延遲。若要動態增加和減少端點可用的執行個體數量,請將自動擴展新增至端點。

高 OverheadLatency

多種因素可能導致 OverheadLatency。這些因素包括請求和回應的承載大小、請求頻率,以及請求的驗證或授權。

由於冷啟動,端點的首次叫用可能會增加延遲。此為預期的首次叫用請求情況。若要避免此問題,請將測試請求傳送至端點以進行預先培養。請注意,非經常性的請求亦可能會增加 OverheadLatency

AWS 官方
AWS 官方已更新 1 年前