Debugger 기본 제공 규칙 목록 - 아마존 SageMaker

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

Debugger 기본 제공 규칙 목록

Amazon Debugger에서 제공하는 디버거 내장 규칙을 사용하여 SageMaker 모델을 학습하는 동안 수집된 지표와 텐서를 분석할 수 있습니다. Debugger 기본 제공 규칙은 훈련 작업의 성공에 결정적인 다양한 공통 조건을 모니터링합니다. Amazon SageMaker Python SDK 또는 하위 수준 SageMaker API 작업을 사용하여 내장된 규칙을 호출할 수 있습니다. 내장 규칙을 사용하는 데는 추가 비용이 들지 않습니다. 청구에 대한 자세한 내용은 Amazon SageMaker 요금 페이지를 참조하십시오.

참고

훈련 작업에 연결할 수 있는 기본 제공 규칙의 최대 개수는 20개입니다. SageMaker 디버거는 내장된 규칙을 완전히 관리하고 교육 작업을 동시에 분석합니다.

중요

새로운 디버거 기능을 사용하려면 SageMaker Python SDK와 SMDebug 클라이언트 라이브러리를 업그레이드해야 합니다. iPython 커널, Jupyter 노트북 또는 JupyterLab 환경에서 다음 코드를 실행하여 최신 버전의 라이브러리를 설치하고 커널을 다시 시작합니다.

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

Debugger 규칙

다음 규칙은 Rule.sagemaker 클래스 메서드를 사용하여 호출할 수 있는 Debugger 기본 제공 규칙입니다.

훈련 보고서 생성에 필요한 Debugger 기본 제공 규칙
유효 범위 내장 규칙
XGBoost 교육 작업에 대한 SageMaker 교육 보고서
모델 훈련 데이터(출력 텐서) 디버깅에 필요한 Debugger 기본 제공 규칙
유효 범위 내장 규칙
딥 러닝 프레임워크 (TensorFlow, MXnet 및) PyTorch
딥 러닝 프레임워크 (TensorFlow, MXNet 및) PyTorch 및 XGBoost 알고리즘
딥 러닝 애플리케이션
XGBoost 알고리즘

기본 파라미터 값으로 기본 제공 규칙을 사용하려면 다음 구성 형식을 사용하세요.

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ Rule.sagemaker(rule_configs.built_in_rule_name_1()), Rule.sagemaker(rule_configs.built_in_rule_name_2()), ... Rule.sagemaker(rule_configs.built_in_rule_name_n()) ]

내장 규칙을 사용하여 파라미터 값을 사용자 정의하려면 다음 구성 형식을 사용하세요.

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ Rule.sagemaker( base_config=rule_configs.built_in_rule_name(), rule_parameters={ "key": "value" } collections_to_save=[ CollectionConfig( name="tensor_collection_name", parameters={ "key": "value" } ) ] ) ]

파라미터에 사용할 수 있는 키를 찾으려면 rule_parameters 파라미터 설명 테이블을 참조하세요.

각 내장 규칙에 대한 샘플 규칙 구성 코드는 파라미터 설명 표 아래에 제공됩니다.

CreateXgboost보고서

이 CreateXgboostReport 규칙은 XGBoost 훈련 작업에서 출력 텐서를 수집하고 포괄적인 훈련 보고서를 자동 생성합니다. 훈련 작업이 실행 중일 때 또는 훈련 작업이 완료된 후에 종합적인 프로파일링 보고서를 다운로드하고, 훈련 진행 상황이나 훈련 작업의 최종 결과를 확인할 수 있습니다. 이 CreateXgboostReport 규칙은 기본적으로 다음과 같은 출력 텐서를 수집합니다.

  • hyperparameters - 첫 단계에서 저장됩니다.

  • metrics - 5단계마다 손실을 줄이고 정확도를 보존합니다.

  • feature_importance - 5단계마다 저장됩니다.

  • predictions - 5단계마다 저장됩니다.

  • labels - 5단계마다 저장됩니다.

규칙의 CreateXgboostReport 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

rules=[ Rule.sagemaker( rule_configs.create_xgboost_report() ) ]

DeadRelu

이 규칙은 활성화 활동이 임곗값 미만으로 떨어졌기 때문에 시도 시 Rectified Linear Unit(ReLU) 활성화 함수의 백분율이 dead로 간주되는 시기를 감지합니다. 레이어의 비활성 ReLU 비율이 비활성 ReLU threshold_layer 값보다 크면 규칙이 True를 반환합니다.

규칙의 DeadRelu 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본 값: ".*relu_output"

threshold_inactivity

ReLU가 dead로 간주되는 활동 수준을 정의합니다. ReLU는 시도 초기에 활성 상태가 된 다음 훈련 과정 동안 천천히 dead 상태가 될 수 있습니다. ReLU가 threshold_inactivity보다 적게 활성 상태인 경우에는 dead로 간주됩니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 1.0(단위: 백분율)

threshold_layer

레이어에서 비활성 ReLU의 비율이 True보다 큰 경우에 threshold_layer가 반환됩니다.

레이어에서 비활성 ReLU의 비율이 threshold_layer보다 작은 경우에 False가 반환됩니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 50.0(단위: 백분율)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.dead_relu(), rule_parameters={ "tensor_regex": ".*relu_output|.*ReLU_output", "threshold_inactivity": "1.0", "threshold_layer": "50.0" }, collections_to_save=[ CollectionConfig( name="custom_relu_collection", parameters={ "include_regex: ".*relu_output|.*ReLU_output", "save_interval": "500" } ) ] ) ]

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

이 규칙은 XGBoost 알고리즘에 사용할 수 없습니다.

ExplodingTensor

이 규칙은 훈련 중에 방출된 텐서에 무한대 또는 NaN(숫자 아님) 같이 유한하지 않은 값이 포함되어 있는지 감지합니다. 유한하지 않은 값이 감지되면 규칙이 True를 반환합니다.

규칙의 ExplodingTensor 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효값: 문자열

기본 값: None

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효값: 문자열

기본 값: None

only_nan

True를 사용하여 무한대를 제외하고 NaN 값에 대해서만 base_trial 텐서를 모니터링합니다.

False를 사용하여 NaN와 무한대 모두 폭발 값으로 처리하고 두 가지를 모두 모니터링 할 수 있습니다.

선택 사항

기본 값: False

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.exploding_tensor(), rule_parameters={ "tensor_regex": ".*gradient", "only_nan": "False" }, collections_to_save=[ CollectionConfig( name="gradients", parameters={ "save_interval": "500" } ) ] ) ]

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

이 규칙은 XGBoost 알고리즘에 사용할 수 없습니다.

PoorWeight초기화

이 규칙은 모델 파라미터가 제대로 초기화되지 않았는지 감지합니다.

좋은 초기화는 신경망에서 가중치와 그라데이션의 대칭을 깨뜨리고 레이어 간에 상응하는 활성화 분산을 유지합니다. 그렇지 않으면 신경망이 효과적으로 학습을 하지 못합니다. Xavier와 같은 이니셜라이저는 활성화를 통해 분산을 일정하게 유지하는 것을 목표로 합니다. 이는 특히 매우 깊은 신경망을 훈련하는 데 적합합니다. 초기화 규모가 너무 작으면 그라데이션이 사라질 수 있습니다. 초기화 규모가 너무 크면 그라데이션이 폭발할 수 있습니다. 이 규칙은 계층에서 활성화 입력의 분산, 그라데이션 분포 및 초기 단계의 손실 수렴을 검사하여 신경망이 제대로 초기화되지 않았는지 확인합니다.

규칙의 PoorWeightInitialization 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

activation_inputs_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효값: 문자열

기본 값: ".*relu_input"

threshold

레이어당 가중치의 최소 및 최대 분산 간의 비율이 단계에서 threshold을 초과하면 규칙이 True를 반환합니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 10.0

distribution_range

그라데이션 분포의 5번째 백분위수와 95번째 백분위수 간의 최소 차이가 distribution_range 보다 작으면 규칙이 True를 반환합니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.001

patience

손실이 더 이상 감소하지 않는 것으로 간주될 때까지 기다려야 하는 단계 수입니다.

선택 사항

유효한 값: 정수

기본 값: 5

steps

이 규칙이 분석하는 단계 수입니다. 보통 사용자는 처음 몇 번의 반복만 확인하면 됩니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 10

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.poor_weight_initialization(), rule_parameters={ "activation_inputs_regex": ".*relu_input|.*ReLU_input", "threshold": "10.0", "distribution_range": "0.001", "patience": "5", "steps": "10" }, collections_to_save=[ CollectionConfig( name="custom_relu_collection", parameters={ "include_regex": ".*relu_input|.*ReLU_input", "save_interval": "500" } ) ] ) ]

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

이 규칙은 XGBoost 알고리즘에 사용할 수 없습니다.

SaturatedActivation

이 규칙은 tanh 및 sigmoid 활성화 레이어가 포화 상태인지 여부를 감지합니다. 레이어의 입력이 활성화 함수의 최대값 또는 최소값에 가까울 때 활성화 레이어가 포화 상태가 됩니다. tanh 및 sigmoid 활성화 함수의 최소값 및 최대값은 해당되는 min_thresholdmax_thresholds 값에 의해 정의됩니다. 노드의 활동이 threshold_inactivity 백분율 이하로 떨어지면 포화된 것으로 간주됩니다. 노드의 threshold_layer 백분율 이상이 포화 상태가 되면 규칙이 True를 반환합니다.

규칙의 SaturatedActivation 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효값: 문자열

기본 값: ".*tanh_input|.*sigmoid_input".

threshold_tanh_min

tanh 활성화 함수에 대한 입력의 극단을 정의하는 최소 및 최대 임곗값은 (min_threshold, max_threshold)로 정의되어 있습니다. 기본값은 0.0000001의 소실된 그라데이션 임곗값을 기준으로 결정됩니다.

선택 사항

유효한 값: 부동 소수점.

기본값: -9.4999

threshold_tanh_max

tanh 활성화 함수에 대한 입력의 극단을 정의하는 최소 및 최대 임곗값은 (min_threshold, max_threshold)로 정의되어 있습니다. 기본값은 0.0000001의 소실된 그라데이션 임곗값을 기준으로 결정됩니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 9.4999

threshold_sigmoid_min

sigmoid 활성화 함수에 대한 입력의 극단을 정의하는 최소 및 최대 임곗값은 (min_threshold, max_threshold)로 정의되어 있습니다. 기본값은 0.0000001의 소실된 그라데이션 임곗값을 기준으로 결정됩니다.

선택 사항

유효한 값: 부동 소수점.

기본값: -23

threshold_sigmoid_max

sigmoid 활성화 함수에 대한 입력의 극단을 정의하는 최소 및 최대 임곗값은 (min_threshold, max_threshold)로 정의되어 있습니다. 기본값은 0.0000001의 소실된 그라데이션 임곗값을 기준으로 결정됩니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 16.99999

threshold_inactivity

활성화 레이어가 포화 상태로 간주되는 비활성 비율입니다. 활성화는 시도 초기에 활성 상태가 된 다음 훈련 과정 동안 천천히 dead 상태가 될 수 있습니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 1.0

threshold_layer

레이어의 포화 상태 활성화 수가 threshold_layer 백분율보다 큰 경우를 True를 반환합니다.

레이어의 포화 상태 활성화 수가 threshold_layer 백분율보다 작은 경우를 False를 반환합니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 50.0

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.saturated_activation(), rule_parameters={ "tensor_regex": ".*tanh_input|.*sigmoid_input", "threshold_tanh_min": "-9.4999", "threshold_tanh_max": "9.4999", "threshold_sigmoid_min": "-23", "threshold_sigmoid_max": "16.99999", "threshold_inactivity": "1.0", "threshold_layer": "50.0" }, collections_to_save=[ CollectionConfig( name="custom_activations_collection", parameters={ "include_regex": ".*tanh_input|.*sigmoid_input" "save_interval": "500" } ) ] ) ]

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

이 규칙은 XGBoost 알고리즘에 사용할 수 없습니다.

VanishingGradient

이 규칙은 시도 시 그라데이션이 극도로 작아지거나 0 광도로 떨어지는지 여부를 감지합니다. 그라데이션의 절대값 평균이 지정된 threshold 값 아래로 떨어지면 규칙이 True를 반환합니다.

규칙의 VanishingGradient 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

threshold 그라데이션이 사라지는 것으로 결정되는 값입니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 0.0000001.

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.vanishing_gradient(), rule_parameters={ "threshold": "0.0000001" }, collections_to_save=[ CollectionConfig( name="gradients", parameters={ "save_interval": "500" } ) ] ) ]

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

이 규칙은 XGBoost 알고리즘에 사용할 수 없습니다.

WeightUpdate비율

이 규칙은 훈련 중 가중치에 대한 업데이트 비율을 추적하고 해당 비율이 너무 크거나 작아지는 경우를 감지합니다. 가중치에 대한 업데이트 비율이 large_threshold value보다 크거나 small_threshold보다 작은 경우, 이 규칙은 True을 반환합니다.

훈련의 조건은 업데이트가 그라데이션에 비례하는 경우에 가장 좋습니다. 업데이트가 지나치게 크면 가중치가 최적 값에서 벗어날 수 있으며, 업데이트가 너무 작으면 수렴이 매우 느려집니다. 이 규칙에서는 가중치를 2가지 훈련 단계에 사용할 수 있어야 하므로, train.save_interval이(가) num_steps와(과) 동일하게 설정되어야 합니다.

규칙의 WeightUpdateRatio 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

num_steps

텐서가 변경되었는지 확인하기 위해 규칙이 확인하는 단계 수입니다.

가중치 비율을 비교하고 싶은 단계 수입니다. 값을 전달하지 않으면 기본적으로 현재 단계 및 바로 이전에 저장된 단계에 대해 규칙이 실행됩니다. 이 파라미터의 값을 전달하여 기본값을 재정의할 경우, s단계와 >= s - num_steps단계 사이에서 가중치 비교를 수행합니다.

선택 사항

유효한 값: 정수

기본 값: None

large_threshold

규칙이 True을(를) 반환하기 전에 가중치에 대한 업데이트 비율이 취할 수 있는 최댓값입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 10.0

small_threshold

가중치에 대한 업데이트 비율(규칙이 반환하는 True보다 낮음)이 취할 수 있는 최솟값입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.00000001

epsilon

가중치에 대한 업데이트 비율을 계산할 때 Debugger가 0으로 나누지 않게 하는 데 사용되는 작은 상수입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.000000001

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.weight_update_ratio(), rule_parameters={ "num_steps": "100", "large_threshold": "10.0", "small_threshold": "0.00000001", "epsilon": "0.000000001" }, collections_to_save=[ CollectionConfig( name="weights", parameters={ "train.save_interval": "100" } ) ] ) ]

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

이 규칙은 XGBoost 알고리즘에 사용할 수 없습니다.

AllZero

이 규칙은 텐서 값의 전부 또는 지정된 백분율이 0인지 감지합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다. collection_names 또는 tensor_regex 파라미터를 지정해야 합니다. 두 파라미터가 모두 지정되면 규칙은 두 집합에서 텐서 합집합을 검사합니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙에 대한 파라미터 설명 AllZero
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본 값: None

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본 값: None

threshold

이 규칙을 호출하려면 텐서에서 0이 되어야 하는 값의 백분율을 지정합니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 100(단위: 백분율)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.all_zero(), rule_parameters={ "tensor_regex": ".*", "threshold": "100" }, collections_to_save=[ CollectionConfig( name="all", parameters={ "save_interval": "500" } ) ] ) ]

ClassImbalance

이 규칙은 클래스 간의 샘플링 불균형을 측정하여 불균형이 임곗값을 초과하거나 불균형의 결과로 과소 대표된 클래스에 대한 예측 오류가 너무 많을 경우 오류를 내보냅니다.

분류 모델에서는 훈련 데이터 세트에 균형 잡힌 클래스가 있어야 하거나 훈련 중에 클래스에 대한 적절한 가중치 부여/샘플링을 수행해야 합니다. 이 규칙이 수행하는 검사는 다음과 같습니다.

  • 하나는 클래스당 발생 수를 계산합니다. 가장 작은 클래스와 가장 큰 클래스 사이의 샘플 수의 비율이 threshold_imbalance보다 크면 오류가 발생합니다.

  • 클래스당 예측 정확도를 검사합니다. 리샘플링 또는 가중치 부여가 올바르게 적용되지 않으면 모델이 훈련 샘플이 많은 클래스에서는 높은 정확도에 도달할 수 있지만 훈련 샘플이 거의 없는 클래스에서는 정확도가 낮을 수 있습니다. 특정 클래스에 대한 예측 오류의 일부분이 threshold_misprediction 위에 있으면 오류가 발생합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 파라미터 설명 ClassImbalance
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

threshold_imbalance

최소 클래스와 최대 클래스의 샘플 수 간에 허용되는 불균형입니다. 이 임곗값을 초과하면 오류가 발생합니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 10

threshold_misprediction

각 클래스에 허용되는 예측 오류 분수에 대한 제한입니다. 이 임곗값을 초과하면 오류가 발생합니다. 과소 대표된 클래스는 이 임곗값을 넘을 위험이 가장 큽니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.7

samples

불균형이 평가되기 전에 처리해야 하는 레이블 수입니다. 여러 단계에서 충분한 샘플이 나타날 때까지 규칙이 트리거되지 않을 수 있습니다. 데이터 세트에 포함된 클래스가 많을수록 이 sample 수는 커야 합니다.

선택 사항

유효한 값: 정수

기본값: 500(10개의 클래스가 있는 MNIST와 같은 데이터 집합을 가정)

argmax

True의 경우np.argmax가 예측 텐서에 적용됩니다. 각 클래스에 대한 확률 벡터가 있는 경우에 필요합니다. 가장 높은 확률이 있는 클래스를 결정하는 데 사용됩니다.

조건

유효 값: 불

기본 값: False

labels_regex

레이블을 포함하는 텐서의 이름입니다.

선택 사항

유효값: 문자열

기본 값: ".*labels"

predictions_regex

예측이 포함된 텐서의 이름입니다.

선택 사항

유효값: 문자열

기본 값: ".*predictions"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.class_imbalance(), rule_parameters={ "threshold_imbalance": "10", "threshold_misprediction": "0.7", "samples": "500", "argmax": "False", "labels_regex": ".*labels", "predictions_regex": ".*predictions" }, collections_to_save=[ CollectionConfig( name="custom_output_collection", parameters={ "include_regex": ".*labels|.*predictions", "save_interval": "500" } ) ] ) ]

LossNot감소

이 규칙은 손실이 적절한 비율로 값이 감소하지 않는 경우를 감지합니다. 이러한 손실은 스칼라 값이어야 합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다. collection_names 또는 tensor_regex 파라미터를 지정해야 합니다. 두 파라미터가 모두 지정되면 규칙은 두 집합에서 텐서 합집합을 검사합니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 파라미터 설명 LossNotDecreasing
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본 값: None

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본 값: None

use_losses_collection

True로 설정하면 컬렉션이 존재할 때 “손실”이라는 컬렉션에서 손실을 찾습니다.

선택 사항

유효 값: 불

기본 값: True

num_steps

규칙이 손실 감소 여부를 확인한 이후의 최소 단계 수입니다. 규칙 평가는 모든 num_steps에서 이루어집니다. 이 규칙은 이 단계의 손실을 적어도 현재 단계 보다 최소 num_steps 단계 뒤에 있는 단계의 손실과 비교합니다. 예를 들어 손실이 3개의 단계마다 저장되지만 num_steps이 10으로 설정되어 있다고 가정해봅시다. 21단계에서 21단계의 손실은 9단계의 손실과 비교됩니다. 21단계에서 10단계 이후가 31단계이고 31단계 및 32단계의 손실이 저장 되지 않기 때문에 손실이 확인되는 다음 단계는 33단계입니다.

선택 사항

유효한 값: 정수

기본 값: 10

diff_percent

손실이 num_steps 사이에서 감소해야 하는 최소 백분율 차이입니다.

선택 사항

유효한 값: 0.0 < 부동 소수점 < 100

기본값: 0.1(단위: 백분율)

increase_threshold_percent

손실이 증가하고 있는 경우 손실 증가를 허용하는 최대 임곗값 백분율

선택 사항

유효한 값: 0 < 부동 소수점 < 100

기본값: 5(단위: 백분율)

mode

규칙 검사를 위해 텐서 값을 쿼리하는 Debugger 모드의 이름. 이 값이 전달되지 않으면 규칙은 기본적으로 mode.EVAL, mode.TRAINmode.GLOBAL의 순서대로 확인을 합니다.

선택 사항

유효한 값: 문자열(EVAL, TRAIN 또는 GLOBAL)

기본 값: GLOBAL

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.loss_not_decreasing(), rule_parameters={ "tensor_regex": ".*", "use_losses_collection": "True", "num_steps": "10", "diff_percent": "0.1", "increase_threshold_percent": "5", "mode": "GLOBAL" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

Overfit

이 규칙은 유효성 검사 및 훈련 손실을 비교하여 모델이 훈련 데이터에 과도하게 적합한지 여부를 감지합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

과적합을 방지하기 위한 표준 방법은 모델을 정규화하는 것입니다.

Overfit 규칙에 대한 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

start_step

유효성 검사 및 훈련 손실의 비교를 시작하는 단계입니다.

선택 사항

유효한 값: 정수

기본 값: 0

patience

ratio_threshold가 모델 과적합 한도로 설정된 값을 초과하도록 허용되는 단계 수입니다.

선택 사항

유효한 값: 정수

기본 값: 1

ratio_threshold

평균 유효성 검사 손실 및 평균 훈련 손실 간의 차이와 평균 훈련 손실의 최대 비율입니다. patience개의 단계에서 이 임곗값이 초과되면 모델을 과적합으로 판단하여 규칙이 True를 반환합니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.1

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.overfit(), rule_parameters={ "tensor_regex": ".*", "start_step": "0", "patience": "1", "ratio_threshold": "0.1" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "100", "eval.save_interval": "10" } ) ] ) ]

Overtraining

이 규칙은 모델이 과잉 훈련를 받는 중인지 감지합니다. 제대로 작동하는 모델을 여러 번 반복 훈련시키고 나면(훈련 및 검증 손실 감소 모두), 모델이 손실 함수의 최솟값에 가까워져 더 이상 개선되지 않습니다. 모델이 계속 훈련을 받으면 모델의 과적합이 시작되어 검증 손실이 증가하기 시작할 수 있습니다. 이 규칙은 임곗값과 조건을 설정하여 모델이 개선되지 않는지 확인하고, 과잉 훈련으로 인한 과적합 문제를 방지합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

참고

조기 중단으로 과잉 훈련을 피할 수 있습니다. 조기 정지에 대한 자세한 내용은 조기에 훈련 작업 중지 단원을 참조하세요. 디버거에서 스팟 트레이닝을 사용하는 방법을 보여주는 예제는 Amazon SageMaker Debugger를 통한 스팟 트레이닝 활성화를 참조하십시오.

Overtraining 규칙에 대한 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

patience_train

훈련 손실이 더 이상 개선되지 않는 것으로 간주되기 전에 대기해야 할 단계 수입니다.

선택 사항

유효한 값: 정수

기본 값: 5

patience_validation 유효성 검사 손실이 더 이상 개선되지 않는 것으로 간주되기 전에 대기해야 할 단계 수입니다.

선택 사항

유효한 값: 정수

기본 값: 10

delta

새로운 최적값으로 간주되기 전에 오류가 개선되어야 하는 정도에 따른 최소 임곗값입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.01

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.overtraining(), rule_parameters={ "patience_train": "5", "patience_validation": "10", "delta": "0.01" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

SimilarAcross실행

이 규칙은 기본 시도에서 수집된 텐서를 다른 시도의 텐서와 비교합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 파라미터 설명 SimilarAcrossRuns
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

other_trials

현재의 base_trial에서 수집된 텐서와 비교하려는 텐서를 포함하는 완료된 훈련 작업 이름.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.similar_across_runs(), rule_parameters={ "other_trials": "<specify-another-job-name>", "collection_names": "losses", "tensor_regex": ".*" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

StalledTraining규칙

StalledTrainingRule 교육 작업에 진척이 없는 경우 이를 감지하고 규칙이 실행되면 교육 작업을 중단합니다. 이 규칙은 threshold 파라미터로 정의된 시간 간격으로 텐서를 주기적으로 저장하도록 요구합니다. 이 규칙은 새 텐서를 계속 모니터링하며, 임곗값 간격 동안 새 텐서가 생성되지 않으면 규칙이 실행됩니다.

규칙의 StalledTrainingRule 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

threshold

훈련 지연 문제가 발생할 때까지 이 규칙이 텐서 출력을 기다리는 시간(단위: 초)을 정의하는 임곗값. 기본값은 1,800초입니다.

선택 사항

유효한 값: 정수

기본 값: 1800

stop_training_on_fire

True(으)로 설정하면 기본 훈련 작업이 "threshold"초 내에 텐서를 출력하는지 확인합니다.

선택 사항

유효 값: 불

기본 값: False

training_job_name_prefix

기본 훈련 작업 이름의 접두사. stop_training_on_fire이 값이 true인 경우 규칙은 동일한 계정에서 이 접두사를 사용하여 SageMaker 교육 작업을 검색합니다. 비활성이 발견되면 규칙이 StopTrainingJob 조치를 취합니다. 접두사가 같은 작업이 여러 개 발견되면 규칙이 종료를 건너뜁니다. 접두사는 훈련 작업마다 고유하게 설정해야 합니다.

선택 사항

유효값: 문자열

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "1800", "stop_training_on_fire": "True", "training_job_name_prefix": "<specify-training-base-job-name>" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

TensorVariance

이 규칙은 분산이 매우 높거나 낮은 텐서가 있는지 감지합니다. 텐서의 분산이 매우 높거나 매우 낮으면 신경이 포화 상태가 되어 신경망의 학습 능력이 저하됩니다. 텐서의 분산이 매우 높으면 결국 텐서가 폭발할 수 있습니다. 이 규칙을 사용하여 이러한 문제를 조기에 감지합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다. collection_names 또는 tensor_regex 파라미터를 지정해야 합니다. 두 파라미터가 모두 지정되면 규칙은 두 집합에서 텐서 합집합을 검사합니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 파라미터 설명 TensorVariance
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

max_threshold

텐서 분산의 상한에 대한 임곗값입니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 없음

min_threshold

텐서 분산의 하한에 대한 임곗값입니다.

선택 사항

유효한 값: 부동 소수점.

기본값: 없음

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.tensor_variance(), rule_parameters={ "collection_names": "weights", "max_threshold": "10", "min_threshold": "0.00001", }, collections_to_save=[ CollectionConfig( name="weights", parameters={ "save_interval": "500" } ) ] ) ]

UnchangedTensor

이 규칙은 텐서가 더 이상 여러 단계에서 변경되지 않는지 여부를 감지합니다.

이 규칙은 numpy.allclose 메서드를 실행하여 텐서가 변경되지 않는지 확인합니다.

이 규칙은 지원되는 딥 러닝 프레임워크 (TensorFlow, MXNet PyTorch 및) 중 하나 또는 XGBoost 알고리즘에 적용할 수 있습니다. collection_names 또는 tensor_regex 파라미터를 지정해야 합니다. 두 파라미터가 모두 지정되면 규칙은 두 집합에서 텐서 합집합을 검사합니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 파라미터 설명 UnchangedTensor
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

collection_names

규칙이 검사하는 텐서의 컬렉션 이름 목록입니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: 없음

num_steps

텐서가 변경되었는지 확인하기 위해 규칙이 확인하는 단계 수입니다.

사용 가능한 마지막 num_steps 항목을 확인합니다. 항목들이 연속적일 필요는 없습니다. num_steps가 2이면 s 단계에서 반드시 s-1과 s를 확인할 필요가 없습니다. s-1을 사용할 수 없는 경우, s와 함께 마지막으로 사용 가능한 단계를 확인합니다. 이 경우 현재 단계에서 사용 가능한 마지막 단계를 확인합니다.

선택 사항

유효한 값: 정수

기본 값: 3

rtol

numpy.allclose 메서드에 전달할 상대 공차 파라미터입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 1e-05

atol

numpy.allclose 메서드에 전달할 절대 공차 파라미터입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 1e-08

equal_nan

NaNs 동일한 것으로 비교할지 여부. 입력 배열 a가 출력 NaNs 배열의 입력 배열 b와 같으면 True NaNs 이 파라미터는 numpy.allclose 메서드에 전달됩니다.

선택 사항

유효 값: 불

기본 값: False

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.unchanged_tensor(), rule_parameters={ "collection_names": "losses", "tensor_regex": "", "num_steps": "3", "rtol": "1e-05", "atol": "1e-08", "equal_nan": "False" }, collections_to_save=[ CollectionConfig( name="losses", parameters={ "save_interval": "500" } ) ] ) ]

CheckInput이미지

이 규칙은 입력 이미지가 올바르게 정규화 되었는지 확인합니다. 특히 표본 데이터의 평균이 0에서 임곗값을 초과해 차이가 나는지 감지합니다. 많은 컴퓨터 비전 모델에서는 입력 데이터의 평균 및 단위 분산이 0이어야 합니다.

이 규칙은 딥 러닝 애플리케이션에 적용할 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 CheckInputImages 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

threshold_mean

입력 데이터의 평균이 0과 어느 정도 차이가 날 수 있는지를 정의하는 임곗값입니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.2

threshold_samples

오류가 발생하기 전에 샘플링해야 하는 이미지 수입니다. 값이 너무 낮으면 데이터 집합 평균의 추정치가 부정확합니다.

선택 사항

유효한 값: 정수

기본 값: 500

regex

입력 데이터 텐서의 이름입니다.

선택 사항

유효값: 문자열

기본값: ".*hybridsequential0_input_0" (사용하는 Apache MXNet 모델의 입력 텐서 이름) HybridSequential

channel

입력 텐서 내 색상 채널의 위치로 인해 배열이 형성됩니다.

선택 사항

유효한 값: 정수

기본값: 1(예를 들어 MXNet은 입력 데이터를 (batch_size, channel, height, width) 형식으로 예상)

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.check_input_images(), rule_parameters={ "threshold_mean": "0.2", "threshold_samples": "500", "regex": ".*hybridsequential0_input_0", "channel": "1" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection", parameters={ "include_regex": ".*hybridsequential0_input_0", "save_interval": "500" } ) ] ) ]

NLP SequenceRatio

이 규칙은 성능 최적화에 유용한 입력 시퀀스의 나머지 부분에 주어진 특정 토큰의 비율을 계산합니다. 예를 들어, 입력 시퀀스에서 패딩 end-of-sentence (EOS) 토큰의 비율을 계산할 수 있습니다. EOS 토큰의 수가 너무 많으면 대체 버킷팅 전략을 수행해야 합니다. 입력 시퀀스에서 알 수 없는 토큰의 백분율을 계산할 수도 있습니다. 알 수 없는 단어 수가 너무 많으면 대체 어휘를 사용할 수 있습니다.

이 규칙은 딥 러닝 애플리케이션에 적용할 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

NLP 규칙의 파라미터 설명 SequenceRatio
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

tensor_regex

이 비교를 특정한 스칼라 값 텐서로 제한하는 데 사용되는 정규식 패턴 목록입니다. 이 규칙은 목록에 지정된 정규식 패턴과 일치하는 텐서만 검사합니다. 패턴이 전달되지 않으면 규칙은 기본적으로 시도 중에 수집된 모든 텐서를 비교합니다. 스칼라 값 텐서만 일치시킬 수 있습니다.

선택 사항

유효한 값: 문자열 또는 쉼표로 구분된 문자열 목록

기본값: ".*embedding0_input_0"(네트워크의 초기 레이어로 임베딩을 가정)

token_values

토큰의 숫자 값 목록의 문자열입니다. 예를 들어 "3, 0"입니다.

선택 사항

유효한 값: 쉼표로 구분된 숫자 값 문자열

기본 값: 0

token_thresholds_percent

token_values의 각각에 해당하는 임곗값 목록(백분율) 문자열입니다. 예를 들어 “50.0, 50.0"입니다.

선택 사항

유효한 값: 쉼표로 구분된 부동 소수점 문자열

기본 값: "50"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.nlp_sequence_ratio(), rule_parameters={ "tensor_regex": ".*embedding0_input_0", "token_values": "0", "token_thresholds_percent": "50" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection", parameters={ "include_regex": ".*embedding0_input_0" } ) ] ) ]

Confusion

이 규칙은 분류 문제에 대한 Confusion 행렬의 장점을 평가합니다.

크기 category_no*category_no에 대한 행렬을 생성하고 (labels, predictions) 쌍에서 나오는 데이터로 채 웁니다. 각각의 (labels, predictions) 쌍에서 confusion[labels][predictions]의 개수가 1씩 증가합니다. 행렬이 완전히 채워지면 데이터 대각선 상 값과 대각선 외 값의 비율이 다음과 같이 평가됩니다.

  • 대각선 상 요소의 경우: confusion[i][i]/sum_j(confusion[j][j])>=min_diag

  • 대각선 외 요소의 경우: confusion[j][i])/sum_j(confusion[j][i])<=max_off_diag

이 규칙은 XGBoost 알고리즘에 적용될 수 있습니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

Confusion 규칙에 대한 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

category_no

범주의 수입니다.

선택 사항

유효한 값: 정수 ≥2

기본 값: "None"

labels

labels 텐서 컬렉션 또는 참 레이블로 구성된 1차원 벡터.

선택 사항

유효값: 문자열

기본 값: "labels"

predictions

predictions 텐서 컬렉션 또는 추정 레이블로 구성된 1차원 벡터.

선택 사항

유효값: 문자열

기본 값: "predictions"

labels_collection

이 규칙은 labels에서 이 컬렉션의 텐서를 검사합니다.

선택 사항

유효값: 문자열

기본 값: "labels"

predictions_collection

이 규칙은 predictions에서 이 컬렉션의 텐서를 검사합니다.

선택 사항

유효값: 문자열

기본 값: "predictions"

min_diag

대각선상에 존재하는 데이터 비율의 최소 임곗값.

선택 사항

유효한 값: 0≤부동 소수점≤1

기본 값: 0.9

max_off_diag

대각선 밖에 존재하는 데이터 비율의 최대 임곗값.

선택 사항

유효한 값: 0≤부동 소수점≤1

기본 값: 0.1

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.confusion(), rule_parameters={ "category_no": "10", "labels": "labels", "predictions": "predictions", "labels_collection": "labels", "predictions_collection": "predictions", "min_diag": "0.9", "max_off_diag": "0.1" }, collections_to_save=[ CollectionConfig( name="labels", parameters={ "save_interval": "500" } ), CollectionConfig( name="predictions", parameters={ "include_regex": "500" } ) ] ) ]
참고

이 규칙은 선택적 파라미터의 값이 지정되지 않은 경우 기본값을 추론합니다.

FeatureImportance오버웨이트

이 규칙은 단계마다 가장 큰 기능 중요도 값 n개의 가중치를 누적시켜 이 값이 임곗값을 초과하지 않게 합니다. 그 예로 최상위 3개 기능의 임곗값이 모델의 총 가중치의 80% 를 넘지 않도록 설정할 수 있습니다.

이 규칙은 XGBoost 알고리즘에 대해서만 유효합니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 FeatureImportanceOverweight 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

threshold

최대 기능 n개에서 발생한 누적 합계의 비율에 대한 임곗값을 정의합니다. 이 n 값은 nfeatures 파라미터로 정의됩니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 0.8

nfeatures

최대 기능의 개수.

선택 사항

유효한 값: 정수

기본 값: 3

tensor_regex

텐서의 정규식(regex)은 분석할 규칙의 이름을 지정합니다.

선택 사항

유효값: 문자열

기본 값: ".*feature_importance/weight"

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.feature_importance_overweight(), rule_parameters={ "threshold": "0.8", "nfeatures": "3", "tensor_regex": ".*feature_importance/weight" }, collections_to_save=[ CollectionConfig( name="feature_importance", parameters={ "save_interval": "500" } ) ] ) ]

TreeDepth

이 규칙은 XGBoost 모델의 트리 깊이를 측정합니다. XGBoost는 손실이 개선되지 않을 경우 분할을 거부합니다. 그리고 훈련을 정규화합니다. 그 결과 트리가 depth 파라미터로 정의된 깊이만큼 확장되지 않을 수도 있습니다.

이 규칙은 XGBoost 알고리즘에 대해서만 유효합니다.

기본 제공 규칙을 구성하고 배포하는 방법의 예는 Debugger 기본 제공 규칙 구성 단원을 참조하세요.

규칙의 TreeDepth 파라미터 설명
파라미터 이름 설명
base_trial

기본 시험 훈련 작업 이름입니다. Amazon SageMaker Debugger는 이 파라미터를 현재 교육 작업으로 자동 설정합니다.

필수

유효값: 문자열

depth

트리의 깊이입니다. 트리의 깊이는 가장 큰 노드 ID의 밑이 2인 로그를 계산하여 얻습니다.

선택 사항

유효한 값: 부동 소수점.

기본 값: 4

built_in_rules = [ Rule.sagemaker( base_config=rule_configs.tree_depth(), rule_parameters={ "depth": "4" }, collections_to_save=[ CollectionConfig( name="tree", parameters={ "save_interval": "500" } ) ] ) ]