選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

針對規則使用 Debugger 內建動作

焦點模式
針對規則使用 Debugger 內建動作 - Amazon SageMaker AI

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

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

使用偵錯工具內建動作來回應 偵錯工具規則 找到的問題。偵錯工具 rule_configs 類別提供設定動作清單的工具,包含在偵錯工具規則發現訓練問題時,自動停止訓練任務及使用 Amazon Simple Notification Service (Amazon SNS) 傳送通知。下列主題會逐步引導您完成這些任務。

設定 Amazon SNS、建立SMDebugRules主題,以及訂閱主題

本節將逐步引導您如何設定 Amazon SNS SMDebugRules 主題、訂閱並確認訂閱以獲得來自偵錯工具規則的通知。

注意

關於 Amazon SNS 的計費,如需更多相關資訊,請參閱 Amazon SNS 定價Amazon SNS 常見問答集

建立一個 SMDebugEvents 主題
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/sns/v3/home:// 開啟 Amazon SNS 主控台。

  2. 在左側導覽窗格中,選擇主題

  3. 主題頁面上,選擇建立主題

  4. 建立主題頁面上,於詳細資訊區段中,執行以下作業:

    1. 類型中,選擇標準做為主題類型。

    2. 名稱中,輸入 SMDebugRules

  5. 略過所有其他選項設定,然後選擇建立主題。如果您想進一步了解可選設定,請參閱建立一個 Amazon SNS 主題

訂閱 SMDebugRules 主題

  1. https://console.aws.amazon.com/sns/v3/home 開啟 Amazon SNS 主控台。

  2. 在左導覽窗格中,選擇訂閱

  3. 訂閱頁面,選擇建立訂閱

  4. 建立訂閱頁面上,於詳細資訊區段中,執行以下作業:

    1. 主題 ARN,請選擇 SMDebugRules 主題 ARN。ARN 應為 arn:aws:sns:<region-id>:111122223333:SMDebugRules 格式。

    2. 針對通訊協定,選擇電子郵件簡訊

    3. 端點中,輸入您要接收通知的端點值,例如電子郵件地址或電話號碼。

      注意

      請務必輸入正確的電子郵件地址和電話號碼。電話號碼必須包含 +、國家/地區代碼和電話號碼,不含特殊字元或空格。例如,電話號碼 +1 (222) 333-4444 被格式化為 +12223334444

  5. 略過所有其他選項設定,然後選擇建立訂閱。如果您想進一步了解可選設定,請參閱訂閱 Amazon SNS 主題

訂閱 SMDebugRules 主題後,您會在電子郵件或電話中收到下列確認訊息:

Amazon SNS SMDebugRules 主題的訂閱確認電子郵件訊息。

關於 Amazon SNS,如需更多相關資訊,請參閱 Amazon SNS 開發人員指南內的行動電話簡訊 (SMS)電子郵件通知章節。

設定您的 IAM 角色以連接必要的政策

您在此步驟中,新增必要政策至 IAM 角色。

將必要政策新增至您的 IAM 角色
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在導覽窗格中,選擇政策,並選擇建立政策

  3. 建立政策頁面上,執行下列動作以建立新的 sns-access 存取政策:

    1. 選擇 JSON 標籤。

    2. 將下列程式碼中以粗體格式格式的 JSON 字串貼到 中"Statement",以您的帳戶 ID 取代 12 位數 AWS AWS 的帳戶 ID。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sns:Publish", "sns:CreateTopic", "sns:Subscribe" ], "Resource": "arn:aws:sns:*:111122223333:SMDebugRules" } ] }
    3. 在頁面底部選擇檢閱政策

    4. 檢閱政策頁面的名稱中,輸入 sns-access

    5. 請在頁面底部選擇建立政策

  4. 返回 IAM 主控台,然後在左側導覽窗格中選擇角色

  5. 查詢您用於 SageMaker AI 模型訓練的 IAM 角色,然後選擇該 IAM 角色。

  6. 許可索引標籤的總結頁面上,選擇連接政策

  7. 搜尋 sns-access 存取政策,選取該政策旁的核取方塊,然後選擇連接政策

如需為 Amazon SNS 設定 IAM 政策的更多範例,請參閱 Amazon SNS 存取控制的範例

使用內建動作設定偵錯工具規則

在前面的步驟中成功完成必要設定之後,您可以為偵錯規則設定偵錯工具內建動作,如下列範例指令碼所示。您可以選擇建置 actions 清單物件時要使用的內建動作。rule_configs 是一個輔助模組,提供進階工具來配置偵錯工具的內建規則和動作。偵錯工具可使用下列內建動作:

  • rule_configs.StopTraining() — 當偵錯工具規則發現問題時,停止訓練工作。

  • rule_configs.Email("abc@abc.com") — 當偵錯工具規則發現問題時,透過電子郵件傳送通知。使用您在設定 SNS 主題訂閱時使用的電子郵件地址。

  • rule_configs.SMS("+1234567890") — 當偵錯工具規則發現問題時,透過簡訊傳送通知。使用您在設定 SNS 主題訂閱時使用的電話號碼。

    注意

    請務必輸入正確的電子郵件地址和電話號碼。電話號碼必須包含 +、國家/地區代碼和電話號碼,不含特殊字元或空格。例如,電話號碼 +1 (222) 333-4444 被格式化為 +12223334444

您可以總結使用 rule_configs.ActionList() 方法以使用所有內建動作或動作子集,該方法會採取內建動作並設定動作清單。

將三個內建動作全部新增至單一項規則

如果您想要將三個內建動作全部指派給單一項規則,請在建構估算器時設定偵錯工具內建動作清單。使用下列範本建構估算器,偵錯工具會以您用來監控訓練工作進度的一切規則,停止訓練工作並透過電子郵件和簡訊傳送通知。

from sagemaker.debugger import Rule, rule_configs # Configure an action list object for Debugger rules actions = rule_configs.ActionList( rule_configs.StopTraining(), rule_configs.Email("abc@abc.com"), rule_configs.SMS("+1234567890") ) # Configure rules for debugging with the actions parameter rules = [ Rule.sagemaker( base_config=rule_configs.built_in_rule(), # Required rule_parameters={"paramter_key": value }, # Optional actions=actions ) ] estimator = Estimator( ... rules = rules ) estimator.fit(wait=False)

建立多個內建動作物件,以將不同動作指派給單一項規則

如果您要指派在單一規則的不同閾值時觸發的內建動作,您可以建立多個內建動作物件,如下列指令碼所示。若要藉由執行相同的規則來避免發生衝突錯誤,您必須提交不同的規則作業名稱 (在規則的 name 屬性指定不同的字串),如下列範例中的指令碼範本所示。此範例顯示如何設定 StalledTrainingRule 採取兩種不同的動作:在訓練工作停頓 60 秒時傳送電子郵件至 abc@abc.com;若停頓 120 秒,則停止訓練工作。

from sagemaker.debugger import Rule, rule_configs import time base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) # Configure an action object for StopTraining action_stop_training = rule_configs.ActionList( rule_configs.StopTraining() ) # Configure an action object for Email action_email = rule_configs.ActionList( rule_configs.Email("abc@abc.com") ) # Configure a rule with the Email built-in action to trigger if a training job stalls for 60 seconds stalled_training_job_rule_email = Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "60", "training_job_name_prefix": base_job_name_prefix }, actions=action_email ) stalled_training_job_rule_text.name="StalledTrainingJobRuleEmail" # Configure a rule with the StopTraining built-in action to trigger if a training job stalls for 120 seconds stalled_training_job_rule = Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "120", "training_job_name_prefix": base_job_name_prefix }, actions=action_stop_training ) stalled_training_job_rule.name="StalledTrainingJobRuleStopTraining" estimator = Estimator( ... rules = [stalled_training_job_rule_email, stalled_training_job_rule] ) estimator.fit(wait=False)

訓練工作正在執行時,當規則發現訓練工作的問題時,偵錯工具內建動作就會隨時傳送通知電子郵件和簡訊。下列螢幕擷取畫面顯示,當訓練工作出現停頓訓練工作問題時,電子郵件通知的範例。

當偵錯工具偵測到 StalledTraining 問題時,傳送的電子郵件通知範例。

下列螢幕擷取畫面顯示當規則發現 StalledTraining 問題時,偵錯工具會傳送的簡訊通知範例。

當偵錯工具偵測到 StalledTraining 問題時,所傳送的簡訊通知範例。

使用 Debugger 內建動作的考量事項

  • 若要使用偵錯工具內建動作,網際網路連接為必要項目。Amazon SageMaker AI 或 Amazon VPC 提供的網路隔離模式中不支援此功能。

  • 內建動作無法用於 剖析工具規則

  • 內建動作無法用於具有 Spot 訓練中斷的訓練工作。

  • 在電子郵件或簡訊通知中,None 會出現在訊息結尾。這沒有任何意義,所以您可以忽略文字 None

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。