デバッガ組み込みルールのリスト - Amazon SageMaker

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

デバッガ組み込みルールのリスト

Amazon SageMaker デバッガーが提供するデバッガーの組み込みルールを使用して、モデルのトレーニング中に発生するテンソルの解析を行います。デバッガーの組み込みルールは、トレーニングジョブの成功に不可欠な、さまざまな共通条件を監視します。組み込みルールを呼び出すにはAmazon SageMaker におけるまたは低レベルの SageMaker API 操作を実行できます。選択した深層学習フレームワークに応じて、次の表に示すように 4 つの有効範囲があります。

注記

トレーニングジョブの組み込みルールの最大数は 20 です。ProfilerRuleおよび 20 の場合Rule。SageMaker デバッガは、組み込みのルールを完全に管理し、トレーニングジョブを並行して分析します。請求の詳細については、『』を参照してください。Amazon SageMaker スタジオは追加料金なしでご利用いただけます。の セクションAmazon SageMaker の価格設定ページで.

重要

新しいデバッガ機能を使用するには、SageMaker Python SDK と SMDebug クライアントライブラリをアップグレードする必要があります。IPython カーネル、Jupyter ノートブック、または JupyterLab 環境で、次のコードを実行して最新バージョンのライブラリをインストールし、カーネルを再起動します。

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

デバッガープロファイリングルール

次の規則は、デバッガーの組み込み規則です。この規則は、ProfilerRule.sagemakerクラスメソッド。

プロファイリングレポートを生成するためのデバッガーの組み込みルール
有効範囲 組み込みルール
SageMaker トレーニングジョブのプロファイリングレポート
デバッガー組み込みのハードウェアシステムリソース使用率を監視するための規則 (システムメトリック)
有効範囲 組み込みルール
SageMaker トレーニングジョブの一般的なシステム監視ルール
フレームワークメトリックプロファイリング用のデバッガーの組み込みルール
有効範囲 組み込みルール
ディープラーニングフレームワークのプロファイリングルール (TensorFlow および PyTorch)

デバッガー規則

次の規則は、デバッガーの組み込み規則です。この規則は、Rule.sagemakerクラスメソッド。

デバッガーの組み込みルール
有効範囲 組み込みルール
SageMaker XGBoostトレーニングジョブのトレーニングレポート
デバッガ組み込みのモデルトレーニングデータをデバッグするためのルール(出力テンソル)
有効範囲 組み込みルール
ディープラーニングフレームワーク (TensorFlow、MXNet、および PyTorch)
ディープラーニングフレームワーク (TensorFlow、MXNet、および PyTorch) および XGBoost アルゴリズム
ディープラーニングアプリケーション
XGBoost アルゴリズム

デフォルトのパラメータ値とともに組み込みルールを使用するには— 次の設定形式を使用します。

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n()), Rule.sagemaker(rule_configs.built_in_rule_name_1()), Rule.sagemaker(rule_configs.built_in_rule_name_2()), ... Rule.sagemaker(rule_configs.built_in_rule_name_n()) ]

パラメータ値をカスタマイズして組み込みのルールを使用するには— 次の設定形式を使用します。

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) Rule.sagemaker( base_config=rule_configs.built_in_rule_name(), rule_parameters={ "key": "value" } collections_to_save=[ CollectionConfig( name="tensor_collection_name", parameters={ "key": "value" } ) ] ) ]

使用可能なキーを検索するにはrule_parametersパラメータの詳細については、パラメータの説明テーブルを参照してください。

パラメータ説明テーブルの下に、組み込みルールごとにサンプルルール設定コードが用意されています。

ProfilerReport

ProfilerReport ルールは、監視とプロファイリングのためにすべての組み込みルールを呼び出します。プロファイルレポートを作成し、個々のルールがトリガーされたときに更新されます。トレーニングジョブの実行中またはトレーニングジョブの完了後に、包括的なプロファイリングレポートをダウンロードできます。ルールパラメータ値を調整して、組み込みの監視ルールとプロファイリングルールの機密性をカスタマイズできます。次のコード例は、ProfilerReport ルールを使用して組み込みのルールパラメータを調整するための基本的な形式を示しています。

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( <BuiltInRuleName>_<parameter_name> = value ) ) ]

次のコード例に示すように、カスタマイズされたパラメータなしでこの ProfilerReport ルールをトリガーすると、ProfilerReport ルールによって、デフォルトのパラメータ値を使用して監視およびプロファイリング用のすべての組み込みルールがトリガーされます。

rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]

以下のコード例は、CPUBottneck ルールのcpu_thresholdパラメーターと IOBottnek ルールのthresholdパラメータ。

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( CPUBottleneck_cpu_threshold = 90, IOBottleneck_threshold = 90 ) ) ]

Overallsystemusage ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

<BuiltInRuleName>_<parameter_name>

カスタマイズ可能なパラメーターで、他の組み込みの監視ルールとプロファイリングルールのしきい値を調整できます。

オプション

デフォルト値: None

BatchSize

BatchSize ルールは、バッチサイズが小さいために GPU が十分に活用されていないかどうかを検出するのに役立ちます。この問題を検出するために、このルールは平均 CPU 使用率、GPU 使用率、および GPU メモリ使用率を監視します。CPU、GPU、および GPU メモリの使用率が平均的に低い場合は、トレーニングジョブが小さいインスタンスタイプで実行できるか、より大きなバッチサイズで実行できる可能性があります。この分析は、メモリを過度に割り当てるフレームワークでは機能しません。ただし、バッチサイズを大きくすると、各反復でより多くのデータ前処理時間が必要なため、処理やデータ読み込みのボトルネックになる可能性があります。

BatchSize ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

cpu_threshold_p95

CPU 使用率の 95 分位数のしきい値をパーセンテージで定義します。

オプション

有効な値: 整数

デフォルト値:70(パーセンテージ)

gpu_threshold_p95

GPU 使用率の 95 分位数のしきい値をパーセンテージで定義します。

オプション

有効な値: 整数

デフォルト値:70(パーセンテージ)

gpu_memory_threshold_p95

GPU メモリ使用率の 95 分位数のしきい値をパーセンテージで定義します。

オプション

有効な値: 整数

デフォルト値:70(パーセンテージ)

patience

ルールが評価を開始するまでスキップするデータポイントの数を定義します。トレーニングジョブの最初のいくつかのステップは、通常、大量のデータプロセスを示しています。したがって、ルールは患者を維持し、このパラメータで指定した数のプロファイリングデータを使用して、ルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 100

window

分位数を計算するためのウィンドウサイズ。

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

CPUBottleneck

CPUボトルネックルールは、CPUのボトルネックのためにGPUが十分に活用されていないかどうかを検出するのに役立ちます。CPU ボトルネックの数が定義済みのしきい値を超えた場合、Rule は True を返します。

CPUボトルネックルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

合計トレーニング時間に対するボトルネック時間の割合のしきい値を定義します。割合がしきい値パラメータに指定された割合を超えると、ルールはルールの状態を True に切り替えます。

オプション

有効な値: 整数

デフォルト値:50(パーセンテージ)

gpu_threshold

低GPU使用率を定義するしきい値。

オプション

有効な値: 整数

デフォルト値:10(パーセンテージ)

cpu_threshold

高い CPU 使用率を定義するしきい値。

オプション

有効な値: 整数

デフォルト値:90(パーセンテージ)

patience

ルールが評価を開始するまでスキップするデータポイントの数を定義します。トレーニングジョブの最初のいくつかのステップは、通常、大量のデータプロセスを示しています。したがって、ルールは患者を維持し、このパラメータで指定した数のプロファイリングデータを使用して、ルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 100

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

GPUMemoryIncrease

GPUemoryIncrese ルールは、GPU のメモリ使用量の大幅な増加を検出するのに役立ちます。

GPUumemoryIncore ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

increase

絶対メモリ増加のしきい値を定義します。

オプション

有効な値: 整数

デフォルト値:10(パーセンテージ)

patience

ルールが評価を開始するまでスキップするデータポイントの数を定義します。トレーニングジョブの最初のいくつかのステップは、通常、大量のデータプロセスを示しています。したがって、ルールは患者を維持し、このパラメータで指定した数のプロファイリングデータを使用して、ルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 100

window

分位数を計算するためのウィンドウサイズ。

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

IOBottleneck

このルールは、データ IO のボトルネックが原因で GPU が十分に活用されていないかどうかを検出するのに役立ちます。IOボトルネックの数が事前定義されたしきい値を超えた場合、RuleはTrueを返します。

IOボトルネックルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold Rule が True を返すときのしきい値を定義します。

オプション

有効な値: 整数

デフォルト値:50(パーセンテージ)

gpu_threshold

GPU が十分に活用されていないと見なされるタイミングを定義するしきい値。

オプション

有効な値: 整数

デフォルト値:70(パーセンテージ)

io_threshold 高い IO 待機時間を定義するしきい値。

オプション

有効な値: 整数

デフォルト値:50(パーセンテージ)

patience ルールが評価を開始するまでスキップするデータポイントの数を定義します。トレーニングジョブの最初のいくつかのステップは、通常、大量のデータプロセスを示しています。したがって、ルールは患者を維持し、このパラメータで指定した数のプロファイリングデータを使用して、ルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 1000

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

LoadBalancing

LoadBalancingルールは、複数のGPU間のワークロードバランシングの問題を検出するのに役立ちます。

ロードバランシングルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

ワークロードの割合を定義します。

オプション

有効な値: 整数

デフォルト値:0.5(単位なし比率)

patience

ルールが評価を開始するまでスキップするデータポイントの数を定義します。トレーニングジョブの最初のいくつかのステップは、通常、大量のデータプロセスを示しています。したがって、ルールは患者を維持し、このパラメータで指定した数のプロファイリングデータを使用して、ルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 10

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

LowGPUUtilization

LowGPUUUtilization ルールは、GPU の使用率が低いか、変動しているかを検出するのに役立ちます。これは、各ワーカー上のGPUごとにチェックされます。95分位数がしきい値_p95を下回っている場合、ルールはTrueを返します。95分位数がしきい値p95を超え、5分位数が変動を示すしきい値p5未満の場合、ルールはtrueを返します。

LowGPUUtilization ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold_p95

95分位数のしきい値。この値を下回ると GPU が十分に活用されていないと見なされます。

オプション

有効な値: 整数

デフォルト値:70(パーセンテージ)

threshold_p5 第 5 分位数のしきい値。デフォルトは 10% です。

オプション

有効な値: 整数

デフォルト値:10(パーセンテージ)

patience

ルールが評価を開始するまでスキップするデータポイントの数を定義します。トレーニングジョブの最初のいくつかのステップは、通常、大量のデータプロセスを示しています。したがって、ルールは患者を維持し、このパラメータで指定した数のプロファイリングデータを使用して、ルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 1000

window

分位数を計算するためのウィンドウサイズ。

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

OverallSystemUsage

OverallSystemUsage ルールは、ワーカーノードごとのシステム全体の使用量を測定します。現在、ルールはノードごとの値のみを集計し、百分位数を計算します。

Overallsystemusage ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

scan_interval_us

タイムラインファイルをスキャンする時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

MaxInitializationTime

MaxInitializationTime ルールは、トレーニングの初期化に時間がかかりすぎているかどうかを検出するのに役立ちます。ルールは、最初のステップが使用可能になるまで待機します。

MaximitializationTime ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

最初のステップが使用可能になるまで待機するしきい値を分単位で定義します。

オプション

有効な値: 整数

デフォルト値:20(分)

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

OverallFrameworkMetrics

OverallFrameworkMetricsルールは、前方パスと後方パス、データのロードなどのフレームワーク・メトリックに費やされた時間を要約します。

OverallFlameworkMetrics ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

scan_interval_us

タイムラインファイルをスキャンする時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

StepOutlier

StepOutLier ルールは、ステップ期間の外れ値を検出するのに役立ちます。このルールはTrueより長いステップ持続時間を持つ外れ値がある場合stddev時間範囲内のステップ期間全体のシグマ。

Stepoutlier ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

stddev

標準偏差を乗算する係数を定義します。たとえば、ステップ期間が標準偏差の 5 倍よりも大きいか小さい場合、ルールはデフォルトで呼び出されます。

オプション

有効な値: 整数

デフォルト値:5(分)

mode ステップが保存され、ルールが実行されるモード。デフォルトのルールは、EVALとTRAINフェーズからのステップで実行されます

オプション

有効な値: 整数

デフォルト値:5(分)

n_outliers ルールがTrueを返す前に無視する外れ値の数

オプション

有効な値: 整数

デフォルト値: 10

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値:60000000(マイクロ秒)

CreateXgboostReport

CreateXgBoostReport ルールは、XgBoost トレーニングジョブから出力テンソルを収集し、包括的なトレーニングレポートを自動的に生成します。トレーニングジョブの実行中またはトレーニングジョブの完了後に、包括的なプロファイリングレポートをダウンロードし、トレーニングの進行状況またはトレーニングジョブの最終結果を確認できます。CreateXgBoostReport ルールは、デフォルトで次の出力テンソルを収集します。

  • hyperparameters— 最初のステップで保存する

  • metrics— 5ステップごとに損失と精度を節約

  • feature_importance— 5 ステップごとに節約

  • predictions— 5 ステップごとに節約

  • labels— 5 ステップごとに節約

CreatExGBoost Rport ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

rules=[ Rule.sagemaker( rule_configs.create_xgboost_report() ) ]

DeadRelu

このルールは、トライアルにおける正規化線形ユニット (ReLU) 活性化関数の割合が、活性化アクティビティがしきい値を下回ったために死状態と見なされるかどうかを検出します。レイヤ内の非アクティブな ReLU の割合が非アクティブな ReLU threshold_layer の値より大きい場合、ルールは True を返します。

DeadRelu ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: ".*relu_output"

threshold_inactivity

ReLU が死状態と見なされるアクティビティのレベルを定義します。ReLU は、トライアルの開始時にアクティブになり、その後、トレーニングプロセス中にゆっくりと死状態になる場合があります。ReLU が threshold_inactivity よりもアクティブでない場合、死状態とみなされます。

オプション

有効な値: 浮動小数点

デフォルト値:1.0(パーセンテージ)

threshold_layer

レイヤ内の非アクティブな ReLU の割合が threshold_layer より大きい場合、True を返します。

レイヤ内の非アクティブな ReLU の割合が threshold_layer より小さい場合、False を返します。

オプション

有効な値: 浮動小数点

デフォルト値:50.0(パーセンテージ)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.dead_relu(), rule_parameters={ "tensor_regex": ".*relu_output|.*ReLU_output", "threshold_inactivity": "1.0", "threshold_layer": "50.0" } collections_to_save=[ CollectionConfig( name="custom_relu_collection", parameters={ "include_regex: ".*relu_output|.*ReLU_output", "save_interval": "500" } ) ] ) ]

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

このルールは、XGBoost アルゴリズムでは使用できません。

ExplodingTensor

このルールは、トレーニング中に放出されたテンソルが無限または NaN (非数) のいずれかの非有限値を持つかどうかを検出します。非有限値が検出された場合、ルールは True を返します。

ExplodingTensor ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列

デフォルト値: None

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列

デフォルト値: None

only_nan

True の場合、NaN に対してのみbase_trial テンソル値を監視し、無限については監視しません。

False の場合、NaN と無限の両方を分解値として扱い、両方を監視します。

オプション

デフォルト値: False

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.exploding_tensor(), rule_parameters={ "tensor_regex": ".*gradient", "only_nan": "False" } collections_to_save=[ CollectionConfig( name="gradients", parameters={ "save_interval": "500" } ) ] ) ]

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

このルールは、XGBoost アルゴリズムでは使用できません。

PoorWeightInitialization

このルールは、モデルパラメータの初期化が不十分であるかどうかを検出します。

適切な初期化を行うことで、ニューラルネットワークの重みと勾配の対称性が崩れ、レイヤー間で相応の活性化分散が維持されます。さもなければ、ニューラルネットワークは効果的に学習しません。Xavier のようなイニシャライザは、アクティベーション間で分散を一定に保つことを目的としています。これは、非常に深いニューラルネットのトレーニングに特に関連しています。初期化が小さすぎると、勾配が消失する可能性があります。初期化が大きすぎると、勾配が爆発する可能性があります。このルールは、レイヤー間のアクティベーション入力の分散、勾配の分布、および初期ステップの損失収束をチェックし、ニューラルネットワークの初期化が不十分であるかどうかを判断します。

PoorWeightInitialization ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

activation_inputs_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列

デフォルト値: ".*relu_input"

threshold

レイヤごとの重みの最小分散と最大分散の比率が、あるステップで threshold を超えた場合、ルールは True を返します。

オプション

有効な値: 浮動小数点

デフォルト値: 10.0

distribution_range

勾配分布の 5 パーセンタイルと 95 パーセンタイルの最小差がdistribution_range より小さい場合、ルールは True を返します。

オプション

有効な値: 浮動小数点

デフォルト値: 0.001

patience

損失が減少しなくなったと見なされるまで待機するステップの数。

オプション

有効な値: 整数

デフォルト値: 5

steps

このルールが分析するステップの数。通常は、最初の数回のイテレーションのみをチェックする必要があります。

オプション

有効な値: 浮動小数点

デフォルト値: 10

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.poor_weight_initialization(), rule_parameters={ "activation_inputs_regex": ".*relu_input|.*ReLU_input", "threshold": "10.0", "distribution_range": "0.001", "patience": "5", "steps": "10" }, collections_to_save=[ CollectionConfig( name="custom_relu_collection", parameters={ "include_regex": ".*relu_input|.*ReLU_input", "save_interval": "500" } ) ] ) ]

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

このルールは、XGBoost アルゴリズムでは使用できません。

SaturatedActivation

このルールは、タンとシグモイド活性化層が飽和状態になっているかどうかを検出します。活性化層は、レイヤの入力が活性化関数の最大値または最小値に近づくと飽和します。タンおよびシグモイド活性化関数の最小値と最大値は、それぞれの min_threshold および max_thresholds 値によって定義されます。ノードのアクティビティが threshold_inactivity の割合を下回ると、そのノードは飽和していると見なされます。ノードの threshold_layer パーセント以上が飽和している場合、ルールは True を返します。

SaturatedActivation ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列

デフォルト値: ".*tanh_input|.*sigmoid_input".

threshold_tanh_min

タン活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、のように定義されます。(min_threshold, max_threshold)。 デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。

オプション

有効な値: 浮動小数点

デフォルト値: -9.4999

threshold_tanh_max

タン活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、のように定義されます。(min_threshold, max_threshold)。 デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。

オプション

有効な値: 浮動小数点

デフォルト値: 9.4999

threshold_sigmoid_min

シグモイド活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、のように定義されます。(min_threshold, max_threshold)。 デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。

オプション

有効な値: 浮動小数点

デフォルト値: -23

threshold_sigmoid_max

シグモイド活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、のように定義されます。(min_threshold, max_threshold)。 デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。

オプション

有効な値: 浮動小数点

デフォルト値: 16.99999

threshold_inactivity

活性化層が飽和していると見なされる非アクティブの割合。活性化は、トライアルの開始時にアクティブになり、その後、トレーニングプロセス中に徐々にアクティブでなくなる場合があります。

オプション

有効な値: 浮動小数点

デフォルト値: 1.0

threshold_layer

レイヤー内の飽和活性化の数が、threshold_layer の割合より大きい場合に True を返します。

レイヤー内の飽和活性化の数が、threshold_layer の割合より少ない場合に False を返します。

オプション

有効な値: 浮動小数点

デフォルト値: 50.0

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.saturated_activation(), rule_parameters={ "tensor_regex": ".*tanh_input|.*sigmoid_input", "threshold_tanh_min": "-9.4999", "threshold_tanh_max": "9.4999", "threshold_sigmoid_min": "-23", "threshold_sigmoid_max": "16.99999", "threshold_inactivity": "1.0", "threshold_layer": "50.0" }, collections_to_save=[ CollectionConfig( name="custom_activations_collection", parameters={ "include_regex": ".*tanh_input|.*sigmoid_input" "save_interval": "500" } ) ] ) ]

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

このルールは、XGBoost アルゴリズムでは使用できません。

VanishingGradient

このルールは、トライアルの勾配が極端に小さくなるか、またはゼロになっていないかどうかを検出します。勾配の絶対値の平均が指定された threshold を下回ると、ルールは True を返します。

VanishingGradient ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold 勾配が消失していると判断される値。

オプション

有効な値: 浮動小数点

デフォルト値: 0.0000001.

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.vanishing_gradient(), rule_parameters={ "threshold": "0.0000001" }, collections_to_save=[ CollectionConfig( name="gradients", parameters={ "save_interval": "500" } ) ] ) ]

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

このルールは、XGBoost アルゴリズムでは使用できません。

WeightUpdateRatio

このルールは、トレーニング中に重みに対する更新の比率を追跡し、その比率が大きくなりすぎたり小さくなりすぎたりしていないかどうかを検出します。重みに対する更新の比率が large_threshold value より大きい場合、またはこの比率が small_threshold より小さい場合、ルールは True を返します。

トレーニングの条件は、更新が勾配に合致している場合に最適です。更新が大きすぎると、重みが最適値から遠ざかり、更新が小さすぎると収束が非常に遅くなります。このルールでは、2 つのトレーニングステップでウェイトを使用できるようにする必要があります。train.save_intervalに等しく設定する必要がありますnum_steps

WeightUpdateRatio ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

num_steps

テンソルが変更されたかどうかを判断するためにルールがチェックするステップの数。

重量比を比較するステップの数。値を渡さない場合、ルールはデフォルトで現在のステップと直前に保存したステップに対して実行されます。このパラメータ値を渡してデフォルトをオーバーライドすると、ステップsステップで>= s - num_steps

オプション

有効な値: 整数

デフォルト値: None

large_threshold

ルールがを返す前に、重みに対する更新の比率が取ることのできる最大値。True

オプション

有効な値: 浮動小数点

デフォルト値: 10.0

small_threshold

重みに対する更新の比率が取ることのできる最小値。この値を下回ると、ルールはを返します。True

オプション

有効な値: 浮動小数点

デフォルト値: 0.00000001

epsilon

重みの更新比率を計算するときに、Debugger が 0 で除算されないことを保証するために使用される小さな定数です。

オプション

有効な値: 浮動小数点

デフォルト値: 0.000000001

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.weight_update_ratio(), rule_parameters={ "num_steps": "100", "large_threshold": "10.0", "small_threshold": "0.00000001", "epsilon": "0.000000001" }, collections_to_save=[ CollectionConfig( name="weights", parameters={ "train.save_interval": "100" } ) ] ) ]

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

このルールは、XGBoost アルゴリズムでは使用できません。

AllZero

このルールは、テンソル値のすべてまたは指定された割合がゼロかどうかを検出します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

AllZero ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: None

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: None

threshold

このルールが呼び出されるためにゼロにする必要があるテンソル内の値の割合を指定します。

オプション

有効な値: 浮動小数点

デフォルト値:100 (パーセンテージ)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.all_zero(), rule_parameters={ "tensor_regex": ".*", "threshold": "100" }, collections_to_save=[ CollectionConfig( name="all", parameters={ "save_interval": "500" } ) ] ) ]

ClassImbalance

このルールは、クラス間のサンプリングの不均衡を測定し、不均衡がしきい値を超えた場合、または不均衡の結果として過度に多くの誤予測が発生した場合にエラーをスローします。

分類モデルには、トレーニングデータセット内のバランスの取れたクラスや、トレーニング中の適切な重み付けやサンプリングが必要です。このルールでは、次のチェックが実行されます。

  • これは、クラスごとの発生をカウントします。最小クラスと最大クラスの間のサンプル数の比率が threshold_imbalance より大きい場合、エラーがスローされます。

  • クラスごとの予測精度をチェックします。リサンプリングまたは重み付けが正しく適用されていない場合、トレーニングサンプルが多いクラスの精度は高くなりますが、トレーニングサンプルが少ないクラスの精度は低くなります。特定のクラスの誤予測の一部が threshold_misprediction を超える場合は、エラーがスローされます。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

ClassImbalance ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold_imbalance

最小クラスと最大クラスのサンプル数の間の許容可能な不均衡。このしきい値を超えると、エラーがスローされます。

オプション

有効な値: 浮動小数点

デフォルト値: 10

threshold_misprediction

各クラスに許容される誤予測の割合の制限。このしきいを超えると、エラーがスローされます。過小評価されているクラスは、このしきい値を超えるリスクが最も高くなります。

オプション

有効な値: 浮動小数点

デフォルト値: 0.7

samples

不均衡が評価される前に処理する必要があるラベルの数。ルールは、いくつかのステップの十分なサンプルが確認されるまで、トリガーされないことがあります。データセットに含まれるクラスの数が多いほど、この sample 数は大きくなります。

オプション

有効な値: 整数

デフォルト値: 500 (10 クラスを持つ MNIST のようなデータセットを仮定)

argmax

True の場合、np.argmax は予測テンソルに適用されます。各クラスの確率ベクトルがある場合に必要です。最も高い確率を持っているクラスを決定するために使用されます。

条件付き

有効な値: ブール値

デフォルト値: False

labels_regex

ラベルを含むテンソルの名前。

オプション

有効な値: 文字列

デフォルト値: ".*labels"

predictions_regex

予測を含むテンソルの名前。

オプション

有効な値: 文字列

デフォルト値: ".*predictions"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.class_imbalance(), rule_parameters={ "threshold_imbalance": "10", "threshold_misprediction": "0.7", "samples": "500", "argmax": "False", "labels_regex": ".*labels", "predictions_regex": ".*predictions" }, collections_to_save=[ CollectionConfig( name="custom_output_collection", parameters={ "include_regex": ".*labels|.*predictions", "save_interval": "500" } ) ] ) ]

LossNotDecreasing

このルールは、損失の値が適切な割合で減少していないことを検出します。これらの損失はスカラーでなければなりません。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

LossNotDecreasing ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: None

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用される正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: None

use_losses_collection

True に設定すると、コレクションが存在する場合に「losses」という名前のコレクションの損失が検索されます。

オプション

有効な値: ブール値

デフォルト値: True

num_steps

損失が減少しているかどうかをルールがチェックするまでの最小ステップ数。ルールの評価は num_steps ごとに行われます。ルールは、このステップの損失と、現在のステップの少なくとも num_steps つ後にあるステップの損失を比較します。例えば、損失を 3 ステップごとに保存し、num_steps を 10 に設定するとします。ステップ 21 では、ステップ 21 の損失がステップ 9 の損失と比較されます。損失がチェックされる次のステップはステップ 33 です。これは、ステップ 21 の 10 ステップ後はステップ 31 であり、ステップ 31 とステップ 32 では損失が保存されないためです。

オプション

有効な値: 整数

デフォルト値: 10

diff_percent

num_steps の間で損失が減少する最小パーセント差。

オプション

有効な値: 0.0 < 浮動小数点数 < 100

デフォルト値:0.1(パーセンテージ)

increase_threshold_percent

損失が発生した場合に、損失の増加が許可される最大しきい値の割合が増加しています

オプション

有効な値: 0 < 浮動小数点数 < 100

デフォルト値:5(パーセンテージ)

mode

ルールチェックのためにテンソル値を照会する Debugger モードの名前。このパラメータを渡さない場合、ルールはデフォルトで mode.EVALmode.TRAINmode.GLOBAL の順にチェックします。

オプション

有効な値: 文字列 (EVAL,TRAIN, またはGLOBAL)

デフォルト値: GLOBAL

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.loss_not_decreasing(), rule_parameters={ "tensor_regex": ".*", "use_losses_collection": "True", "num_steps": "10", "diff_percent": "0.1", "increase_threshold_percent": "5", "mode": "GLOBAL" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

Overfit

このルールは、検証とトレーニングの損失を比較することにより、モデルがトレーニングデータにオーバーフィットしているかどうかを検出します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

オーバーフィットを防ぐ標準的な方法は、モデルを正規化することです。

Overfit ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

start_step

検証とトレーニング損失の比較を開始するステップ。

オプション

有効な値: 整数

デフォルト値: 0

patience

モデルが過適合であるとみなされる前に、ratio_threshold が設定された値を超えることを許可されるステップの数。

オプション

有効な値: 整数

デフォルト値: 1

ratio_threshold

平均検証損失と平均トレーニング損失の間の差と平均トレーニング損失の最大比。patience 数のステップでこのしきい値を超えた場合、モデルはオーバーフィットし、ルールは True を返します。

オプション

有効な値: 浮動小数点

デフォルト値: 0.1

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.overfit(), rule_parameters={ "tensor_regex": ".*", "start_step": "0", "patience": "1", "ratio_threshold": "0.1" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "100", "eval.save_interval": "10" } ) ] ) ]

Overtraining

このルールは、モデルがオーバートレーニングされているかどうかを検出します。適切に動作したモデルでトレーニングを繰り返した後(トレーニングと検証損失の両方が減少)、モデルは損失関数の最小値に近づき、もはや改善しません。モデルがトレーニングを続けると、モデルのオーバーフィッティングを開始するため、検証の損失が増加し始める可能性があります。このルールは、モデルが改善されていないかどうかを判断するためのしきい値と条件を設定し、オーバートレーニングによるオーバーフィッティングの問題を防止します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

注記

Overtraining は、早期停止によって回避することができます。早期停止の詳細については、「トレーニングジョブを早期停止する」を参照してください。デバッガーでスポットトレーニングを使用する方法を示すサンプルについては、Amazon SageMaker デバッガーでスポットトレーニングを有効にする

Overtraining ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

patience_train

トレーニング損失が改善していないとみなされる前に待機するステップ数。

オプション

有効な値: 整数

デフォルト値: 5

patience_validation 検証の損失が改善していないとみなされる前に待機するステップ数。

オプション

有効な値: 整数

デフォルト値: 10

delta

エラーが新しい最適要件として見なされる前にどの程度改善すべきかを示す最小しきい値。

オプション

有効な値: 浮動小数点

デフォルト値: 0.01

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.overtraining(), rule_parameters={ "patience_train": "5", "patience_validation": "10", "delta": "0.01" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

SimilarAcrossRuns

このルールは、基本トライアルから収集されたテンソルと、別のトライアルからのテンソルを比較します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

SimilarAcrossRuns ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

other_trial

完了したトレーニングジョブ名。テンソルは、現在のbase_trial

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.similar_across_runs(), rule_parameters={ "other_trial": "<specify-another-job-name>", "collection_names": "losses", "tensor_regex": ".*" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

StalledTrainingRule

StalledTrainingRule は、トレーニングジョブに進行がないかどうかを検出し、ルールが起動するとトレーニングジョブを停止します。この規則では、テンソルを定期的に保存する必要があります。thresholdパラメータ。このルールは、新しいテンソルの監視を継続し、しきい値間隔ルールに対して新しいテンソルが放出されていない場合は起動されます。

StalledTrainingRule ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

停止したトレーニングの問題が発生するまで、ルールがテンソル出力を待機する時間を秒単位で定義するしきい値。デフォルト値は 1800 秒です。

オプション

有効な値: 整数

デフォルト値: 1800

stop_training_on_fire

に設定されている場合Trueでは、ベーストレーニングジョブが」threshold「秒。

オプション

有効な値: ブール値

デフォルト値: False

training_job_name_prefix

ベーストレーニングジョブ名のプレフィックス。もしstop_training_on_fireが true の場合、ルールは同じアカウント内でこのプレフィックスを持つ SageMaker トレーニングジョブを検索します。非アクティブが見つかった場合、ルールにはStopTrainingJobaction. 同じ接頭辞を持つ複数のジョブが見つかった場合、ルールは終了をスキップします。接頭辞は、各トレーニングジョブごとに一意に設定することが重要です。

オプション

有効な値: 文字列

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "1800", "stop_training_on_fire": "True", "training_job_name_prefix": "<specify-training-base-job-name>" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

TensorVariance

このルールは、テンソルの非常に高いまたは低い分散を検出します。テンソルの非常に高いまたは低い分散は、ニューロンの飽和につながり、ニューラルネットワークの学習能力を低下させる可能性があります。テンソルの分散が非常に高いと、最終的にテンソルの爆発につながる可能性があります。このルールを使用すると、このような問題を早期に検出できます。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

TensorVariance ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

max_threshold

テンソル分散の上限のしきい値。

オプション

有効な値: 浮動小数点

デフォルト値: なし

min_threshold

テンソル分散の下限のしきい値。

オプション

有効な値: 浮動小数点

デフォルト値: なし

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.tensor_variance(), rule_parameters={ "collection_names": "weights", "max_threshold": "10", "min_threshold": "0.00001", }, collections_to_save=[ CollectionConfig( name="weights", parameters={ "save_interval": "500" } ) ] ) ]

UnchangedTensor

このルールは、テンソルがステップ間で変化していないことを検出します。

このルールは、allcloseメソッドを使用して、テンソルが変更されていないかどうかをチェックします。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

UnchangedTensor ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

collection_names

ルールが検査するテンソルのコレクション名のリスト。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: なし

num_steps

テンソルが変更されたかどうかを判断するためにルールがチェックするステップの数。

これにより、使用可能な最後の num_steps がチェックされます。ステップの数は連続している必要はありません。num_steps が 2 の場合、ステップ s では必ずしも s-1 と s をチェックするとは限りません。s-1 がない場合は、最後の使用可能なステップが s とともにチェックされます。この場合、使用可能な最後のステップが現在のステップでチェックされます。

オプション

有効な値: 整数

デフォルト値: 3

rtol

numpy.allclose メソッドに渡される相対許容誤差のパラメータ。

オプション

有効な値: 浮動小数点

デフォルト値: 1e-05

atol

numpy.allclose メソッドに渡される絶対許容誤差のパラメータ。

オプション

有効な値: 浮動小数点

デフォルト値: 1e-08

equal_nan

NaN を等しいものとして比較するかどうかについて。True の場合、入力配列 a 内の NaN は、出力配列の入力配列 b の NaN に等しいと見なされます。このパラメータは、numpy.allclose メソッドに渡されます。

オプション

有効な値: ブール値

デフォルト値: False

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.unchanged_tensor(), rule_parameters={ "collection_names": "losses", "tensor_regex": "", "num_steps": "3", "rtol": "1e-05", "atol": "1e-08", "equal_nan": "False" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

CheckInputImages

このルールは、入力イメージが正しく正規化されているかどうかをチェックします。具体的には、サンプルデータの平均がゼロからのしきい値よりも大きく異なるかどうかを検出します。多くのコンピュータビジョンモデルでは、入力データの平均と単位分散がゼロである必要があります。

このルールは、ディープラーニングアプリケーションに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

CheckInputImages ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold_mean

入力データの平均値が 0 からどれだけ異なるかを定義するしきい値。

オプション

有効な値: 浮動小数点

デフォルト値: 0.2

threshold_samples

エラーがスローされる前にサンプリングする必要があるイメージの数。値が低すぎると、データセット平均の推定値が不正確になります。

オプション

有効な値: 整数

デフォルト値: 500

regex

入力データテンソルの名前。

オプション

有効な値: 文字列

デフォルト値: ".*hybridsequential0_input_0" (HybridSequential を使用した Apache MXNet モデルの入力テンソルの名前)

channel

入力テンソルシェイプ配列におけるカラーチャネルの位置。

オプション

有効な値: 整数

デフォルト値: 1 (たとえば、MXNet は (batch_size, channel, height, width) 形式の入力データを想定しています)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.check_input_images(), rule_parameters={ "threshold_mean": "0.2", "threshold_samples": "500", "regex": ".*hybridsequential0_input_0", "channel": "1" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection", parameters={ "include_regex": ".*hybridsequential0_input_0" "save_interval": "500" } ) ] ) ]

NLPSequenceRatio

このルールは、パフォーマンスの最適化に役立つ入力シーケンスの残りの部分を考慮して、特定のトークンの比率を計算します。たとえば、入力シーケンスの文末 (EOS) トークンのパディングの割合を計算できます。EOS トークンの数が多すぎる場合は、代替バケット方針を実行する必要があります。また、入力シーケンス内の未知のトークンの割合を計算することもできます。未知語の数が多すぎる場合は、代替語彙を使用することができます。

このルールは、ディープラーニングアプリケーションに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

NLPSequenceRatio ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

tensor_regex

この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。

オプション

有効な値: 文字列のリストまたはカンマ区切りの文字列

デフォルト値: ".*embedding0_input_0" (埋め込みをネットワークの初期レイヤと仮定)

token_values

トークンの数値のリストの文字列。たとえば、「3、0」のように指定します。

オプション

有効な値: カンマ区切りの数値文字列

デフォルト値: 0

token_thresholds_percent

token_values に対応するしきい値のリスト (パーセンテージ) の文字列。たとえば、「50.0、50.0」のように指定します。

オプション

有効な値: カンマ区切りの浮動小数点数の文字列

デフォルト値: "50"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.nlp_sequence_ratio(), rule_parameters={ "tensor_regex": ".*embedding0_input_0", "token_values": "0", "token_thresholds_percent": "50" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection", parameters={ "include_regex": ".*embedding0_input_0" } ) ] ) ]

Confusion

このルールは、分類問題に対する混同行列の良さを評価します。

これは、サイズ category_no*category_no のマトリックスを作成し、(labelspredictions) ペアから来るデータを入力します。(labelspredictions) ペアごとに、confusion[labels][predictions] のカウント は 1 ずつ増加します。マトリックスが完全に入力されると、対角値と非対角値の比率は次のように評価されます。

  • 対角線上の要素の場合: confusion[i][i]/sum_j(confusion[j][j])>=min_diag

  • 非対角線上の要素の場合: confusion[j][i])/sum_j(confusion[j][i])<=max_off_diag

このルールは、XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

Confusion ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

category_no

カテゴリの数。

オプション

有効な値: 整数

デフォルト値: "None"

labels

-labelsテンソルコレクションまたは真ラベルの 1-d ベクトルです。

オプション

有効な値: 文字列

デフォルト値: "labels"

predictions

-predictionsテンソルコレクションまたは推定ラベルの 1-d ベクトルです。

オプション

有効な値: 文字列

デフォルト値: "predictions"

labels_collection

ルールは、labels についてこのコレクションのテンソルを検査します。

オプション

有効な値: 文字列

デフォルト値: "labels"

predictions_collection

ルールは、predictions についてこのコレクションのテンソルを検査します。

オプション

有効な値: 文字列

デフォルト値: "predictions"

min_diag

対角線上のデータの比率の最小しきい値。

オプション

有効な値:0≤ float≤1

デフォルト値: 0.9

max_off_diag

対角線上のデータの比率の最大しきい値。

オプション

有効な値:0≤ float≤1

デフォルト値: 0.1

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.confusion(), rule_parameters={ "category_no": "10", "labels": "labels", "predictions": "predictions", "labels_collection": "labels", "predictions_collection": "predictions", "min_diag": "0.9", "max_off_diag": "0.1" }, collections_to_save=[ CollectionConfig( name="labels", parameters={ "save_interval": "500" } ), CollectionConfig( name="predictions", parameters={ "include_regex": "500" } ) ] ) ]
注記

このルールでは、オプションのパラメータ値が指定されていない場合、デフォルト値が推測されます。

FeatureImportanceOverweight

このルールは、ステップごとに最大 n 個のフィーチャの重要度の重みを累積し、しきい値を超えないようにします。たとえば、上位 3 つのフィーチャのしきい値を設定して、モデルの合計重みの 80% を超えないようにすることができます。

このルールは、XGBoost アルゴリズムに対してのみ有効です。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

フィーチャ重要度Overfit ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

累積合計の比率のしきい値を定義します。n最大フィーチャー 番号nで定義します。nfeaturesパラメータ。

オプション

有効な値: 浮動小数点

デフォルト値: 0.8

nfeatures

最大フィーチャの数です。

オプション

有効な値: 整数

デフォルト値: 3

tensor_regex

テンソルの正規表現 (regex) は、分析するルールに名前を付けます。

オプション

有効な値: 文字列

デフォルト値: ".*feature_importance/weight"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.feature_importance_overweight(), rule_parameters={ "threshold": "0.8", "nfeatures": "3", "tensor_regex": ".*feature_importance/weight" }, collections_to_save=[ CollectionConfig( name="feature_importance", parameters={ "save_interval": "500" } ) ] ) ]

TreeDepth

このルールは、XGBoost モデルのツリーの深さを測定します。XGBoost は、分割が損失を改善しない場合に分割を拒否します。これにより、トレーニングが正規化されます。その結果、ツリーは、によって定義されたほど深く成長しない可能性があります。depthパラメータ。

このルールは、XGBoost アルゴリズムに対してのみ有効です。

組み込みルールを設定およびデプロイする例については、「デバッガ組み込みルールの設定」を参照してください。

TreeDepth ルールのパラメータの説明
パラメータ名 説明
base_trial

基本トライアルジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

depth

ツリーの深さ。ツリーの深さは、最大のノード ID の 2 対数を計算することによって得られます。

オプション

有効な値: 浮動小数点

デフォルト値: 4

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.tree_depth(), rule_parameters={ "depth": "4" }, collections_to_save=[ CollectionConfig( name="tree", parameters={ "save_interval": "500" } ) ] ) ]