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

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

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

Amazon Debugger が提供する SageMaker デバッガーの組み込みルールを使用して、モデルのトレーニング中に収集されたメトリクスとテンソルを分析します。デバッガーの組み込みルールは、トレーニングジョブの成功に不可欠なさまざまな共通条件をモニタリングします。Amazon SageMaker Python SDK または低レベル SageMaker APIオペレーションを使用して、組み込みルールを呼び出すことができます。組み込みルールの使用に追加料金はかかりません。請求の詳細については、「Amazon の SageMaker 料金」ページを参照してください。

注記

トレーニングジョブにアタッチできる組み込みルールの最大数は 20 です。 SageMaker デバッガーは、組み込みルールを完全に管理し、トレーニングジョブを同期的に分析します。

重要

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

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

デバッガールール

次のルールは、Rule.sagemaker クラスメソッド使って呼び出せるデバッガーの組み込みルールです。

トレーニングレポートを生成するためのデバッガー組み込みルール

有効範囲 組み込みルール
トレーニングジョブの SageMaker XGboostトレーニングレポート

モデルトレーニングデータ (出力テンソル) をデバッグするためのデバッガー組み込みルール

有効範囲 組み込みルール
深層学習フレームワーク (TensorFlow、MXNet、および PyTorch)
深層学習フレームワーク (TensorFlow、MXNet、および PyTorch) とXGBoostアルゴリズム
ディープラーニングアプリケーション
XGBoost アルゴリズム

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

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ 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 = [ 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 パラメータで利用可能なキーを見つけるに、パラメータの説明テーブルを参照してください。

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

CreateXgboostReport

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

  • hyperparameters - 最初のステップで保存します

  • metrics - 5 ステップごとに損失と精度を保存します

  • feature_importance - 5 ステップごとに保存します

  • predictions - 5 ステップごとに保存します

  • labels - 5 ステップごとに保存します

CreateXgboostReport ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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

DeadRelu

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

tensor_regex

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

オプション

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

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

threshold_inactivity

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

オプション

有効な値: 浮動小数点数

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

threshold_layer

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

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

オプション

有効な値: 浮動小数点数

デフォルト値: 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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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_intervalnum_steps と等しくなるように設定する必要があります。

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

パラメータ名 説明
base_trial

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

必須

有効な値: 文字列

num_steps

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

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

オプション

有効な値: 整数

デフォルト値: None

large_threshold

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

オプション

有効な値: 浮動小数点数

デフォルト値: 10.0

small_threshold

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

オプション

有効な値: 浮動小数点数

デフォルト値: 0.00000001

epsilon

重みの更新比率を計算する際、デバッガーがゼロで除算しないようにするために使用される小さな定数。

オプション

有効な値: 浮動小数点数

デフォルト値: 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) の 1 つ、またはXGBoostアルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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) の 1 つ、またはXGBoostアルゴリズムに適用できます。

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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) の 1 つ、またはXGBoostアルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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

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

オプション

有効な値: 文字列 (EVALTRAIN、または 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) の 1 つ、またはXGBoostアルゴリズムに適用できます。

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

注記

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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) の 1 つ、またはXGBoostアルゴリズムに適用できます。

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

注記

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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) の 1 つ、またはXGBoostアルゴリズムに適用できます。

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

other_trials

現在の base_trial から収集したテンソルと比較するテンソルの出力元の完了トレーニングジョブ名。

必須

有効な値: 文字列

collection_names

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

オプション

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

デフォルト値: なし

tensor_regex

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

オプション

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

デフォルト値: なし

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

StalledTrainingRule

StalledTrainingRule は、トレーニングジョブに進行状況がないかどうかを検出し、ルールが起動するとトレーニングジョブを停止します。このルールは、threshold パラメータで定義された時間間隔で、定期的にテンソルが保存されていることを必要とします。このルールは新しいテンソルをモニタリングし続け、新しいテンソルがしきい値間隔で出力されなかった場合、ルールを発動します。

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

threshold

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

オプション

有効な値: 整数

デフォルト値: 1800

stop_training_on_fire

True に設定されている場合、基本トレーニングジョブが「threshold」秒でテンソルを出力するかモニタリングします。

オプション

有効な値: ブール値

デフォルト値: False

training_job_name_prefix

基本トレーニングジョブ名のプレフィックス。stop_training_on_fire が true の場合、ルールは同じアカウントのこのプレフィックスを持つ SageMaker トレーニングジョブを検索します。不活動状態が検出された場合、ルールは StopTrainingJob アクションを実行します。同じプレフィックスを持つジョブが複数見つかった場合、ルールは終了をスキップすることに注意してください。プレフィックスは、トレーニングジョブごとに一意に設定することが重要です。

オプション

有効な値: 文字列

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) の 1 つ、またはXGBoostアルゴリズムに適用できます。collection_names または tensor_regex パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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

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

このルールは、numpy.allclose メソッドを実行し、テンソルが変わっていないかどうかをチェックします。

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

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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

NaNs 等しく比較するかどうか。 NaNs の場合True、入力配列 a は、出力配列 NaNs の入力配列 b で と等しいと見なされます。このパラメータは、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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

threshold_mean

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

オプション

有効な値: 浮動小数点数

デフォルト値: 0.2

threshold_samples

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

オプション

有効な値: 整数

デフォルト値: 500

regex

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

オプション

有効な値: 文字列

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

channel

入力テンソル形状配列におけるカラーチャネルの位置。

オプション

有効な値: 整数

デフォルト値: 1 (例えば、 は入力データを (batch_size、 channel、 height、 width) の形式でMXNet想定)

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

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

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

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

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

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

category_no

カテゴリの数。

オプション

有効な値: 2 以上の整数

デフォルト値: "None"

labels

labels テンソルコレクションまたは正解ラベルの 1 次元ベクトル。

オプション

有効な値: 文字列

デフォルト値: "labels"

predictions

predictions テンソルコレクションまたは推定ラベルの 1 次元ベクトル。

オプション

有効な値: 文字列

デフォルト値: "predictions"

labels_collection

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

オプション

有効な値: 文字列

デフォルト値: "labels"

predictions_collection

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

オプション

有効な値: 文字列

デフォルト値: "predictions"

min_diag

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

オプション

有効な値: 0≤ 浮動小数点数 ≤1

デフォルト値: 0.9

max_off_diag

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

オプション

有効な値: 0≤ 浮動小数点数 ≤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アルゴリズムに対してのみ有効です。

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

FeatureImportanceOverweight ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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 ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

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" } ) ] ) ]