기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker Debugger Python 모듈을 사용한 기본 프로파일링을 위한 파라미터가 포함된 추정기 구성
기본적으로 SageMaker 디버거 기본 프로파일링은 기본적으로 켜져 있으며 Amazon SageMaker PythonSDK을 사용하여 제출된 모든 SageMaker 훈련 작업의 CPU 사용률, GPU 사용률, GPU 메모리 사용률, 네트워크 및 I/O 대기 시간과 같은 리소스 사용률 지표를 모니터링합니다. SageMaker 디버거는 이러한 리소스 사용률 지표를 500밀리초마다 수집합니다. 기본 리소스 사용률을 추적하기 위해 코드, 훈련 스크립트 또는 작업 시작 프로그램을 추가로 변경할 필요가 없습니다. 기본 프로파일링을 위한 지표 수집 간격을 변경하려면 SageMaker Python 또는 SDK AWS SDK for Python (Boto3) AWS Command Line Interface ()를 사용하여 SageMaker 훈련 작업 시작 관리자를 생성하는 동안 Debugger별 파라미터를 지정할 수 있습니다CLI. 이 가이드에서는 Amazon SageMaker Python SDK을 사용하여 프로파일링 옵션을 변경하는 방법에 중점을 둡니다. 이 페이지에서는 이 추정기 객체를 구성하기 위한 참조 템플릿을 제공합니다.
SageMaker Studio에서 훈련 작업의 리소스 사용률 지표 대시보드에 액세스하려면 로 바로 이동할 수 있습니다아마존 SageMaker 스튜디오 클래식 익스페리먼트의 아마존 SageMaker 디버거 UI.
시스템 리소스 사용률 문제를 자동으로 감지하는 규칙을 활성화하려는 경우, 규칙을 활성화하기 위해 예측기 객체에 rules
파라미터를 추가할 수 있습니다.
최신 SageMaker Debugger 기능을 사용하려면 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의 SageMaker Debugger Python 모듈을 사용하여 SageMaker 추정기 객체를 SageMaker 구성하기 위한 코드 템플릿 SDK
기본 프로파일링 구성(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)
의 경우 profiler_config
파라미터를 구성할 MXNet때 시스템 모니터링을 위해서만 를 구성할 수 있습니다. 프로파일링 프레임워크 지표는 에 대해 지원되지 않습니다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)
의 경우 profiler_config
파라미터를 구성할 XGBoost때 시스템 모니터링을 위해서만 를 구성할 수 있습니다. 프로파일링 프레임워크 지표는 에 대해 지원되지 않습니다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
입니다. 추정기 클래스 메서드 를 URIs 사용하여 기본 S3 버킷을 검색할 수도 있습니다. SageMaker
디버거 관련 파라미터를 구성하는 방법을 자세히 알아보려면 다음 주제를 참조하세요.