デバッガールールを設定するためのノートブックとコードのサンプル例 - Amazon SageMaker

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

デバッガールールを設定するためのノートブックとコードのサンプル例

以下のセクションでは、デバッガールールを使用して SageMaker トレーニングジョブをモニタリングする方法のノートブックとコードサンプルについて説明します。

デバッガー組み込みルールのサンプルノートブック

次のノートブック例は、Amazon でトレーニングジョブを実行するときにデバッガーの組み込みルールを使用する方法を示しています SageMaker。

SageMaker Studio でサンプルノートブックを実行中に、Studio Experiment List タブで作成されたトレーニングジョブトライアルを確認できます。例えば、次のスクリーンショットに示すように、現在のトレーニングジョブの [Describe Trial Component] (トライアルコンポーネントの説明) ウィンドウを見つけて開くことができます。[Debugger] (デバッガー) タブでは、デバッガールール vanishing_gradient()loss_not_decreasing() が並列でトレーニングセッションをモニタリングしているかどうかをチェックできます。Studio UI でトレーニングジョブのトライアルコンポーネントを検索する方法の詳細については、SageMaker 「Studio - View Experiments, Trials, and Trial Components」を参照してください。

SageMaker Studio でアクティブ化されたデバッガー組み込みルールを使用してトレーニングジョブを実行するイメージ

SageMaker 環境でデバッガー組み込みルールを使用する方法は 2 つあります。組み込みルールを準備どおりにデプロイするか、必要に応じてパラメータを調整します。次のトピックでは、組み込みルールの使用方法をサンプルコードで示します。

デバッガー組み込みルールのサンプルコード

次のコードサンプルは、Rule.sagemaker メソッドを使用してデバッガーの組み込みルールを設定する方法を示しています。実行する組み込みルールを指定するには、 rules_configsAPIオペレーションを使用して組み込みルールを呼び出します。デバッガーの組み込みルールとデフォルトのパラメータ値の完全なリストについては、「デバッガー組み込みルールのリスト」を参照してください。

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call built-in rules that you want to use. built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()) Rule.sagemaker(rule_configs.loss_not_decreasing()) ] # construct a SageMaker estimator with the Debugger built-in rules sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-built-in-rules-demo', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules ) sagemaker_estimator.fit()
注記

デバッガーの組み込みルールは、トレーニングジョブと並列で実行されます。1 つのトレーニングジョブに対する組み込みルールコンテナの最大数は 20 です。

デバッガールールクラス、メソッド、パラメータの詳細については、Amazon SageMaker Python SDKSageMaker 「デバッガールールクラス」を参照してください。

デバッガールールパラメータの調整方法の例については、次の「パラメータ変更でデバッガー組み込みルールを使用する」セクションを参照してください。

パラメータ変更でデバッガー組み込みルールを使用する

次のコード例は、パラメータを調整するための組み込みルールの構造を示しています。この例では、stalled_training_rule は、50 ステップごとにトレーニングジョブから、10 ステップごとに評価ステージから losses テンソルコレクションを収集します。トレーニングプロセスが停滞し始め、テンソル出力を 120 秒間収集しない場合、stalled_training_rule はトレーニングジョブを停止します。

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call the built-in rules and modify the CollectionConfig parameters base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) built_in_rules_modified=[ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ 'threshold': '120', 'training_job_name_prefix': base_job_name_prefix, 'stop_training_on_fire' : 'True' } collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "50" "eval.save_interval": "10" } ) ] ) ] # construct a SageMaker estimator with the modified Debugger built-in rule sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name=base_job_name_prefix, instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_estimator.fit()