Amazon SageMaker Debugger 參考 - Amazon SageMaker

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

Amazon SageMaker Debugger 參考

在下列主題中尋找有關使用 Amazon SageMaker Debugger 的詳細資訊和參考。

Amazon SageMaker Debugger APIs

Amazon SageMaker Debugger 在多個位置設有 API 操作,用於實作模型訓練的監控和分析。

Amazon SageMaker Debugger 也提供開放原始碼 sagemaker-debugger PythonSDK,用於設定內建規則、定義自訂規則和註冊掛鉤,以從訓練任務收集輸出張量資料。

Amazon SageMaker Python SDK 是SDK專注於機器學習實驗的高階。SDK 可用於部署 Python SMDebug程式庫定義的內建或自訂規則,以使用 SageMaker 估算器監控和分析這些張量。

Debugger 已將操作和類型新增至 Amazon SageMaker API,讓平台在訓練模型時能夠使用 Debugger,並管理輸入和輸出的組態。

分析模型訓練時,規則組態API操作會使用 SageMaker 處理功能。如需 SageMaker 處理的詳細資訊,請參閱 使用 SageMaker 處理的資料轉換工作負載

Debugger 規則的 Docker 映像

Amazon 為規則 SageMaker 提供兩組 Docker 映像:一組用於評估 SageMaker (內建規則) 提供的規則,另一組用於評估 Python 來源檔案中提供的自訂規則。

如果您使用 Amazon SageMaker Python SDK,您只需要搭配 SageMaker 估算器API操作使用 SageMaker 高階 Debugger API操作,而無需手動擷取 Debugger Docker 映像並設定 ConfigureTrainingJobAPI。

如果您未使用 SageMaker Python SDK,則必須擷取偵錯工具規則的相關預先建置容器基礎映像。Amazon SageMaker Debugger 為內建和自訂規則提供預先建置的 Docker 映像,且映像儲存在 Amazon Elastic Container Registry (Amazon) 中ECR。若要從 Amazon ECR儲存庫提取映像 (或將映像推送至儲存庫),請使用映像URL的完整名稱登錄檔,使用 CreateTrainingJob API。 SageMaker 使用下列URL模式作為偵錯工具規則容器映像登錄檔地址。

<account_id>.dkr.ecr.<Region>.amazonaws.com/<ECR repository name>:<tag>

如需每個 AWS 區域中的帳戶 ID、Amazon ECR儲存庫名稱和標籤值,請參閱下列主題。

內建規則評估器URIs的 Amazon SageMaker Debugger 映像

針對為 Amazon SageMaker Debugger 提供內建規則URLs的映像,使用下列 值作為登錄檔元件。對於帳戶 IDs,請參閱下表。

ECR 儲存庫名稱: sagemaker-debugger-rules

標籤:latest

完整登錄檔的範例URL

904829902805.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rules:latest

依 AWS 區域IDs劃分的內建規則容器映像帳戶

區域 account_id
af-south-1

314341159256

ap-east-1

199566480951

ap-northeast-1

430734990657

ap-northeast-2

578805364391

ap-south-1

904829902805

ap-southeast-1

972752614525

ap-southeast-2

184798709955

ca-central-1

519511493484

cn-north-1

618459771430

cn-northwest-1

658757709296

eu-central-1

482524230118

eu-north-1

314864569078

eu-south-1

563282790590

eu-west-1

929884845733

eu-west-2

250201462417

eu-west-3

447278800020

me-south-1

986000313247

sa-east-1

818342061345

us-east-1

503895931360

us-east-2

915447279597

us-west-1

685455198987

us-west-2

895741380848

us-gov-west-1

515509971035

自訂規則評估器URIs的 Amazon SageMaker Debugger 映像

針對URL為 Amazon SageMaker Debugger 提供自訂規則評估器的映像,使用下列 值作為登錄的元件。對於帳戶 IDs,請參閱下表。

ECR 儲存庫名稱: sagemaker-debugger-rule-evaluator

標籤:latest

完整登錄檔的範例URL

552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest

依 AWS 區域自訂規則容器映像IDs的帳戶

區域 account_id
af-south-1

515950693465

ap-east-1

645844755771

ap-northeast-1

670969264625

ap-northeast-2

326368420253

ap-south-1

552407032007

ap-southeast-1

631532610101

ap-southeast-2

445670767460

ca-central-1

105842248657

cn-north-1

617202126805

cn-northwest-1

658559488188

eu-central-1

691764027602

eu-north-1

091235270104

eu-south-1

335033873580

eu-west-1

606966180310

eu-west-2

074613877050

eu-west-3

224335253976

me-south-1

050406412588

sa-east-1

466516958431

us-east-1

864354269164

us-east-2

840043622174

us-west-1

952348334681

us-west-2

759209512951

us-gov-west-1

515361955729

Amazon SageMaker Debugger 例外狀況

Amazon SageMaker Debugger 旨在了解執行規則所需的張量可能無法在每個步驟中使用。因此會引發一些例外狀況,這讓您能夠掌控張量遺失時所發生的情況。這些例外狀況都收錄於 smdebug.exceptions 模組中。您可以如下所示匯入例外狀況:

from smdebug.exceptions import *

以下是可用的例外狀況:

  • TensorUnavailableForStep——步驟沒有所要求的張量。這可能意味著勾點完全沒有儲存此步驟,或者,此步驟可能儲存一些張量,但其中沒有所要求的張量。請注意,當您看到此例外狀況時,這意味著此步驟未來永遠不會有此張量。如果張量已儲存步驟的減量,則會通知您可以查詢減量。

  • TensorUnavailable – 未儲存此張量,或 未儲存此張量smdebugAPI。這意味著 smdebug 中的任何步驟從來沒有看過這個張量。

  • StepUnavailable——未儲存步驟,Debugger 沒有來自步驟的資料。

  • StepNotYetAvailable——smdebug 尚未看到步驟。如果訓練仍繼續進行,則未來可能會提供。Debugger 變為可用時,會自動載入新資料。

  • NoMoreData——在訓練結束時引發。看到這一項就知道已沒有更多步驟和張量要儲存。

  • IndexReaderException——索引讀取器無效。

  • InvalidWorker — 調用的工作者無效。

  • RuleEvaluationConditionMet——在步驟上評估規則,結果是符合條件。

  • InsufficientInformationForRuleInvocation — 提供的資訊不足,無法調用規則。

Amazon SageMaker Debugger 支援的分散式訓練

下列清單顯示在具有深度學習架構和各種分散式訓練選項的訓練任務上使用 Debugger 的有效性範圍和考量事項。

  • Horovod

    使用 Debugger 進行 Horovod 訓練任務的有效性範圍

    深度學習架構 Apache MXNet TensorFlow 1.x TensorFlow 2.x TensorFlow 2.x 搭配 Keras PyTorch
    監控系統瓶頸
    分析架構操作
    偵錯模型輸出張量
  • SageMaker 分散式資料平行處理

    使用 Debugger 進行 SageMaker 分散式資料平行訓練任務的有效性範圍

    深度學習架構 TensorFlow 2.x TensorFlow 2.x 搭配 Keras PyTorch
    監控系統瓶頸
    分析架構操作 否* 否**
    偵錯模型輸出張量

    * Debugger 不支援 TensorFlow 2.x 的架構分析。

    ** SageMaker 分散式資料平行不支援 TensorFlow 2.x 搭配 Keras 實作。

  • SageMaker 分散式模型平行 – Debugger 不支援 SageMaker 分散式模型平行訓練。

  • 具有 SageMaker 檢查點的分散式訓練 – 啟用分散式訓練選項和 SageMaker 檢查點時,偵錯工具不適用於訓練任務。您可能會看到類似以下的錯誤:

    SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled

    若要使用 Debugger 進行具有分散式訓練選項的訓練任務,您需要停用 SageMaker 檢查點功能,並將手動檢查點功能新增至訓練指令碼。有關 Debugger 搭配分散式訓練選項和檢查點使用的詳細資訊,請參閱將 SageMaker 分散式資料與 Amazon SageMaker 除錯器和檢查點 parallel 使用儲存檢查點

  • 參數伺服器——Debugger不支援以參數伺服器為基礎的分散式訓練。

  • 分析分散式訓練架構操作無法使用,例如 SageMaker 分散式資料平行AllReduced操作 和 Horovod 操作 的操作。