故障診斷 Inference Recommender 錯誤 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

故障診斷 Inference Recommender 錯誤

本節包含如何了解並防止常見錯誤、其所產生錯誤訊息的資訊,以及如何解決這些錯誤的指導方針。

如何故障診斷

您可以透過執行以下步驟嘗試解決錯誤:

  • 檢查您是否已涵蓋使用 Inference Recommender 的所有先決條件。請參閱 Inference Recommender 先決條件

  • 檢查您是否能夠將模型從模型註冊表部署到端點,並且可毫無錯誤地處理您的承載。請參閱從註冊表部署模型

  • 當您開始執行推論建議程式工作時,您應該會看到在主控台中建立的端點,而且您可以檢閱記錄檔。 CloudWatch

常見錯誤

請參閱下表,了解常見的 Inference Recommender 錯誤及其解決方案。

錯誤 解決方案

在模型套件版本 1 中指定 DomainDomain 是任務的必要參數。

請確定您提供 ML 網域或未OTHER知的網域。

無法假設提供的角色 ARN 並發生 AWSSecurityTokenServiceException 錯誤。

請確定提供的執行角色具有先決條件中指定的必要許可。

在模型套件版本 1 中指定 FrameworkFramework 是任務的必要參數。

確保您提供機器學習 (ML) 架構或者在未知的情況下提供 OTHER

上一階段結束時的使用者為 0,而目前階段的初始使用者為 1。

此處的使用者指的是用來傳送請求的虛擬使用者或執行緒。每個階段都以 A 使用者開始,並以 B 使用者結束,以便 B > A. 在循序階段 x_1 和 x_2 之間,我們會要求 abs(x_2.A - x_1.B) <= 3 且 >= 0。

總流量持續時間 (跨階段) 不應超過任務持續時間。

所有階段的總持續時間不能超過任務持續時間。

不允許高載執行個體類型 ml.t2.medium。

Inference Recommender 不支援 t2 執行個體系列上的負載測試,因為高載執行個體無法提供一致的效能。

ResourceLimitExceeded 調用 CreateEndpoint 操作時

您已超過資 SageMaker 源限制。例如,如果帳戶已達到端點配額,Inference Recommender 可能無法佈建端點以進行基準測試。如需有關 SageMaker 限制和配額的詳細資訊,請參閱 Amazon SageMaker 端點和配額

ModelError 調用 InvokeEndpoint 操作時

模型錯誤可能是由於下列原因所發生:

  • 等待來自模型容器的回應時調用已逾時。

  • 模型無法處理輸入承載。

PayloadError 調用 InvokeEndpoint 操作時

承載錯誤可能是由於下列原因所發生:

  • 承載來源不在 Amazon S3 儲存貯體中。

  • 承載採用非檔案物件格式。

  • 承載的檔案類型無效。例如,模型需要映像類型承載,但會傳遞一個文字檔案。

  • 承載是空的。

檢查 CloudWatch

當您開始執行 Inference Recommender 任務時,您應該會看到主控台正在建立端點。選取其中一個端點,並檢視 CloudWatch 記錄檔以監控是否有任何 4xx/5xx 錯誤。如果您有成功的 Inference Recommender 任務,您將能夠看到端點名稱作為結果的一部分。即使您的推論建議程式工作失敗,您仍然可以依照下列步驟檢查已刪除端點的 CloudWatch 記錄檔:

  1. 在以下位置打開 Amazon CloudWatch 控制台 https://console.aws.amazon.com/cloudwatch/

  2. 從右上角的區域下拉式清單中,選取您在其中建立 Inference Recommender 任務的區域。

  3. 在的瀏覽窗格中 CloudWatch,選擇 [記錄檔],然後選取 [記錄群組]。

  4. 搜尋名為 /aws/sagemaker/Endpoints/sm-epc-* 的日誌群組。根據您最近的 Inference Recommender 任務選取日誌群組。

您也可以檢查推論建議 CloudWatch 程式記錄,以疑難排解工作。發佈在記錄群組中的推論建議程式記/aws/sagemaker/InferenceRecommendationsJobs CloudWatch 錄可提供記<jobName>/execution錄資料流中工作進度的高階檢視。您可以在 <jobName>/Endpoint/<endpointName> 日誌串流中找到有關正在測試的每個端點組態之詳情。

Inference Recommender 日誌串流概觀

  • <jobName>/execution 包含整體任務資訊,例如針對基準測試排程的端點組態、編譯任務略過原因,以及驗證失敗原因。

  • <jobName>/Endpoint/<endpointName> 包含資源建立進度、測試組態、載入測試停止原因和資源清理狀態等資訊。

  • <jobName>/CompilationJob/<compilationJobName> 包含 Inference Recommender 所建立之編譯任務的相關資訊,例如編譯任務組態和編譯任務狀態。

建立 Inference Recommender 錯誤訊息的警示

Inference Recommender 會針對故障診斷時可能有幫助的錯誤輸出日誌陳述式。使用 CloudWatch 記錄群組和指標篩選器,您可以在資料傳送至此記錄檔資料時尋找術語和模式 CloudWatch。然後,您可以根據記錄群組量度篩選器建立 CloudWatch 警示。如需詳細資訊,請參閱根據記錄群組指標篩選器建立 CloudWatch 警示

檢查基準

當您開始執行 Inference Recommender 任務時,Inference Recommender 會建立數個基準測試,以評估模型在不同執行個體類型上的效能。您可以使用 ListInferenceRecommendationsJobStepsAPI 查看所有基準測試的詳細信息。如果您有一個失敗的基準測試,您可以看到失敗原因作為結果的一部分。

若要使用 ListInferenceRecommendationsJobStepsAPI,請提供下列值:

  • 對於 JobName,提供 Inference Recommender 任務的名稱。

  • 對於 StepType,使用 BENCHMARK 傳回有關任務基準測試的詳細資訊。

  • 對於 Status,使用 FAILED 僅傳回失敗基準測試的詳細資訊。如需其他狀態類型的清單,請參閱 ListInferenceRecommendationsJobStepsAPI 中的Status欄位。

# Create a low-level SageMaker service client. import boto3 aws_region = '<region>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide the job name for the SageMaker Inference Recommender job job_name = '<job-name>' # Filter for benchmarks step_type = 'BENCHMARK' # Filter for benchmarks that have a FAILED status status = 'FAILED' response = sagemaker_client.list_inference_recommendations_job_steps( JobName = job_name, StepType = step_type, Status = status )

您可以列印回應物件以檢視結果。前面的程式碼範例將回應儲存在一個名為 response 的變數:

print(response)