翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
デバッガーの組み込みルールのリスト
Amazon Debugger が提供する SageMaker デバッガーの組み込みルールを使用して、モデルのトレーニング中に収集されたメトリクスとテンソルを分析できます。以下のリストには、デバッガールールをまとめています。各組み込みルールの情報と、設定およびデプロイする方法の例が記載されています。
デバッガーの組み込みルールは、トレーニングジョブの成功に不可欠なさまざまな共通条件をモニタリングします。Amazon SageMaker Python SDK
組み込みルールの使用に追加料金はかかりません。請求の詳細については、Amazon SageMaker AI 料金
注記
トレーニングジョブにアタッチできる組み込みルールの最大数は 20 です。 SageMaker デバッガーは、組み込みルールを完全に管理し、トレーニングジョブを同期的に分析します。
重要
新しいデバッガー機能を使用するには、Python SageMaker 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 AI トレーニングジョブの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
パラメータで利用可能なキーを見つけるに、パラメータの説明テーブルを参照してください。
パラメータの説明テーブルの下に、各組み込みルールのサンプル設定コードが記載されています。
-
デバッガーの組み込みルールの詳細な説明と使用例については、「Debugger の組み込みルールのサンプルコード」を参照してください。
-
低レベル SageMaker APIオペレーションで組み込みルールを使用する詳細な手順については、「」を参照してくださいを使用してデバッガーを設定する SageMaker API。
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 |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: |
threshold_inactivity |
ReLU が死状態と見なされるアクティビティのレベルを定義します。ReLU は、トライアルの開始時にアクティブになり、その後、トレーニングプロセス中にゆっくりと死状態になる場合があります。ReLU が オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_layer |
レイヤーeLUs 内の非アクティブな R の割合が より大きい レイヤーeLUs 内の非アクティブな R の割合が より小さい オプション 有効な値: 浮動小数点数 デフォルト値: |
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
" } ) ] ) ]
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
このルールはXGBoostアルゴリズムでは使用できません。
ExplodingTensor
このルールは、トレーニング中に放出されたテンソルが無限または NaN (非数) のいずれかの非有限値を持つかどうかを検出します。非有限値が検出された場合、ルールは True
を返します。
ExplodingTensor ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
collection_names |
ルールが検査するテンソルのコレクション名のリスト。 オプション 有効な値: 文字列 デフォルト値: |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列 デフォルト値: |
only_nan |
オプション デフォルト値: |
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
" } ) ] ) ]
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
このルールはXGBoostアルゴリズムでは使用できません。
PoorWeightInitialization
このルールは、モデルパラメータの初期化が不十分であるかどうかを検出します。
適切な初期化を行うことで、ニューラルネットワークの重みと勾配の対称性が崩れ、レイヤー間で相応の活性化分散が維持されます。さもなければ、ニューラルネットワークは効果的に学習しません。Xavier のようなイニシャライザは、アクティベーション間で分散を一定に保つことを目的としています。これは、非常に深いニューラルネットのトレーニングに特に関連しています。初期化が小さすぎると、勾配が消失する可能性があります。初期化が大きすぎると、勾配が爆発する可能性があります。このルールは、レイヤー間のアクティベーション入力の分散、勾配の分布、および初期ステップの損失収束をチェックし、ニューラルネットワークの初期化が不十分であるかどうかを判断します。
PoorWeightInitialization ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
activation_inputs_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列 デフォルト値: |
threshold |
レイヤごとの重みの最小分散と最大分散の比率が、あるステップで オプション 有効な値: 浮動小数点数 デフォルト値: |
distribution_range |
勾配分布の 5 パーセンタイルと 95 パーセンタイルの最小差が オプション 有効な値: 浮動小数点数 デフォルト値: |
patience |
損失が減少しなくなったと見なされるまで待機するステップの数。 オプション 有効な値: 整数 デフォルト値: |
steps |
このルールが分析するステップの数。通常は、最初の数回のイテレーションのみをチェックする必要があります。 オプション 有効な値: 浮動小数点数 デフォルト値: |
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
" } ) ] ) ]
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
このルールはXGBoostアルゴリズムでは使用できません。
SaturatedActivation
このルールは、タンとシグモイド活性化層が飽和状態になっているかどうかを検出します。活性化層は、レイヤの入力が活性化関数の最大値または最小値に近づくと飽和します。タンおよびシグモイド活性化関数の最小値と最大値は、それぞれの min_threshold
および max_thresholds
値によって定義されます。ノードのアクティビティが threshold_inactivity
の割合を下回ると、そのノードは飽和していると見なされます。ノードの threshold_layer
パーセント以上が飽和している場合、ルールは True
を返します。
SaturatedActivation ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
collection_names |
ルールが検査するテンソルのコレクション名のリスト。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列 デフォルト値: |
threshold_tanh_min |
タン活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_tanh_max |
タン活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_sigmoid_min |
シグモイド活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_sigmoid_max |
シグモイド活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_inactivity |
活性化層が飽和していると見なされる非アクティブの割合。活性化は、トライアルの開始時にアクティブになり、その後、トレーニングプロセス中に徐々にアクティブでなくなる場合があります。 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_layer |
レイヤー内の飽和活性化の数が、 レイヤー内の飽和活性化の数が、 オプション 有効な値: 浮動小数点数 デフォルト値: |
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
" } ) ] ) ]
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
このルールはXGBoostアルゴリズムでは使用できません。
VanishingGradient
このルールは、トライアルの勾配が極端に小さくなるか、またはゼロになっていないかどうかを検出します。勾配の絶対値の平均が指定された threshold
を下回ると、ルールは True
を返します。
VanishingGradient ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold |
勾配が消失していると判断される値。 オプション 有効な値: 浮動小数点数 デフォルト値: |
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
" } ) ] ) ]
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
このルールはXGBoostアルゴリズムでは使用できません。
WeightUpdateRatio
このルールは、トレーニング中に重みに対する更新の比率を追跡し、その比率が大きくなりすぎたり小さくなりすぎたりしていないかどうかを検出します。重みに対する更新の比率が large_threshold value
より大きい場合、またはこの比率が small_threshold
より小さい場合、ルールは True
を返します。
トレーニングの条件は、更新が勾配に比例している場合に最適です。更新が大きすぎると、重みが最適値から遠ざかり、更新が小さすぎると収束が非常に遅くなります。このルールでは、2 つのトレーニングステップで重みを使用できるようにする必要があるため、train.save_interval
を num_steps
と等しくなるように設定する必要があります。
WeightUpdateRatio ルールのパラメータの説明
パラメータ名 | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
num_steps |
テンソルが変更されたかどうかを判断するためにルールがチェックするステップの数。 重量比を比較するステップの数。値を渡さない場合、ルールはデフォルトで現在のステップと直前に保存したステップに対して実行されます。このパラメータの値を渡してデフォルトをオーバーライドすると、ステップ オプション 有効な値: 整数 デフォルト値: |
large_threshold |
ルールが オプション 有効な値: 浮動小数点数 デフォルト値: |
small_threshold |
重みに対する更新の比率が取ることのできる最小値。この値を下回ると、ルールは オプション 有効な値: 浮動小数点数 デフォルト値: |
epsilon |
重みの更新比率を計算する際、デバッガーがゼロで除算しないようにするために使用される小さな定数。 オプション 有効な値: 浮動小数点数 デフォルト値: |
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
" } ) ] ) ]
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
このルールはXGBoostアルゴリズムでは使用できません。
AllZero
このルールは、テンソル値のすべてまたは指定された割合がゼロかどうかを検出します。
このルールは、サポートされている深層学習フレームワーク (TensorFlow、MXNet、および PyTorch) のいずれか、またはXGBoostアルゴリズムに適用できます。collection_names
または tensor_regex
パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
AllZero ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
collection_names |
ルールが検査するテンソルのコレクション名のリスト。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: |
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アルゴリズムに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
ClassImbalance ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold_imbalance |
最小クラスと最大クラスのサンプル数の間の許容可能な不均衡。このしきい値を超えると、エラーがスローされます。 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_misprediction |
各クラスに許容される誤予測の割合の制限。このしきいを超えると、エラーがスローされます。過小評価されているクラスは、このしきい値を超えるリスクが最も高くなります。 オプション 有効な値: 浮動小数点数 デフォルト値: |
samples |
不均衡が評価される前に処理する必要があるラベルの数。ルールは、いくつかのステップの十分なサンプルが確認されるまで、トリガーされないことがあります。データセットに含まれるクラスの数が多いほど、この オプション 有効な値: 整数 デフォルト値: |
argmax |
条件付き 有効な値: ブール値 デフォルト値: |
labels_regex |
ラベルを含むテンソルの名前。 オプション 有効な値: 文字列 デフォルト値: |
predictions_regex |
予測を含むテンソルの名前。 オプション 有効な値: 文字列 デフォルト値: |
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
パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
LossNotDecreasing ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
collection_names |
ルールが検査するテンソルのコレクション名のリスト。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用される正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: |
use_losses_collection |
オプション 有効な値: ブール値 デフォルト値: |
num_steps |
損失が減少しているかどうかをルールがチェックするまでの最小ステップ数。ルールの評価は オプション 有効な値: 整数 デフォルト値: |
diff_percent |
オプション 有効な値: デフォルト値: |
increase_threshold_percent |
損失が増加してきている場合に、損失の増加が許容される最大しきい値の割合 オプション 有効な値: デフォルト値: |
mode |
ルールチェックのためにテンソル値を照会するデバッガーモードの名前。このパラメータを渡さない場合、ルールはデフォルトで オプション 有効な値: 文字列 ( デフォルト値: |
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アルゴリズムに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
オーバーフィットを防ぐ標準的な方法は、モデルを正規化することです。
Overfit ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし |
start_step |
検証とトレーニング損失の比較を開始するステップ。 オプション 有効な値: 整数 デフォルト値: |
patience |
モデルが過適合であるとみなされる前に、 オプション 有効な値: 整数 デフォルト値: |
ratio_threshold |
平均検証損失と平均トレーニング損失の間の差と平均トレーニング損失の最大比。 オプション 有効な値: 浮動小数点数 デフォルト値: |
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アルゴリズムに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
注記
Overtraining は、早期停止によって回避することができます。早期停止の詳細については、「トレーニングジョブを早期停止する」を参照してください。デバッガーでスポットトレーニングを使用する方法を示す例については、「Amazon SageMaker Debugger でスポットトレーニングを有効にする
Overtraining ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
patience_train |
トレーニング損失が改善していないとみなされる前に待機するステップ数。 オプション 有効な値: 整数 デフォルト値: |
patience_validation |
検証の損失が改善していないとみなされる前に待機するステップ数。 オプション 有効な値: 整数 デフォルト値: |
delta |
エラーが新しい最適要件として見なされる前にどの程度改善すべきかを示す最小しきい値。 オプション 有効な値: 浮動小数点数 デフォルト値: |
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アルゴリズムに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
SimilarAcrossRuns ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
other_trials |
現在の 必須 有効な値: 文字列 |
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 秒です。 オプション 有効な値: 整数 デフォルト値: |
stop_training_on_fire |
オプション 有効な値: ブール値 デフォルト値: |
training_job_name_prefix |
基本トレーニングジョブ名のプレフィックス。 オプション 有効な値: 文字列 |
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
パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
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) のいずれか、またはXGBoostアルゴリズムに適用できます。collection_names
または tensor_regex
パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
UnchangedTensor ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
collection_names |
ルールが検査するテンソルのコレクション名のリスト。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし |
num_steps |
テンソルが変更されたかどうかを判断するためにルールがチェックするステップの数。 これにより、使用可能な最後の オプション 有効な値: 整数 デフォルト値: |
rtol |
オプション 有効な値: 浮動小数点数 デフォルト値: |
atol |
オプション 有効な値: 浮動小数点数 デフォルト値: |
equal_nan |
を等しい NaNs ものとして比較するかどうか。の場合 オプション 有効な値: ブール値 デフォルト値: |
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
このルールは、入力イメージが正しく正規化されているかどうかをチェックします。具体的には、サンプルデータの平均がゼロからのしきい値よりも大きく異なるかどうかを検出します。多くのコンピュータビジョンモデルでは、入力データの平均と単位分散がゼロである必要があります。
このルールは、ディープラーニングアプリケーションに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
CheckInputImages ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold_mean |
入力データの平均値が 0 からどれだけ異なるかを定義するしきい値。 オプション 有効な値: 浮動小数点数 デフォルト値: |
threshold_samples |
エラーがスローされる前にサンプリングする必要があるイメージの数。値が低すぎると、データセット平均の推定値が不正確になります。 オプション 有効な値: 整数 デフォルト値: |
regex |
入力データテンソルの名前。 オプション 有効な値: 文字列 デフォルト値: |
channel |
入力テンソル形状配列におけるカラーチャネルの位置。 オプション 有効な値: 整数 デフォルト値: |
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 トークンの数が多すぎる場合は、代替バケット戦略を実行する必要があります。また、入力シーケンス内の未知のトークンの割合を計算することもできます。未知語の数が多すぎる場合は、代替語彙を使用することができます。
このルールは、ディープラーニングアプリケーションに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
NLPSequenceRatio ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
tensor_regex |
この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 オプション 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: |
token_values |
トークンの数値のリストの文字列。たとえば、「3、0」のように指定します。 オプション 有効な値: カンマ区切りの数値文字列 デフォルト値: |
token_thresholds_percent |
各 オプション 有効な値: カンマ区切りの浮動小数点数の文字列。 デフォルト値: |
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
のマトリックスを作成し、(labels
、predictions
) ペアから来るデータを入力します。(labels
、predictions
) ペアごとに、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アルゴリズムに適用できます。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
Confusion ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
category_no |
カテゴリの数。 オプション 有効な値: 2 以上の整数 デフォルト値: |
labels |
オプション 有効な値: 文字列 デフォルト値: |
predictions |
オプション 有効な値: 文字列 デフォルト値: |
labels_collection |
ルールは、 オプション 有効な値: 文字列 デフォルト値: |
predictions_collection |
ルールは、 オプション 有効な値: 文字列 デフォルト値: |
min_diag |
対角線上のデータの比率の最小しきい値。 オプション 有効な値: デフォルト値: |
max_off_diag |
非対角線上のデータの比率の最大しきい値。 オプション 有効な値: デフォルト値: |
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、アルゴリズムに対してのみ有効です。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
FeatureImportanceOverweight ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold |
上位 オプション 有効な値: 浮動小数点数 デフォルト値: |
nfeatures |
上位の特徴の数。 オプション 有効な値: 整数 デフォルト値: |
tensor_regex |
ルールが分析するテンソル名の正規表現 (regex)。 オプション 有効な値: 文字列 デフォルト値: |
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、アルゴリズムに対してのみ有効です。
組み込みルールを設定およびデプロイする例については、「Debugger の組み込みルールの設定方法」を参照してください。
TreeDepth ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
depth |
ツリーの深さ。ツリーの深さは、最大のノード ID の 2 対数を計算することによって得られます。 オプション 有効な値: 浮動小数点数 デフォルト値: |
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
" } ) ] ) ]