Debugger 규칙을 구성하기 위한 노트북 및 코드 샘플 예제 - Amazon SageMaker

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

Debugger 규칙을 구성하기 위한 노트북 및 코드 샘플 예제

다음 섹션에서는 Debugger 규칙을 사용하여 SageMaker 훈련 작업을 모니터링하는 방법에 대한 노트북 및 코드 샘플이 제공됩니다.

디버거 내장 규칙 예제 노트북

다음 예제 노트북은 Amazon 에서 훈련 작업을 실행할 때 Debugger 기본 제공 규칙을 사용하는 방법을 보여줍니다 SageMaker.

SageMaker Studio에서 예제 노트북을 실행하는 동안 Studio 실험 목록 탭에서 생성된 훈련 작업 평가판을 찾을 수 있습니다. 예를 들어 아래의 스크린샷과 같이 현재 훈련 작업의 평가판 구성 요소 설명 창을 찾아 열 수 있습니다. Debugger 탭에서 Debugger 규칙, vanishing_gradient()loss_not_decreasing()가 훈련 세션을 병렬로 모니터링하는지 확인할 수 있습니다. Studio UI에서 훈련 작업 평가판 구성 요소를 찾는 방법에 대한 전체 지침은 SageMaker Studio - 실험, 평가판 및 평가판 구성 요소 보기를 참조하세요.

SageMaker Studio에서 활성화된 Debugger 기본 제공 규칙을 사용하여 훈련 작업을 실행하는 이미지

SageMaker 환경에서 Debugger 기본 제공 규칙을 사용하는 방법에는 두 가지가 있습니다. 기본 제공 규칙을 준비할 때 배포하거나 원하는 대로 파라미터를 조정합니다. 다음 주제에서는 예제 코드와 함께 기본 제공 규칙을 사용하는 방법을 보여줍니다.

디버거 내장 규칙 예제 코드

다음 코드 샘플은 Rule.sagemaker 메서드를 사용하여 Debugger 기본 내장 규칙을 설정하는 방법을 보여줍니다. 실행하려는 기본 제공 규칙을 지정하려면 rules_configs API 작업을 사용하여 기본 제공 규칙을 호출합니다. Debugger 기본 제공 규칙 및 기본 파라미터 값의 전체 목록을 찾으려면 Debugger 기본 제공 규칙 목록을 참고하세요.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call built-in rules that you want to use. built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()) Rule.sagemaker(rule_configs.loss_not_decreasing()) ] # construct a SageMaker estimator with the Debugger built-in rules sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-built-in-rules-demo', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules ) sagemaker_estimator.fit()
참고

Debugger 기본 제공 규칙은 훈련 작업과 병렬로 실행됩니다. 훈련 작업에 사용할 수 있는 기본 제공 규칙 컨테이너의 최대 수는 20개입니다.

Debugger 규칙 클래스, 메서드 및 파라미터에 대한 자세한 내용은 Amazon SageMaker Python SDKSageMaker Debugger 규칙 클래스를 참조하세요.

Debugger 규칙 파라미터를 조정하는 방법의 예를 찾으려면 다음 파라미터 수정과 함께 Debugger 기본 제공 규칙 사용 섹션을 참고하세요.

파라미터 수정과 함께 Debugger 기본 제공 규칙 사용

다음 코드 예제는 파라미터를 조정하기 위한 기본 제공 규칙의 구조를 보여줍니다. 이 예제에서 stalled_training_rule은 50단계마다 훈련 작업의 losses 텐서 컬렉션을 수집하고 10단계마다 평가 단계를 수집합니다. 훈련 프로세스가 스톨링을 시작하고 120초 동안 텐서 출력을 수집하지 않으면 stalled_training_rule이 훈련 작업을 중지합니다.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call the built-in rules and modify the CollectionConfig parameters base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) built_in_rules_modified=[ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ 'threshold': '120', 'training_job_name_prefix': base_job_name_prefix, 'stop_training_on_fire' : 'True' } collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "50" "eval.save_interval": "10" } ) ] ) ] # construct a SageMaker estimator with the modified Debugger built-in rule sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name=base_job_name_prefix, instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_estimator.fit()