Amazon SageMaker Debugger によって管理される組み込みプロファイラールールを使用する
Amazon SageMaker Debugger の組み込みプロファイラールールは、モデルのトレーニング中に収集されたシステムメトリクスとフレームワークオペレーションを分析します。Debugger には、トレーニング用のコンピューティングリソースとオペレーションを監視し、異常を検出するためのルールを設定するのに役立つ ProfilerRule
API オペレーションが用意されています。例えば、プロファイリングルールは、CPU のボトルネック、過度の I/O 待機時間、GPU ワーカー間のワークロードの不均衡、コンピュートリソースの未使用などの計算上の問題があるかどうかを検出するのに役立ちます。使用可能な組み込みプロファイリングルールの完全なリストについては、「Debugger の組み込みプロファイラールールのリスト」を参照してください。次のトピックでは、Debugger の組み込みルールをデフォルトのパラメータ設定とカスタムのパラメータ値で使用する方法を紹介します。
注記
組み込みルールは Amazon SageMaker の処理コンテナに用意され、SageMaker Debugger によって追加料金なしで完全に管理されます。請求の詳細については、「Amazon SageMaker の料金
SageMaker Debugger の組み込みプロファイラールールをデフォルトのパラメータ設定で使用する
SageMaker Debugger の組み込みルールを推定器に追加するには、rules
リストオブジェクトを設定する必要があります。次のサンプルコードは、SageMaker Debugger の組み込みルールをリストする基本構造を示しています。
from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules=[ ProfilerRule.sagemaker(rule_configs.
BuiltInProfilerRuleName_1
()), ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_2
()), ... ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_n
()), ... # You can also append more debugging rules in the Rule.sagemaker(rule_configs.*()) format. ] estimator=Estimator( ... rules=rules )
組み込みルールの完全なリストについては、「Debugger の組み込みプロファイラールールのリスト」を参照してください。
プロファイリングルールを使用してトレーニングジョブの計算パフォーマンスと進行状況を調べるには、SageMaker Debugger の ProfilerReport
ルールを追加します。このルールは Debugger ProfilerRule ProfilerRule
ファミリーに含まれるすべての組み込みルールを有効にします。さらに、このルールは集約されたプロファイリングレポートを生成します。詳細については、「SageMaker Debugger を使用して生成されたプロファイリングレポート」を参照してください。次のコードを使用して、プロファイリングレポートルールをトレーニング推定器に追加できます。
from sagemaker.debugger import Rule, rule_configs rules=[ ProfilerRule.sagemaker(rule_configs.
ProfilerReport
()) ]
ProfilerReport
ルールを使用してトレーニングジョブを開始すると、Debugger は 500 ミリ秒ごとにリソース使用状況データを収集します。デバッガーは、リソース使用率を分析して、モデルにボトルネックの問題があるかどうかを特定します。ルールがトレーニングの異常を検出すると、ルールの評価ステータスが IssueFound
に変わります。Amazon CloudWatch Events と AWS Lambda を使用して、トレーニングの問題の通知やトレーニングジョブの停止などの自動アクションを設定できます。詳細については、「Amazon SageMaker Debugger ルールに基づくアクション」を参照してください。
Debugger の組み込みプロファイラールールをカスタムパラメータ値で使用する
組み込みルールのパラメータ値を調整し、テンソルコレクションの正規表現をカスタマイズする場合は、ProfilerRule.sagemaker
および Rule.sagemaker
クラスメソッドの base_config
および rule_parameters
パラメータを設定します。Rule.sagemaker
クラスメソッドの場合、collections_to_save
パラメータを使用してテンソルコレクションをカスタマイズすることもできます。CollectionConfig
クラスの使用方法については、「CollectionConfig API を使用してテンソルコレクションを設定する」を参照してください。
パラメータ値をカスタマイズするには、組み込みルールに次の設定テンプレートを使用します。好きなようにルールパラメータを変更することで、開始されるルールの感度を調整できます。
-
base_config
引数は、組み込みルールメソッドを呼び出す場所です。 -
rule_parameters
引数は、Debugger の組み込みプロファイラールールのリスト にリストされている組み込みルールのデフォルトのキーバリューを調整するためのものです。
デバッガールールクラス、メソッド、パラメータの詳細については、Amazon SageMaker Python SDK
from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig rules=[ ProfilerRule.sagemaker( base_config=rule_configs.
BuiltInProfilerRuleName
(), rule_parameters={ "key
": "value
" } ) ]
各ルールのパラメータの説明と値のカスタマイズ例については、「Debugger の組み込みプロファイラールールのリスト」を参照してください。
CreateTrainingJob
API を使用した Debugger の組み込みルールの低レベル JSON の設定については、「SageMaker API を使って Debugger を設定する」を参照してください。