View a markdown version of this page

SageMaker Python SDK を使用して Debugger でトレーニングジョブを開始する - Amazon SageMaker AI

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

SageMaker Python SDK を使用して Debugger でトレーニングジョブを開始する

注記

Amazon SageMaker デバッガーは新規顧客に公開されなくなりました。既存のお客様は、サービスを通常どおり引き続き使用できます。 はデバッガーのセキュリティと可用性の向上に AWS 引き続き投資しますが、新機能を導入する予定はありません。詳細については、「デバッガーの可用性の変更」を参照してください。

SageMaker Debugger で SageMaker AI 推定器を設定するには、Amazon SageMaker Python SDK を使用し、Debugger 固有のパラメータを指定します。デバッグ機能を最大限に活用するには、debugger_hook_configtensorboard_output_config、および rules の 3 つのパラメータを設定する必要があります。

重要

トレーニングジョブを起動するために推定器フィットメソッドをコンストラクトして実行する前に、「フックを登録するためにトレーニングスクリプトを適応させる」で説明されている手順に従ってトレーニングスクリプトを調整してください。

Debugger 固有のパラメータを使用した SageMaker AI 推定器をコンストラクトする

このセクションのコード例は、Debugger 固有のパラメータを使用して SageMaker AI 推定器をコンストラクトする方法を示しています。

注記

以下のコード例は、SageMaker AI フレームワーク推定器をコンストラクトするためのテンプレートであり、直接実行できるものではありません。次のセクションに進み、デバッガー固有のパラメータを設定する必要があります。

# An example of creating a training job with debugger configuration import boto3 from sagemaker.core import image_uris from sagemaker.core.resources import TrainingJob from sagemaker.core.shapes import ( AlgorithmSpecification, ResourceConfig, OutputDataConfig, StoppingCondition, DebugHookConfig, CollectionConfiguration, DebugRuleConfiguration, ) session=boto3.session.Session() region=session.region_name # Retrieve the training image for your framework # Change framework to "tensorflow", "mxnet", "xgboost", etc. as needed training_image = image_uris.retrieve( framework="pytorch", # or "tensorflow", "mxnet", "xgboost" region=region, version="1.12.0", py_version="py37", instance_type="ml.p3.2xlarge", image_scope="training" ) debug_hook_config=DebugHookConfig(...) debug_rule_configurations=[ DebugRuleConfiguration( rule_configuration_name="built_in_rule", rule_evaluator_image="rule-evaluator-image-uri", ) ] TrainingJob.create( training_job_name="debugger-demo", algorithm_specification=AlgorithmSpecification( training_image=training_image, training_input_mode="File", ), role_arn="arn:aws:iam::123456789012:role/SageMakerRole", resource_config=ResourceConfig(instance_type="ml.p3.2xlarge", instance_count=1, volume_size_in_gb=30), output_data_config=OutputDataConfig(s3_output_path="s3://bucket/output"), stopping_condition=StoppingCondition(max_runtime_in_seconds=3600), # Debugger-specific parameters debug_hook_config=debug_hook_config, debug_rule_configurations=debug_rule_configurations, )

SageMaker Debugger を起動するには、以下のパラメータを設定します。

  • debugger_hook_config (DebuggerHookConfig のオブジェクト) — フックを登録するためにトレーニングスクリプトを適応させる の間に適応されたトレーニングスクリプトでフックを有効にするために必要で、トレーニングジョブから出力テンソルを収集し、保護された S3 バケットまたはローカルマシンにテンソルを保存するように SageMaker トレーニングランチャー (推定器) を設定します。debugger_hook_config パラメータの設定方法については、「テンソルを保存するように SageMaker Debugger を設定する」を参照してください。

  • rules (Rule オブジェクトのリスト) - リアルタイムで実行する SageMaker Debugger の組み込みルールをアクティブ化するには、このパラメータを設定します。組み込みルールは、セキュアな S3 バケットに保存されている出力テンソルを分析することで、モデルのトレーニングの進行状況を自動的にデバッグし、トレーニングの問題を検出するロジックです。rules パラメータの設定方法については、「Debugger の組み込みルールの設定方法」を参照してください。出力テンソルをデバッグするための組み込みルールの完全なリストについては、「デバッガールール」を参照してください。トレーニングの問題を検出する独自のロジックを作成したい場合は、「Debugger クライアントライブラリを使用してカスタムルールを作成する」を参照してください。

    注記

    組み込みルールは、SageMaker トレーニングインスタンスでのみ使用できます。ローカルモードでは使用できません。

  • tensorboard_output_config (TensorBoardOutputConfig のオブジェクト) — TensorBoard 互換フォーマットの出力テンソルを収集し、TensorBoardOutputConfig オブジェクトで指定されている S3 出力パスに保存するように SageMaker Debugger を設定します。詳細についてはTensorBoard で Amazon SageMaker Debugger 出力テンソルを視覚化するを参照してください。

    注記

    tensorboard_output_configdebugger_hook_config パラメータを使用して設定する必要があります。そのためには、sagemaker-debugger フックを追加してトレーニングスクリプトを調整する必要もあります。

注記

SageMaker Debugger は、出力テンソルを S3 バケットのサブフォルダに安全に保存します。例えば、アカウントのデフォルトの S3 バケット URI の形式は、s3://amzn-s3-demo-bucket-sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/ です。SageMaker Debugger によって作成されるサブフォルダは、debug-output および rule-output の 2 つです。tensorboard_output_config パラメータを追加すると、tensorboard-output フォルダも表示されます。

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