Amazon Debugger SageMaker Python 모듈을 사용하여 기본 프로파일링을 위한 파라미터로 추정기를 구성합니다. - 아마존 SageMaker

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

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)

다음은 파라미터에 대한 간략한 설명을 제공합니다.

  • profiler_config - 훈련 작업에서 시스템 지표와 프레임워크 지표를 수집하여 보안 S3 버킷 URI 또는 로컬 시스템에 저장하도록 디버거를 구성합니다. 시스템 지표를 얼마나 자주 또는 느슨하게 수집하는지 설정할 수 있습니다. profiler_config 파라미터 구성 방법을 알아보려면 시스템 리소스 사용률의 기본 프로파일링을 위한 설정 구성프레임워크 프로파일링을 위한 구성 섹션을 참조하세요.

  • rules— 병렬로 실행하려는 SageMaker Debugger 기본 제공 규칙을 활성화하도록 이 매개 변수를 구성합니다. 훈련 작업에 이 S3 버킷에 대한 액세스 권한이 있는지 확인하세요. 규칙은 처리 컨테이너에서 실행되며 훈련 작업을 자동으로 분석하여 계산 및 운영 성능 문제를 찾아냅니다. ProfilerReport 규칙은 내장된 모든 프로파일링 규칙을 실행하고 프로파일링 결과를 보안 S3 버킷에 보고서로 저장하는 가장 통합된 규칙입니다. rules 파라미터 구성 방법을 알아보려면 Amazon Debugger에서 관리하는 내장 프로파일러 규칙을 구성합니다. SageMaker 섹션을 참조하세요.

참고

디버거는 출력 데이터를 기본 S3 버킷의 하위 폴더에 안전하게 저장합니다. 예를 들어, 기본 S3 버킷 URI의 형식이 s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/입니다. 디버거에서 생성한 세 개의 하위 폴더는 debug-output, profiler-outputrule-output입니다. 또한 SageMaker 추정기 클래스 메서드를 사용하여 기본 S3 버킷 URI를 검색할 수 있습니다.

디버거 관련 파라미터를 구성하는 방법을 자세히 알아보려면 다음 주제를 참조하세요.