

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SageMaker Debugger リファレンス
<a name="debugger-reference"></a>

Amazon SageMaker Debugger の使用に関する詳細情報とリファレンスについては、以下のトピックを参照してください。

**Topics**
+ [Amazon SageMaker Debugger API](#debugger-apis)
+ [Debugger ルールの Docker イメージ](#debugger-docker-images-rules)
+ [Amazon SageMaker Debugger の例外](#debugger-exceptions)
+ [Amazon SageMaker Debugger でサポートされている分散トレーニング](#debugger-considerations)

## Amazon SageMaker Debugger API
<a name="debugger-apis"></a>

Amazon SageMaker デバッガーには、モデルトレーニングのモニタリングと分析の実装に使用される API オペレーションが数か所に用意されています。

Amazon SageMaker Debugger は、オープンソースの [`sagemaker-debugger` Python SDK](https://github.com/awslabs/sagemaker-debugger/tree/master/smdebug) も提供します。これは、組み込みルールの設定、カスタムルールの定義、トレーニングジョブから出力テンソルデータを収集するためのフックの登録に使用されます。

[Amazon SageMaker AI Python SDK](https://sagemaker.readthedocs.io/en/stable/) は、機械学習の実験に焦点を当てた高レベルの SDK です。SDK を使って、`SMDebug` Python ライブラリを使って定義された組み込みまたはカスタムルールをデプロイし、SageMaker AI 推定器を使ったこれらのテンソルをモニタリングおよび分析できます。

デバッガーは、Amazon SageMaker API にオペレーションとタイプを追加しました。これにより、プラットフォームがモデルのトレーニング時にデバッガーを使用し、入出力の設定を管理できるようになります。
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) と [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html) は、次のデバッガー API を使って、テンソルコレクション、ルール、ルールイメージ、プロファイリングオプションを設定します。
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CollectionConfiguration.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CollectionConfiguration.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TensorBoardOutputConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TensorBoardOutputConfig.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html) は、次のデバッガー設定やルール評価ステータスなど、トレーニングジョブの詳細な説明を示します。
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleEvaluationStatus.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleEvaluationStatus.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleEvaluationStatus.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleEvaluationStatus.html)

ルール設定 API オペレーションは、モデルトレーニングを分析するときに SageMaker Processing の機能を使用します。SageMaker Processing の詳細については、「[SageMaker Processing によるデータ変換ワークロード](processing-job.md)」を参照してください。

## Debugger ルールの Docker イメージ
<a name="debugger-docker-images-rules"></a>

Amazon SageMaker AI では、ルール用の 2 セットの Docker イメージが提供されます。1 つは SageMaker AI によって提供されるルール (組み込みルール) を評価するためのセットで、もう 1 つは Python のソースファイルで提供されるカスタムルールを評価するためのセットです。

[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) を使用する場合は、デバッガー Docker イメージを手動で取得して `ConfigureTrainingJob` API を設定しなくても、SageMaker AI の高レベルのデバッガー API オペレーションを SageMaker AI 推定器 API オペレーションと共に簡単に使用できます。

SageMaker Python SDK を使用していない場合は、関連する構築済みコンテナベースイメージをデバッガールールのために取得する必要があります。Amazon SageMaker デバッガーは、組み込みおよびカスタムルール用に構築済みの Docker イメージを提供し、イメージは Amazon Elastic Container Registry (Amazon ECR) に保存されます。Amazon ECR リポジトリからイメージをプルする (またはイメージをリポジトリにプッシュする) には、`CreateTrainingJob` API を使ってイメージのフルネームレジストリ URL を使用します。SageMaker AI は、デバッガールールコンテナのイメージレジストリのアドレスに次の URL パターンを使用します。

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

各 AWS リージョンのアカウント ID、Amazon ECR リポジトリ名、タグ値については、以下のトピックを参照してください。

**Topics**
+ [組み込みルール評価用の Amazon SageMaker Debugger イメージの URL](#debuger-built-in-registry-ids)
+ [カスタムルール評価用の Amazon SageMaker Debugger イメージの URI](#debuger-custom-rule-registry-ids)

### 組み込みルール評価用の Amazon SageMaker Debugger イメージの URL
<a name="debuger-built-in-registry-ids"></a>

Amazon SageMaker デバッガーの組み込みルールを提供するイメージのレジストリ URL のコンポーネントには、次の値を使用します。アカウント ID については、次の表を参照してください。

**ECR リポジトリ名**: sagemaker-debugger-rules 

**タグ**: latest 

**完全なレジストリ URL の例**: 

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

 AWS リージョン別の組み込みルールコンテナイメージIDs 


| リージョン | account\$1id | 
| --- | --- | 
| 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  | 

### カスタムルール評価用の Amazon SageMaker Debugger イメージの URI
<a name="debuger-custom-rule-registry-ids"></a>

Amazon SageMaker デバッガーのカスタムルールエバリュエーターを提供するイメージのレジストリ URL のコンポーネントには、次の値を使用します。アカウント ID については、次の表を参照してください。

**ECR リポジトリ名**: sagemaker-debugger-rule-evaluator 

**タグ**: latest 

**完全なレジストリ URL の例**: 

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

 AWS リージョン別のカスタムルールコンテナイメージIDs 


| リージョン | account\$1id | 
| --- | --- | 
| 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 の例外
<a name="debugger-exceptions"></a>

Amazon SageMaker Debugger は、ルールの実行に必要なテンソルをすべてのステップで得られるわけではないことを認識の上設計されています。そのため、いくつかの例外を発生させ、テンソルの欠落時に生じることを制御できるようにします。これらの例外は、[smdebug.exceptions モジュール](https://github.com/awslabs/sagemaker-debugger/blob/master/smdebug/exceptions.py)で利用可能です。次のようにインポートできます。

```
from smdebug.exceptions import *
```

利用可能な例外は次のとおりです。
+ `TensorUnavailableForStep` – リクエストされたテンソルはこのステップで使用できません。これは、このステップがフックによってまったく保存されないか、ステップによって保存されたテンソルに、リクエストされたテンソルが含まれていないことを意味します。この例外が表示された場合、このテンソルは将来このステップで利用できないことを意味します。テンソルがステップに対して縮小版を保存している場合は、それらを照会できることを通知します。
+ `TensorUnavailable` - このテンソルは保存されていないか、`smdebug` API によって保存されていません。これは、このテンソルは `smdebug` のどのステップに対しても決して見られないことを意味する。
+ `StepUnavailable` - このステップは保存されておらず、デバッガーにはこのステップからのデータがありません。
+ `StepNotYetAvailable` - このステップは `smdebug` によってまだ確認されていません。トレーニングがまだ進行中の場合は、将来利用可能になる可能性があります。デバッガーは、新しいデータが利用可能になった時点でそれを自動的にロードします。
+ `NoMoreData` - トレーニング終了時に発生します。これが表示されると、これ以上保存するステップもテンソルもないことがわかります。
+ `IndexReaderException` - インデックスリーダーが有効ではありません。
+ `InvalidWorker` - 無効なワーカーが呼び出されました。
+ `RuleEvaluationConditionMet` - ステップでのルールの評価により、条件が満たされました。
+ `InsufficientInformationForRuleInvocation` - ルールを起動するための情報が不足しています。

## Amazon SageMaker Debugger でサポートされている分散トレーニング
<a name="debugger-considerations"></a>

次のリストは、深層学習フレームワークやさまざまな分散トレーニングオプションを使ったトレーニングジョブでデバッガーを使用する場合の有効範囲と考慮事項を示しています。
+ **Horovod**

  Horovod でのトレーニングジョブへのデバッガー使用の有効範囲    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-reference.html)
+ **SageMaker AI 分散データ並列**

  SageMaker AI 分散データ並列でのトレーニングジョブへのデバッガー使用の有効範囲    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-reference.html)

  \$1 デバッガーは、TensorFlow 2.x のフレームワークプロファイリングをサポートしていません。

  \$1\$1 SageMaker AI 分散データ並列は、Keras の実装の TensorFlow 2.x をサポートしていません。
+ **SageMaker AI 分散モデル並列** - デバッガーは SageMaker AI 分散モデル並列トレーニングをサポートしていません。
+ **SageMaker AI チェックポイントを使用した分散トレーニング** - 分散トレーニングオプションと SageMaker AI チェックポイントの両方が有効になっている場合、トレーニングジョブにデバッガーを使用することはできません。次のようなエラーが表示されることがあります。

  ```
  SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled
  ```

  分散トレーニングオプションを使用したトレーニングジョブにデバッガーを使うには、SageMaker AI のチェックポイント機能を無効にし、トレーニングスクリプトに手動チェックポイント関数を追加する必要があります。分散トレーニングオプションとチェックポイントを使うデバッガーの使用の詳細については、「[SageMaker AI 分散データ並列を Amazon SageMaker Debugger およびチェックポイントと共に使う](distributed-troubleshooting-data-parallel.md#distributed-ts-data-parallel-debugger)」と「[チェックポイントを保存する](distributed-troubleshooting-model-parallel.md#distributed-ts-model-parallel-checkpoints)」を参照してください。
+ **パラメータサーバー** - デバッガーは、パラメータサーバーベースの分散トレーニングをサポートしていません。
+ SageMaker AI 分散データ並列の `AllReduced` オペレーションや [Horovod オペレーション](https://horovod.readthedocs.io/en/stable/timeline_include.html)など、分散トレーニングフレームワークオペレーションのプロファイリングは使用できません。