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

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

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

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

중요

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

Debugger별 파라미터를 사용하여 SageMaker AI 예측기 구성

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

참고

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

PyTorch
# An example of constructing a SageMaker AI 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 AI 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 AI 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 AI 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 AI 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_hook_config(DebuggerHookConfig의 객체) - 훈련 스크립트를 조정하여 후크 등록 도중에 적응된 훈련 스크립트에서 후크를 활성화하고, 훈련 작업에서 출력 텐서를 수집하도록 SageMaker 훈련 런처(예측기)를 구성하고, 텐서를 보안 S3 버킷 또는 로컬 머신에 저장하는 데 필요합니다. debugger_hook_config 파라미터 구성 방법을 알아보려면 텐서를 저장하도록 SageMaker 디버거 구성 섹션을 참조하세요.

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

    참고

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

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

    참고

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

참고

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

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