Amazon SageMaker Debugger Python 모듈을 사용한 기본 프로파일링을 위한 파라미터가 포함된 추정기 구성 - Amazon SageMaker

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

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)

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

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

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

참고

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

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