本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SageMaker Debugger 參考
在下列主題中尋找有關使用 Amazon SageMaker Debugger 的詳細資訊和參考。
主題
Amazon SageMaker Debugger APIs
Amazon SageMaker Debugger 在多個位置設有 API 操作,用於實作模型訓練的監控和分析。
Amazon SageMaker Debugger 也提供開放原始碼 sagemaker-debugger
PythonSDK
Amazon SageMaker Python SDKSMDebug
程式庫定義的內建或自訂規則,以使用 SageMaker 估算器監控和分析這些張量。
Debugger 已將操作和類型新增至 Amazon SageMaker API,讓平台在訓練模型時能夠使用 Debugger,並管理輸入和輸出的組態。
-
CreateTrainingJob
和UpdateTrainingJob
使用下列偵錯工具APIs來設定張量收集、規則、規則影像和分析選項: -
DescribeTrainingJob
提供完整訓練任務描述,包含下列 Debugger 組態和規則評估狀態:
分析模型訓練時,規則組態API操作會使用 SageMaker 處理功能。如需 SageMaker 處理的詳細資訊,請參閱 使用 SageMaker 處理的資料轉換工作負載。
Debugger 規則的 Docker 映像
Amazon 為規則 SageMaker 提供兩組 Docker 映像:一組用於評估 SageMaker (內建規則) 提供的規則,另一組用於評估 Python 來源檔案中提供的自訂規則。
如果您使用 Amazon SageMaker Python SDKConfigureTrainingJob
API。
如果您未使用 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
– 未儲存此張量,或 未儲存此張量smdebug
API。這意味著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 操作的操作。