기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Debugger SageMaker Python 모듈을 사용하여 기본 프로파일링을 위한 파라미터로 추정기를 구성합니다.
SageMaker 디버거 기본 프로파일링은 기본적으로 켜져 있으며 Amazon Python SDK를 사용하여 제출된 모든 SageMaker 교육 작업의 리소스 사용률 지표 (예: CPU 사용률, GPU 사용률, GPU 메모리 사용률, 네트워크, I/O 대기 시간) 를 모니터링합니다. SageMaker SageMaker 디버거는 500밀리초마다 이러한 리소스 사용률 지표를 수집합니다. 기본 리소스 사용률을 추적하기 위해 코드, 훈련 스크립트 또는 작업 시작 프로그램을 추가로 변경할 필요가 없습니다. SageMaker Studio에서 교육 작업의 리소스 사용률 지표 대시보드에 액세스하려면 로 이동하면 됩니다. 아마존 SageMaker 스튜디오 클래식 익스페리먼트의 아마존 SageMaker 디버거 UI
기본 프로파일링의 지표 수집 간격을 변경하려면 SageMaker Python SDK AWS SDK for Python (Boto3)또는 (CLI) 를 사용하여 SageMaker 교육 작업 실행기를 만들 때 디버거 관련 매개변수를 지정할 수 있습니다. AWS Command Line Interface 이 안내서에서는 Amazon SageMaker Python SDK를 사용하여 프로파일링 옵션을 변경하는 방법을 중점적으로 다룹니다.
시스템 리소스 사용률 문제를 자동으로 감지하는 규칙을 활성화하려는 경우, 규칙을 활성화하기 위해 예측기 객체에 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 SDK의 SageMaker 디버거 Python 모듈을 사용하여 SageMaker 추정기 객체를 구성하기 위한 코드 템플릿 SageMaker
기본 프로파일링 구성 (profiler_config
) 을 조정하거나 프로파일러 규칙 (rules
) 을 추가하려면 탭 중 하나를 선택하여 추정기 설정을 위한 템플릿을 가져오십시오. SageMaker 다음 페이지에서 두 파라미터를 구성하는 방법에 대한 자세한 내용을 볼 수 있습니다.
다음 코드 예제는 직접 실행할 수 없습니다. 다음 섹션으로 이동하여 각 파라미터를 구성하는 방법을 알아보세요.
- 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)
다음은 파라미터에 대한 간략한 설명을 제공합니다.
디버거는 출력 데이터를 기본 S3 버킷의 하위 폴더에 안전하게 저장합니다. 예를 들어, 기본 S3 버킷 URI의 형식이 s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/
입니다. 디버거에서 생성한 세 개의 하위 폴더는 debug-output
, profiler-output
및 rule-output
입니다. 또한 SageMaker 추정기 클래스 메서드를 사용하여 기본 S3 버킷 URI를 검색할 수 있습니다.
디버거 관련 파라미터를 구성하는 방법을 자세히 알아보려면 다음 주제를 참조하세요.