解讀結果 - Amazon SageMaker

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

解讀結果

當您執行基準處理工作並取得資料集的統計資料和限制條件之後,您就可以執行監控工作來計算統計資料,並列出與基準限制條件相關的任何違規。根據預設,您的帳戶也會報告 Amazon CloudWatch 指標。如需有關在 Amazon SageMaker Studio 中檢視監控結果的資訊,請參閱 在 Amazon SageMaker Studio 中視覺化即時端點的結果

列出執行

排程會依指定的間隔開始監控工作。下列程式碼列出最近的五個執行。如果您在建立每小時排程後執行此程式碼,則執行可能是空的,而且可能需要等到超過小時界限 (在 中UTC) 才能看到執行開始。下列程式碼包含等待的邏輯。

mon_executions = my_default_monitor.list_executions() print("We created a hourly schedule above and it will kick off executions ON the hour (plus 0 - 20 min buffer.\nWe will have to wait till we hit the hour...") while len(mon_executions) == 0: print("Waiting for the 1st execution to happen...") time.sleep(60) mon_executions = my_default_monitor.list_executions()

檢查特定執行

在上一個步驟中,您挑選最近完成或失敗的排程執行。你可以探索對錯情況。終端機狀態為:

  • Completed – 監控執行完成,在違規報告中找不到任何問題。

  • CompletedWithViolations – 執行完成,但偵測到限制條件違規。

  • Failed – 監控執行失敗,可能是因為用戶端錯誤 (例如角色問題) 或基礎結構問題。若要識別原因,請參閱FailureReasonExitMessage

latest_execution = mon_executions[-1] # latest execution's index is -1, previous is -2 and so on.. time.sleep(60) latest_execution.wait(logs=False) print("Latest execution status: {}".format(latest_execution.describe()['ProcessingJobStatus'])) print("Latest execution result: {}".format(latest_execution.describe()['ExitMessage'])) latest_job = latest_execution.describe() if (latest_job['ProcessingJobStatus'] != 'Completed'): print("====STOP==== \n No completed executions to inspect further. Please wait till an execution completes or investigate previously reported failures.")
report_uri=latest_execution.output.destination print('Report Uri: {}'.format(report_uri))

列出產生的報告

使用下列程式碼列出產生的報告。

from urllib.parse import urlparse s3uri = urlparse(report_uri) report_bucket = s3uri.netloc report_key = s3uri.path.lstrip('/') print('Report bucket: {}'.format(report_bucket)) print('Report key: {}'.format(report_key)) s3_client = boto3.Session().client('s3') result = s3_client.list_objects(Bucket=report_bucket, Prefix=report_key) report_files = [report_file.get("Key") for report_file in result.get('Contents')] print("Found Report Files:") print("\n ".join(report_files))

違規報告

如果有違反基準的情形,則會顯示在違規報告中。使用下面的程式碼列出違規。

violations = my_default_monitor.latest_monitoring_constraint_violations() pd.set_option('display.max_colwidth', -1) constraints_df = pd.io.json.json_normalize(violations.body_dict["violations"]) constraints_df.head(10)

這只適用於包含表格式資料的資料集。下列結構描述檔案指定計算的統計資料和監控的違規。

表格式資料集的輸出檔案

檔案名稱 描述
statistics.json

針對所分析資料集的每個特徵,包含單欄式統計資料。請在下一個主題中查看此檔案的結構描述。

注意

此檔案僅為了資料品質監控而建立。

constraint_violations.json

baseline_constaintsbaseline_statistics 路徑中指定的基準統計資料和限制條件檔案相比較之後,此檔案包含目前這組資料中發現的違規清單。

根據預設, 會為每個功能Amazon SageMaker Model Monitor 預建容器儲存一組 Amazon CloudWatch 指標。

容器程式碼可以在此位置發出 CloudWatch 指標:/opt/ml/output/metrics/cloudwatch