디버거 내장 프로파일러 규칙 목록 - 아마존 SageMaker

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

디버거 내장 프로파일러 규칙 목록

Amazon Debugger에서 제공하는 디버거 내장 프로파일러 규칙을 사용하여 SageMaker 모델을 교육하는 동안 수집된 지표를 분석하십시오. 디버거 내장 규칙은 훈련 작업을 성공적으로 실행하는 데 중요한 다양한 공통 조건을 모니터링합니다. 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)

프로파일러 규칙

다음은 ProfilerRule.sagemaker 클래스 메서드를 사용하여 호출할 수 있는 디버거 내장 규칙입니다.

프로파일링 보고서를 생성하기 위한 디버거 내장 규칙
유효 범위 내장 규칙
모든 교육 작업에 대한 프로파일링 보고서 SageMaker
하드웨어 시스템 리소스 사용률(시스템 메트릭)을 프로파일링하기 위한 디버거 내장 규칙
유효 범위 내장 규칙
모든 SageMaker 교육 작업에 대한 일반 시스템 모니터링 규칙
프레임워크 메트릭을 프로파일링하기 위한 디버거 내장 규칙
유효 범위 내장 규칙
딥러닝 프레임워크의 프로파일링 규칙 (TensorFlow 및) PyTorch
주의

Amazon SageMaker 프로파일러를 선호하여 SageMaker 디버거는 2.11 및 2.0부터 프레임워크 프로파일링 기능을 더 이상 사용하지 않습니다. TensorFlow PyTorch 이전 버전의 프레임워크와 SDK에서 사용자는 다음과 같이 이 기능을 계속 사용할 수 있습니다.

  • SageMaker Python SDK <= v2.130.0

  • PyTorch >= v1.6.0, < v2.0

  • TensorFlow >= v2.3.1, < v2.11

2023년 3월 16일 섹션도 참조하세요.

기본 파라미터 값과 함께 내장 규칙을 사용하려면 다음 구성 형식을 사용하세요.

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n()) ]

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

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) ]

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

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

ProfilerReport

이 ProfilerReport 규칙은 모니터링 및 프로파일링을 위한 기본 제공 규칙을 모두 호출합니다. 프로파일링 보고서를 생성하고 개별 규칙이 트리거되면 업데이트됩니다. 사용자는 훈련 작업이 실행 중이거나 훈련 작업이 완료된 후에 포괄적인 프로파일링 보고서를 다운로드할 수 있습니다. 사용자는 규칙 파라미터 값을 조정하여 내장 모니터링 및 프로파일링 규칙의 민감도를 사용자 지정할 수 있습니다. 다음 예제 코드는 규칙을 통해 기본 제공 규칙 매개변수를 조정하는 기본 형식을 보여줍니다. ProfilerReport

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( <BuiltInRuleName>_<parameter_name> = value ) ) ]

다음 예제 코드와 같이 사용자 지정된 매개 변수 없이 이 ProfilerReport 규칙을 트리거하면 ProfilerReport 규칙이 기본 매개 변수 값을 사용하여 모니터링 및 프로파일링을 위한 기본 제공 규칙을 모두 트리거합니다.

rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]

다음 예제 코드는 CPUBottleneck 규칙의 cpu_threshold 파라미터와 IOBottleneck 규칙의 threshold 파라미터를 지정하고 조정하는 방법을 보여줍니다.

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( CPUBottleneck_cpu_threshold = 90, IOBottleneck_threshold = 90 ) ) ]

프로파일러 보고서의 내용을 살펴보려면 디버거 프로파일링 보고서를 참조하십시오SageMaker . 또한 이 규칙은 모든 프로파일링 규칙을 활성화하므로 Studio Experiment의 디버거 UI를 사용하여 규칙 분석 상태를 확인할 수도 있습니다. SageMaker SageMaker

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

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

필수

유효값: 문자열

<BuiltInRuleName>_<parameter_name>

기타 내장된 모니터링 및 프로파일링 규칙의 임곗값을 조정할 수 있는 사용자 지정 가능한 파라미터.

선택 사항

기본 값: None

BatchSize

이 BatchSize 규칙은 배치 크기가 작아서 GPU 사용률이 낮은지 여부를 감지하는 데 도움이 됩니다. 이 문제를 감지하기 위해 이 규칙은 평균 CPU 사용률, GPU 사용률, GPU 메모리 사용률을 모니터링합니다. CPU, GPU 및 GPU 메모리 사용률이 평균적으로 낮으면 훈련 작업이 더 작은 인스턴스 유형에서 실행되거나 더 큰 배치 크기로 실행될 수 있음을 의미할 수 있습니다. 메모리를 과도하게 할당하는 프레임워크에서는 이 분석이 효과가 없습니다. 하지만 배치 크기를 늘리면 각 반복마다 더 많은 데이터 사전 처리 시간이 필요하기 때문에 처리 또는 데이터 로드 병목 현상이 발생할 수 있습니다.

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

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

필수

유효값: 문자열

cpu_threshold_p95

CPU 사용률 95분위수의 임곗값을 백분율로 정의합니다.

선택 사항

유효한 값: 정수

기본값: 70(백분율)

gpu_threshold_p95

GPU 사용률의 95번째 분위수 임곗값을 백분율로 정의합니다.

선택 사항

유효한 값: 정수

기본값: 70(백분율)

gpu_memory_threshold_p95

GPU 메모리 사용률의 95번째 분위수 임곗값을 백분율로 정의합니다.

선택 사항

유효한 값: 정수

기본값: 70(백분율)

patience

규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요.

선택 사항

유효한 값: 정수

기본값: 100

window

분위수 계산을 위한 창 크기.

선택 사항

유효한 값: 정수

기본값: 500

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

CPU 병목 현상

CPU 병목 현상 규칙은 CPU 병목 현상으로 인해 GPU 사용률이 낮은지 감지하는 데 도움이 됩니다. CPU 병목 현상이 사전 정의된 임곗값을 초과하는 경우 규칙은 True를 반환합니다.

CPU 병목 현상 규칙의 파라미터 설명
파라미터 이름 설명
base_trial

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

필수

유효값: 문자열

threshold

총 훈련 시간에 병목 현상이 발생한 시간의 비율에 대한 임곗값을 정의합니다. 비율이 임곗값 파라미터에 지정된 백분율을 초과하는 경우 규칙은 규칙 상태를 True로 전환합니다.

선택 사항

유효한 값: 정수

기본값: 50(백분율)

gpu_threshold

낮은 GPU 사용률을 정의하는 임곗값입니다.

선택 사항

유효한 값: 정수

기본값: 10(백분율)

cpu_threshold

높은 CPU 사용률을 정의하는 임곗값입니다.

선택 사항

유효한 값: 정수

기본값: 90(백분율)

patience

규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요.

선택 사항

유효한 값: 정수

기본값: 100

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

GPU MemoryIncrease

GPU MemoryIncrease 규칙은 GPU의 메모리 사용량이 크게 증가하는 것을 감지하는 데 도움이 됩니다.

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

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

필수

유효값: 문자열

increase

절대 메모리 증가 임곗값을 정의합니다.

선택 사항

유효한 값: 정수

기본값: 10(백분율)

patience

규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요.

선택 사항

유효한 값: 정수

기본값: 100

window

분위수 계산을 위한 창 크기.

선택 사항

유효한 값: 정수

기본값: 500

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

IO 병목 현상

이 규칙은 데이터 I/O 병목 현상으로 인해 GPU가 제대로 사용되지 않는지 감지하는 데 도움이 됩니다. IO 병목 현상 수가 사전 정의된 임곗값을 초과하는 경우 규칙은 True를 반환합니다.

IO병목 규칙에 대한 파라미터 설명
파라미터 이름 설명
base_trial

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

필수

유효값: 문자열

threshold 규칙이 True를 반환할 때의 임곗값을 정의합니다.

선택 사항

유효한 값: 정수

기본값: 50(백분율)

gpu_threshold

GPU 사용률이 낮은 것으로 간주되는 시기를 정의하는 임곗값입니다.

선택 사항

유효한 값: 정수

기본값: 70(백분율)

io_threshold 높은 IO 대기 시간을 정의하는 임곗값입니다.

선택 사항

유효한 값: 정수

기본값: 50(백분율)

patience 규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요.

선택 사항

유효한 값: 정수

기본값: 1000

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

LoadBalancing

이 LoadBalancing 규칙은 여러 GPU 간의 워크로드 밸런싱 문제를 감지하는 데 도움이 됩니다.

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

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

필수

유효값: 문자열

threshold

워크로드 비율을 정의합니다.

선택 사항

유효한 값: 정수

기본값: 0.5(단위 없는 비율)

patience

규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요.

선택 사항

유효한 값: 정수

기본값: 10

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

낮은 GPU 사용률

낮은 GPU 사용률 규칙은 GPU 사용률이 낮은지 또는 변동이 있는지 감지하는 데 도움이 됩니다. 이는 각 워커의 각 GPU에 대해 확인됩니다. 규칙은 95번째 분위수가 사용률 저하를 나타내는 threshold d_p95 미만이면 True를 반환합니다. 95번째 분위수가 임곗값_p95를 초과하고 5번째 분위수가 변동을 나타내는 threshold p5 미만인 경우 규칙은 true를 반환합니다.

낮은 GPU 사용률 규칙에 대한 파라미터 설명
파라미터 이름 설명
base_trial

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

필수

유효값: 문자열

threshold_p95

GPU 사용률이 낮은 것으로 간주되는 95번째 분위수의 임곗값입니다.

선택 사항

유효한 값: 정수

기본값: 70(백분율)

threshold_p5 5번째 분위수의 임곗값. 기본값은 10%입니다.

선택 사항

유효한 값: 정수

기본값: 10(백분율)

patience

규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요.

선택 사항

유효한 값: 정수

기본값: 1000

window

분위수 계산을 위한 창 크기.

선택 사항

유효한 값: 정수

기본값: 500

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

OverallSystem사용량

이 OverallSystemUsage 규칙은 작업자 노드당 전체 시스템 사용량을 측정합니다. 이 규칙은 현재 노드당 값을 집계하고 백분위수만 계산합니다.

OverallSystemUsage 규칙의 매개변수 설명
파라미터 이름 설명
base_trial

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

필수

유효값: 문자열

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

MaxInitialization시간

이 MaxInitializationTime 규칙은 훈련 초기화에 너무 많은 시간이 걸리는지 감지하는 데 도움이 됩니다. 규칙은 첫 번째 단계를 사용할 수 있을 때까지 기다립니다.

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

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

필수

유효값: 문자열

threshold

첫 번째 단계를 사용할 수 있을 때까지 대기할 임곗값을 분 단위로 정의합니다.

선택 사항

유효한 값: 정수

기본값: 20(분 단위)

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

OverallFramework지표

이 OverallFrameworkMetrics 규칙은 정방향 및 역방향 통과, 데이터 로드와 같은 프레임워크 지표에 소요되는 시간을 요약합니다.

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

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

필수

유효값: 문자열

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)

StepOutlier

이 StepOutlier 규칙은 단계별 기간의 이상치를 감지하는 데 도움이 됩니다. 이 규칙은 단계 지속 시간이 특정 시간 범위에서 전체 단계 지속 시간의 stddev 시그마보다 큰 특이치가 있는 경우 True를 반환합니다.

규칙의 매개변수 설명 StepOutlier
파라미터 이름 설명
base_trial

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

필수

유효값: 문자열

stddev

표준 편차를 곱할 요인을 정의합니다. 예를 들어, 스텝 지속 시간이 표준 편차의 5배보다 크거나 작을 때 이 규칙이 기본적으로 호출됩니다.

선택 사항

유효한 값: 정수

기본값: 5(분 단위)

mode 단계가 저장되고 어떤 규칙이 실행되어야 하는 모드입니다. 기본 규칙은 EVAL 및 TRAIN 단계의 단계에서 실행됩니다.

선택 사항

유효한 값: 정수

기본값: 5(분 단위)

n_outliers 규칙이 True를 반환하기 전에 무시해야 할 이상치 수

선택 사항

유효한 값: 정수

기본 값: 10

scan_interval_us

타임라인 파일을 스캔하는 시간 간격.

선택 사항

유효한 값: 정수

기본값: 60000000(마이크로초 단위)