기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
디버거 내장 프로파일러 규칙 목록
Amazon SageMaker Debugger에서 제공하는 디버거 내장 프로파일러 규칙을 사용하여 모델을 훈련하는 동안 수집된 메트릭을 분석할 수 있습니다. 디버거 내장 규칙은 훈련 작업을 성공적으로 실행하는 데 중요한 다양한 공통 조건을 모니터링합니다. 사용자는 Amazon SageMaker Python SDK
참고
사용자가 훈련 작업에 연결할 수 있는 내장 프로파일러 규칙의 최대 수는 20개입니다. 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)
프로파일러 규칙
다음은 ProfilerRule.sagemaker
클래스 메서드를 사용하여 호출할 수 있는 디버거 내장 규칙입니다.
프로파일링 보고서를 생성하기 위한 디버거 내장 규칙
유효 범위 | 내장 규칙 |
---|---|
모든 SageMaker 훈련 작업에 대한 프로파일링 보고서 |
하드웨어 시스템 리소스 사용률(시스템 메트릭)을 프로파일링하기 위한 디버거 내장 규칙
유효 범위 | 내장 규칙 |
---|---|
모든 SageMaker 훈련 작업에 대한 일반 시스템 모니터링 규칙 |
프레임워크 메트릭을 프로파일링하기 위한 디버거 내장 규칙
유효 범위 | 내장 규칙 |
---|---|
딥러닝 프레임워크의 프로파일링 규칙(TensorFlow 및 PyTorch) |
주의
Amazon SageMaker Profiler를 위해 SageMaker AI Debugger는 TensorFlow 2.11 및 PyTorch 2.0부터 프레임워크 프로파일링 기능을 사용 중단합니다. 이전 버전의 프레임워크와 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
파라미터 설명 테이블을 참조하세요.
각 내장 규칙에 대한 샘플 규칙 구성 코드는 파라미터 설명 표 아래에 제공됩니다.
-
디버거 내장 규칙 사용에 대한 전체 지침 및 예제는 Debugger 기본 제공 규칙 예제 코드 섹션을 참조하세요.
-
저수준 SageMaker API 작업에서 내장 규칙을 사용하는 방법에 대한 전체 지침은 SageMaker API를 사용한 Debugger 구성 섹션을 참조하세요.
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 Debugger 프로파일링 보고서를 참조하세요. 또한 이 규칙은 모든 프로파일링 규칙을 활성화하므로 사용자는 SageMaker Studio Experiments의 SageMaker Debugger UI를 사용하여 규칙 분석 상태를 확인할 수도 있습니다.
OverallSystemUsage 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
<BuiltInRuleName>_<parameter_name> |
기타 내장된 모니터링 및 프로파일링 규칙의 임곗값을 조정할 수 있는 사용자 지정 가능한 파라미터. 선택 사항 기본 값: |
BatchSize
BatchSize 규칙은 배치 크기가 작아 GPU 사용률이 낮은지 여부를 감지하는 데 도움이 됩니다. 이 문제를 감지하기 위해 이 규칙은 평균 CPU 사용률, GPU 사용률, GPU 메모리 사용률을 모니터링합니다. CPU, GPU 및 GPU 메모리 사용률이 평균적으로 낮으면 훈련 작업이 더 작은 인스턴스 유형에서 실행되거나 더 큰 배치 크기로 실행될 수 있음을 의미할 수 있습니다. 메모리를 과도하게 할당하는 프레임워크에서는 이 분석이 효과가 없습니다. 하지만 배치 크기를 늘리면 각 반복마다 더 많은 데이터 사전 처리 시간이 필요하기 때문에 처리 또는 데이터 로드 병목 현상이 발생할 수 있습니다.
BatchSize 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
cpu_threshold_p95 |
CPU 사용률 95분위수의 임곗값을 백분율로 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
gpu_threshold_p95 |
GPU 사용률의 95번째 분위수 임곗값을 백분율로 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
gpu_memory_threshold_p95 |
GPU 메모리 사용률의 95번째 분위수 임곗값을 백분율로 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
patience |
규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요. 선택 사항 유효한 값: 정수 기본값: |
window |
분위수 계산을 위한 창 크기. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
CPU 병목 현상
CPU 병목 현상 규칙은 CPU 병목 현상으로 인해 GPU 사용률이 낮은지 감지하는 데 도움이 됩니다. CPU 병목 현상이 사전 정의된 임곗값을 초과하는 경우 규칙은 True를 반환합니다.
CPU 병목 현상 규칙의 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
threshold |
총 훈련 시간에 병목 현상이 발생한 시간의 비율에 대한 임곗값을 정의합니다. 비율이 임곗값 파라미터에 지정된 백분율을 초과하는 경우 규칙은 규칙 상태를 True로 전환합니다. 선택 사항 유효한 값: 정수 기본값: |
gpu_threshold |
낮은 GPU 사용률을 정의하는 임곗값입니다. 선택 사항 유효한 값: 정수 기본값: |
cpu_threshold |
높은 CPU 사용률을 정의하는 임곗값입니다. 선택 사항 유효한 값: 정수 기본값: |
patience |
규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
GPU 메모리 증가
GPU 메모리 증가 규칙은 GPU의 메모리 사용량이 크게 증가하는 것을 감지하는 데 도움이 됩니다.
GPU 메모리 증가 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
increase |
절대 메모리 증가 임곗값을 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
patience |
규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요. 선택 사항 유효한 값: 정수 기본값: |
window |
분위수 계산을 위한 창 크기. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
IO 병목 현상
이 규칙은 데이터 I/O 병목 현상으로 인해 GPU가 제대로 사용되지 않는지 감지하는 데 도움이 됩니다. IO 병목 현상 수가 사전 정의된 임곗값을 초과하는 경우 규칙은 True를 반환합니다.
IO병목 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
threshold |
규칙이 True를 반환할 때의 임곗값을 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
gpu_threshold |
GPU 사용률이 낮은 것으로 간주되는 시기를 정의하는 임곗값입니다. 선택 사항 유효한 값: 정수 기본값: |
io_threshold |
높은 IO 대기 시간을 정의하는 임곗값입니다. 선택 사항 유효한 값: 정수 기본값: |
patience |
규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
LoadBalancing
LoadBalancing 규칙은 여러 GPU 간의 워크로드 밸런싱 문제를 감지하는 데 도움이 됩니다.
로드밸런싱 규칙의 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
threshold |
워크로드 비율을 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
patience |
규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
낮은 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번째 분위수의 임곗값입니다. 선택 사항 유효한 값: 정수 기본값: |
threshold_p5 |
5번째 분위수의 임곗값. 기본값은 10%입니다. 선택 사항 유효한 값: 정수 기본값: |
patience |
규칙 평가가 시작될 때까지 건너뛸 데이터 포인트 수를 정의합니다. 훈련 작업의 처음 몇 단계는 일반적으로 데이터 프로세스의 양이 많기 때문에 인내심을 갖고 이 파라미터로 지정한 프로파일링 데이터를 일정 수만큼 사용하여 규칙이 너무 빨리 호출되지 않도록 하세요. 선택 사항 유효한 값: 정수 기본값: |
window |
분위수 계산을 위한 창 크기. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
전체 시스템 사용량
전체 시스템 사용 규칙은 작업자 노드당 전체 시스템 사용량을 측정합니다. 이 규칙은 현재 노드당 값을 집계하고 백분위수만 계산합니다.
OverallSystemUsage 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
최대 초기화 시간
MaxInitializationTime 규칙은 훈련 초기화에 너무 많은 시간이 걸리는지 감지하는 데 도움이 됩니다. 규칙은 첫 번째 단계를 사용할 수 있을 때까지 기다립니다.
최대 초기화 시간 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
threshold |
첫 번째 단계를 사용할 수 있을 때까지 대기할 임곗값을 분 단위로 정의합니다. 선택 사항 유효한 값: 정수 기본값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
전체 프레임워크 지표
전체 FrameworkMetrics 규칙은 정방향 및 역방향 통과, 데이터 로드와 같은 프레임워크 지표에 소요되는 시간을 요약합니다.
OverallFrameworkMetrics 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |
스텝 아웃라이어
StepOutlier 규칙은 걸음 지속 시간의 이상치를 탐지하는 데 도움이 됩니다. 이 규칙은 단계 지속 시간이 특정 시간 범위에서 전체 단계 지속 시간의 stddev
시그마보다 큰 특이치가 있는 경우 True
를 반환합니다.
StepOutlier 규칙에 대한 파라미터 설명
파라미터 이름 | 설명 |
---|---|
base_trial |
기본 시험 훈련 작업 이름입니다. 이 파라미터는 Amazon SageMaker Debugger에서 현재 훈련 작업으로 자동 설정합니다. 필수 유효값: 문자열 |
stddev |
표준 편차를 곱할 요인을 정의합니다. 예를 들어, 스텝 지속 시간이 표준 편차의 5배보다 크거나 작을 때 이 규칙이 기본적으로 호출됩니다. 선택 사항 유효한 값: 정수 기본값: |
mode |
단계가 저장되고 어떤 규칙이 실행되어야 하는 모드입니다. 기본 규칙은 EVAL 및 TRAIN 단계의 단계에서 실행됩니다. 선택 사항 유효한 값: 정수 기본값: |
n_outliers |
규칙이 True를 반환하기 전에 무시해야 할 이상치 수 선택 사항 유효한 값: 정수 기본 값: |
scan_interval_us |
타임라인 파일을 스캔하는 시간 간격. 선택 사항 유효한 값: 정수 기본값: |