SageMaker Python을 사용하여 Debugger로 훈련 작업 시작 SDK - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SageMaker Python을 사용하여 Debugger로 훈련 작업 시작 SDK

SageMaker Debugger를 사용하여 SageMaker 추정기를 구성하려면 Amazon SageMaker PythonSDK을 사용하고 Debugger별 파라미터를 지정합니다. 디버깅 기능을 완전히 활용하려면 debugger_hook_config, tensorboard_output_config, rules 등 세 가지 파라미터를 구성해야 합니다.

중요

훈련 작업을 시작하기 위해 예측기 fit 메서드를 구성하고 실행하기 전에 훈련 스크립트를 조정하여 후크 등록의 지침에 따라 훈련 스크립트를 수정해야 합니다.

Debugger별 파라미터를 사용하여 SageMaker 추정기 구성

이 섹션의 코드 예제에서는 Debugger별 파라미터를 사용하여 SageMaker 추정기를 구성하는 방법을 보여줍니다.

참고

다음 코드 예제는 SageMaker 프레임워크 추정기를 구성하기 위한 템플릿이며 직접 실행할 수 없습니다. 다음 섹션으로 진행하여 디버거 관련 파라미터를 구성해야 합니다.

PyTorch
# An example of constructing a SageMaker PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs session=boto3.session.Session() region=session.region_name debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # Debugger-specific parameters debugger_hook_config=debugger_hook_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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs session=boto3.session.Session() region=session.region_name debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()), ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # Debugger-specific parameters debugger_hook_config=debugger_hook_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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # Debugger-specific parameters debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)
XGBoost
# An example of constructing a SageMaker XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)
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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] 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 debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)

SageMaker Debugger를 활성화하도록 다음 파라미터를 구성합니다.

  • debugger_hook_config (의 객체DebuggerHookConfig) - 에서 조정된 훈련 스크립트의 후크를 활성화하고 훈련 스크립트를 조정하여 후크 등록훈련 SageMaker 시작 관리자(추정기)를 구성하여 훈련 작업에서 출력 텐서를 수집하고 텐서를 보안 S3 버킷 또는 로컬 시스템에 저장하는 데 필요합니다. debugger_hook_config 파라미터 구성 방법을 알아보려면 텐서를 저장하도록 SageMaker 디버거 구성 섹션을 참조하세요.

  • rules (Rule객체 목록) - 실시간으로 실행하려는 SageMaker Debugger 기본 제공 규칙을 활성화하도록 이 파라미터를 구성합니다. 내장 규칙은 보안 S3 버킷에 저장된 출력 텐서를 분석하여 모델의 훈련 진행 상황을 자동으로 디버깅하고 훈련 문제를 찾아내는 로직입니다. rules 파라미터 구성 방법을 알아보려면 Debugger 기본 제공 규칙을 구성하는 방법 섹션을 참조하세요. 출력 텐서 디버깅을 위한 내장 규칙의 전체 목록을 찾으려면 디버거 규칙 섹션을 참조하세요. 훈련 문제를 감지하는 자체 로직을 생성하려면 Debugger 클라이언트 라이브러리를 사용하여 사용자 지정 규칙 생성 섹션을 참조하세요.

    참고

    기본 제공 규칙은 SageMaker 훈련 인스턴스를 통해서만 사용할 수 있습니다. 로컬 모드에서는 사용할 수 없습니다.

  • tensorboard_output_config (의 객체TensorBoardOutputConfig) TensorBoard- 호환 가능한 형식으로 출력 텐서를 수집하고 TensorBoardOutputConfig 객체에 지정된 S3 출력 경로에 저장하도록 SageMaker Debugger를 구성합니다. 자세한 내용은 에서 Amazon SageMaker Debugger 출력 텐서 시각화 TensorBoard을 참조하십시오.

    참고

    debugger_hook_config 파라미터를 사용하여 tensorboard_output_config를 구성해야 하며, 이를 위해서는 sagemaker-debugger 후크를 추가하여 훈련 스크립트를 조정해야 합니다.

참고

SageMaker 디버거는 S3 버킷의 하위 폴더에 출력 텐서를 안전하게 저장합니다. 예를 들어 URI 계정의 기본 S3 버킷 형식은 입니다s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. SageMaker Debugger에서 생성한 하위 폴더는 debug-output, 및 입니다rule-output. tensorboard_output_config 파라미터를 추가하면 tensorboard-output 폴더도 찾을 수 있습니다.

디버거 관련 파라미터를 자세히 구성하는 방법에 대한 더 많은 예를 찾으려면 다음 항목을 참조하세요.