2단계: SageMaker Python SDK를 사용하여 교육 작업 시작 및 디버깅 - 아마존 SageMaker

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

2단계: SageMaker Python SDK를 사용하여 교육 작업 시작 및 디버깅

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

중요

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

디버거 관련 파라미터를 사용하여 SageMaker 에스티메이터를 구성하십시오.

이 섹션의 코드 예제는 디버거 관련 파라미터를 사용하여 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)

다음 파라미터를 구성하여 Debugger를 활성화하세요. SageMaker

  • debugger_hook_config(객체 DebuggerHookConfig) — 도중에 적응된 교육 스크립트에서 후크를 활성화하고1단계: 훈련 스크립트를 조정하여 후크 등록, 훈련 작업에서 출력 텐서를 수집하도록 SageMaker 훈련 런처 (추정기) 를 구성하고, 텐서를 보안 S3 버킷 또는 로컬 머신에 저장하는 데 필요합니다. debugger_hook_config 파라미터 구성 방법을 알아보려면 텐서를 저장하도록 SageMaker 디버거 설정하기 섹션을 참조하세요.

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

    참고

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

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

    참고

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

참고

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

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