Amazon SageMaker Debugger Python モジュールを使用した基本的なプロファイリングのパラメータを含む推定器設定 - Amazon SageMaker

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

Amazon SageMaker Debugger Python モジュールを使用した基本的なプロファイリングのパラメータを含む推定器設定

デフォルトでは、 SageMaker デバッガーの基本プロファイリングはデフォルトでオンになっており、Amazon SageMaker Python SDKを使用して送信されたすべての SageMaker トレーニングジョブのCPU使用率、GPU使用率、GPUメモリ使用率、ネットワーク、I/O 待機時間などのリソース使用率メトリクスをモニタリングします。 SageMaker デバッガーは、500 ミリ秒ごとにこれらのリソース使用率メトリクスを収集します。基本的なリソース使用率を追跡するために、コード、トレーニングスクリプト、またはジョブランチャーに追加の変更を加える必要はありません。基本的なプロファイリングのメトリクス収集間隔を変更する場合は、 SageMaker Python SDK、 AWS SDK for Python (Boto3)、または AWS Command Line Interface () を使用して SageMaker トレーニングジョブランチャーを作成するときに、デバッガー固有のパラメータを指定できますCLI。このガイドでは、Amazon SageMaker Python SDKを使用してプロファイリングオプションを変更する方法に焦点を当てます。このページには、この推定器オブジェクトを設定するための参照テンプレートが用意されています。

SageMaker Studio でトレーニングジョブのリソース使用率メトリクスダッシュボードにアクセスする場合は、 にジャンプできますAmazon SageMaker Studio Classic Experiments の Amazon SageMaker デバッガー UI

システムリソースの使用率の問題を自動的に検出するルールをアクティブ化する場合は、ルールをアクティブ化する rules パラメータを推定器オブジェクトに追加できます。

重要

最新の 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)

Python で SageMaker デバッガー Python モジュール SageMakerを使用して SageMaker 推定器オブジェクトを設定するためのコードテンプレート SDK

基本的なプロファイリング設定 (profiler_config) を調整するか、プロファイラールール (rules) を追加するには、いずれかのタブを選択して、 SageMaker 推定器を設定するためのテンプレートを取得します。以降のページでは、2 つのパラメータの設定方法について詳細を示します。

注記

次のコード例は、直接実行できません。次のセクションに進み、各パラメータの設定方法について説明します。

PyTorch
# An example of constructing a SageMaker PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
TensorFlow
# An example of constructing a SageMaker TensorFlow estimator import boto3 import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.8.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
MXNet
# An example of constructing a SageMaker MXNet estimator import sagemaker from sagemaker.mxnet import MXNet from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
注記

ではMXNet、 profiler_configパラメータを設定するときに、 をシステムモニタリング用にのみ設定できます。プロファイリングフレームワークメトリクスは ではサポートされていませんMXNet。

XGBoost
# An example of constructing a SageMaker XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
注記

ではXGBoost、 profiler_configパラメータを設定するときに、 をシステムモニタリング用にのみ設定できます。プロファイリングフレームワークメトリクスは ではサポートされていませんXGBoost。

Generic estimator
# An example of constructing a SageMaker generic estimator using the XGBoost algorithm base image import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker import image_uris from sagemaker.debugger import ProfilerConfig, DebuggerHookConfig, Rule, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] region=boto3.Session().region_name xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1") estimator=Estimator( role=sagemaker.get_execution_role() image_uri=xgboost_container, base_job_name="debugger-demo", instance_count=1, instance_type="ml.m5.2xlarge", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)

次に、パラメータについて簡単に説明します。

  • profiler_config – トレーニングジョブからシステムメトリクスとフレームワークメトリクスを収集し、保護された S3 バケットURIまたはローカルマシンに保存するようにデバッガーを設定します。システムメトリクスを収集する頻度を設定できます。profiler_config パラメータの設定方法については、「システムリソース使用率の基本的なプロファイリング設定を行う」および「フレームワークプロファイリングの推定器設定」を参照してください。

  • rules – このパラメータを設定して、並列で実行する SageMaker デバッガー組み込みルールを有効にします。トレーニングジョブがこの S3 バケットに対するアクセス権を持っていることを確認してください。ルールは処理中のコンテナで実行され、トレーニングジョブを自動的に分析して計算上および運用上のパフォーマンスの問題を検索します。ProfilerReport ルールは、組み込みのプロファイリングルールをすべて実行し、プロファイリング結果をセキュリティで保護された S3 バケットにレポートとして保存する、最も統合されたルールです。rules パラメータの設定方法については、「Amazon SageMaker Debugger によって管理される組み込みプロファイラルールを使用する」を参照してください。

注記

デバッガーは、デフォルトの S3 バケットのサブフォルダに出力データを安全に保存します。例えば、デフォルトの S3 バケットの形式URIは ですs3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/。デバッガーによって作成されるサブフォルダは、debug-outputprofiler-outputrule-output の 3 つです。SageMaker 推定器クラスメソッド URIsを使用して、デフォルトの S3 バケットを取得することもできます。

デバッガー固有パラメータの詳細な設定方法については、次のトピックを参照してください。