SageMaker 디버거 인터랙티브 리포트 - 아마존 SageMaker

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

SageMaker 디버거 인터랙티브 리포트

디버거에서 자동 생성된 프로파일링 보고서를 받으세요. 디버거 보고서는 훈련 작업에 대한 통찰력을 제공하고 모델 성능을 개선하기 위한 권장 사항을 제안합니다. 다음 스크린샷은 디버거 프로파일링 보고서 모음을 보여 줍니다. 자세한 내용은 SageMaker 디버거 프로파일링 보고서 단원을 참조하세요.

참고

훈련 작업이 실행되는 동안 또는 작업이 끝난 후에 디버거 보고서를 다운로드할 수 있습니다. 훈련 중에 디버거는 현재 규칙의 평가 상태를 반영하여 보고서를 동시에 업데이트합니다. 훈련 작업이 완료된 후에만 전체 디버거 보고서를 다운로드할 수 있습니다.

중요

보고서에서 도표 및 권장 사항은 정보 제공의 목적으로 제공되며 확정적인 것은 아닙니다. 사용자는 정보를 독립적으로 평가할 책임이 있습니다.

디버거 훈련 작업 요약 보고서의 예

SageMaker 디버거 프로파일링 보고서

모든 SageMaker 교육 작업의 경우 SageMaker 디버거 ProfilerReport 규칙은 모든 모니터링 및 프로파일링 규칙을 호출하고 규칙 분석을 종합적인 보고서로 집계합니다. 이 안내서에 따라 Amazon SageMaker Python SDK 또는 S3 콘솔을 사용하여 보고서를 다운로드하고 프로파일링 결과에서 해석할 수 있는 내용을 알아보십시오.

중요

보고서에서 플롯과 권장 사항은 정보 제공 목적으로 제공되며 확정적이지는 않습니다. 사용자는 정보를 독립적으로 평가할 책임이 있습니다.

디버거 프로파일링 보고서를 다운로드하십시오. SageMaker

Amazon SageMaker Python SDK 및 ( AWS Command Line Interface CLI) 를 사용하여 교육 작업이 실행되는 동안 또는 작업이 완료된 후에 SageMaker 디버거 프로파일링 보고서를 다운로드하십시오.

참고

디버거에서 생성된 프로파일링 보고서를 가져오려면 SageMaker 디버거에서 제공하는 내장 규칙을 사용해야 합니다. ProfilerReport SageMaker 훈련 작업에서 규칙을 활성화하려면 내장 프로파일러 규칙 구성을 참조하세요.

작은 정보

SageMaker 스튜디오 디버거 인사이트 대시보드에서 클릭 한 번으로 보고서를 다운로드할 수도 있습니다. 보고서를 다운로드하려면 추가 스크립팅이 필요하지 않습니다. Studio에서 보고서를 다운로드하는 방법을 알아보려면 Amazon SageMaker 디버거 인사이트 대시보드 열기 섹션을 참조하세요.

Download using SageMaker Python SDK and AWS CLI
  1. 현재 작업의 기본 S3 출력 기본 URI를 확인하세요.

    estimator.output_path
  2. 현재 작업 이름을 확인합니다.

    estimator.latest_training_job.job_name
  3. 디버거 프로파일링 보고서는 <default-s3-output-base-uri>/<training-job-name>/rule-output에 저장됩니다. 규칙 출력 경로를 다음과 같이 구성합니다.

    rule_output_path = estimator.output_path + estimator.latest_training_job.job_name + "/rule-output"
  4. 보고서가 생성되었는지 확인하려면 --recursive 옵션과 함께 aws s3 ls를 사용하여 rule_output_path 아래에 디렉토리와 파일을 재귀적으로 나열하세요.

    ! aws s3 ls {rule_output_path} --recursive

    그러면 ProfilerReport-1234567890로 이름이 지정된 자동 생성 폴더 아래에 있는 전체 파일 목록이 반환되어야 합니다. 폴더 이름은 문자열과 규칙 시작 시 Unix 타임스탬프를 기반으로 하는 고유한 10자리 태그의 조합입니다. ProfilerReport ProfilerReport

    규칙 출력의 예

    profiler-report.html은 디버거에서 자동 생성된 프로파일링 보고서입니다. 나머지 파일은 JSON에 저장된 내장 규칙 분석 구성 요소와 이를 보고서에 집계하는 데 사용되는 Jupyter notebook입니다.

  5. aws s3 cp를 사용하여 반복해서 파일을 다운로드합니다. 다음 명령은 모든 규칙 출력 파일을 현재 작업 디렉토리 아래의 ProfilerReport-1234567890 폴더에 저장합니다.

    ! aws s3 cp {rule_output_path} ./ --recursive
    작은 정보

    Jupyter notebook 서버를 사용하는 경우 !pwd를 실행하여 현재 작업 디렉토리를 다시 확인하세요.

  6. /ProfilerReport-1234567890/profiler-output 디렉터리 아래에서 profiler-report.html을 엽니다. 를 사용하는 경우 JupyterLab Trust HTML을 선택하면 자동 생성된 디버거 프로파일링 보고서가 표시됩니다.

    규칙 출력의 예
  7. profiler-report.ipynb 파일을 열어 보고서 생성 방법을 살펴보세요. Jupyter notebook 파일을 사용하여 프로파일링 보고서를 사용자 지정하고 확장할 수도 있습니다.

Download using Amazon S3 Console
  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.

  2. 기본 S3 버킷을 검색합니다. 예를 들어 기본 작업 이름을 지정하지 않은 경우 기본 S3 버킷 이름은 sagemaker-<region>-111122223333 형식이어야 합니다. 이름별 버킷 찾기 필드를 통해 기본 S3 버킷을 찾아보세요.

    규칙 출력 S3 버킷 URI의 예
  3. 기본 S3 버킷에서 접두사로 객체 찾기 입력 필드에 작업 이름 접두사를 지정하여 훈련 작업 이름을 조회합니다. 훈련 작업 이름을 선택합니다.

    규칙 출력 S3 버킷 URI의 예
  4. 훈련 작업의 S3 버킷에는 디버거에서 수집한 훈련 데이터를 위한 세 개의 하위 폴더, 즉 debug-output/, profiler-output/, and rule-output/이 있어야 합니다. rule-output/을 선택합니다.

    규칙 출력 S3 버킷 URI의 예
  5. 룰-출력/ 폴더에서 ProfilerReport -1234567890을 선택하고 프로파일러-출력/ 폴더를 선택합니다. profiler-output/ 폴더에는 profiler-report.html(html 형식의 자동 생성된 프로파일링 보고서), profiler-report.ipynb(보고서 생성에 사용되는 스크립트가 들어 있는 Jupyter notebook) 및 profiler-report/ 폴더(보고서의 구성 요소로 사용되는 규칙 분석 JSON 파일 포함)가 들어 있습니다.

  6. profiler-report.html 파일을 선택하고 [액션] 을 선택한 다음 [다운로드] 를 선택합니다.

    규칙 출력 S3 버킷 URI의 예
  7. 다운로드한 profiler-report.html 파일을 웹 브라우저에서 엽니다.

참고

디버거 관련 파라미터를 구성하지 않고 훈련 작업을 시작한 경우 디버거 파라미터가 프레임워크 지표를 저장하도록 구성되어 있지 않기 때문에 디버거는 시스템 모니터링 규칙만을 기반으로 보고서를 생성합니다. 프레임워크 메트릭 프로파일링을 활성화하고 확장된 디버거 프로파일링 보고서를 받으려면 추정기를 구성하거나 업데이트할 때 profiler_config 파라미터를 구성하십시오. SageMaker

훈련 작업을 시작하기 전에 profiler_config 파라미터를 구성하는 방법을 알아보려면 프레임워크 프로파일링을 위한 구성 섹션을 참조하세요.

현재 훈련 작업을 업데이트하고 프레임워크 지표 프로파일링을 활성화하려면 디버거 프레임워크 프로파일링 구성 업데이트를 참조하세요.

디버거 프로파일링 보고서 안내

이 섹션에서는 디버거 프로파일링 보고서를 섹션별로 살펴봅니다. 프로파일링 보고서는 모니터링 및 프로파일링을 위한 기본 제공 규칙을 기반으로 생성됩니다. 보고서에는 문제가 발견된 규칙에 대한 결과 플롯만 표시됩니다.

중요

보고서에서 플롯과 권장 사항은 정보 제공 목적으로 제공되며 확정적이지는 않습니다. 사용자는 정보를 독립적으로 평가할 책임이 있습니다.

훈련 작업 요약

디버거는 보고서를 시작할 때 훈련 작업에 대한 요약을 제공합니다. 이 섹션에서는 다양한 훈련 단계의 기간과 타임스탬프를 개괄적으로 살펴볼 수 있습니다.

디버거 프로파일링 보고서의 예

요약 표에는 다음 정보가 포함되어 있습니다.

  • 시작_시간 - 훈련 작업이 시작된 정확한 시간입니다.

  • 종료_시간 - 훈련 작업이 끝난 정확한 시간입니다.

  • 작업_기간_초 - 시작_시간부터 종료_시간까지의 총 훈련 시간입니다.

  • 훈련_루프_시작 - 첫 번째 에포크의 첫 번째 단계가 시작된 정확한 시간입니다.

  • 훈련_루프_종료 - 마지막 에포크의 마지막 단계가 끝난 정확한 시간입니다.

  • 훈련_루프_기간_초 - 훈련 루프 시작 시간과 훈련 루프 종료 시간 사이의 총 시간입니다.

  • 초기화_초 - 훈련 작업을 초기화하는 데 소요된 시간입니다. 초기화 단계는 시작_시간부터 훈련_루프_시작 시간까지의 기간을 포함합니다. 초기화 시간은 훈련 스크립트 컴파일, 훈련 스크립트 시작, 모델 생성 및 초기화, EC2 인스턴스 시작, 훈련 데이터 다운로드에 소요됩니다.

  • 마무리_초 - 모델 훈련 완료, 모델 아티팩트 업데이트, EC2 인스턴스 종료와 같은 훈련 작업을 마무리하는 데 소요되는 시간입니다. 초기화 단계는 훈련_루프_종료 시간부터 종료_시간까지의 기간을 포함합니다.

  • 초기화(%) - 전체 작업_기간_초 동안 초기화에 소요된 시간의 비율입니다.

  • 트레이닝 루프(%) - 총 작업_기간_초 대비 훈련 작업에 소요된 시간의 비율입니다.

  • 마무리(%) - 총 작업_기간_초 대비 마무리 작업에 소요된 시간의 비율입니다.

시스템 사용 통계

이 섹션에서는 시스템 사용률 통계의 개요를 볼 수 있습니다.

디버거 프로파일링 보고서의 예

디버거 프로파일링 보고서에는 다음 정보가 포함됩니다.

  • 노드 - 노드 이름을 나열합니다. 다중 노드(여러 EC2 인스턴스)에서 분산 훈련을 사용하는 경우 노드 이름은 algo-n 형식입니다.

  • 지표 - 디버거에서 수집한 시스템 지표: CPU, GPU, CPU 메모리, GPU 메모리, I/O, 네트워크 지표.

  • 단위 - 시스템 지표의 단위.

  • 최대 - 각 시스템 지표의 최대값입니다.

  • p99 - 각 시스템 사용률의 99번째 백분위수.

  • p95 - 각 시스템 사용률의 95번째 백분위수.

  • p50 - 각 시스템 사용률의 50번째 백분위수(중앙값).

  • 최소 - 각 시스템 지표의 최소값입니다.

프레임워크 지표 요약

이 섹션에서 다음 파이 차트는 CPU 및 GPU의 프레임워크 작업 분석을 보여줍니다.

디버거 프로파일링 보고서의 예

각 파이 차트는 수집된 프레임워크 지표를 다음과 같이 다양한 측면에서 분석합니다.

  • TRAIN/EVAL 단계와 기타 단계 사이의 비율 - 여러 훈련 단계에 소요된 기간 간의 비율을 보여줍니다.

  • 정방 전달과 역방 전달 간의 비율 - 훈련 루프에서 정방 전달과 역방 전달에 소요된 시간 간의 비율을 보여줍니다.

  • CPU/GPU 연산자 간 비율 - CPU 또는 GPU로 실행되는 연산자(예: 컨벌루션 연산자)에 소요된 시간 간의 비율을 보여줍니다.

  • 프레임워크에 기록된 일반 지표 - 데이터 로드, 정방 전달 및 역방 전달과 같은 주요 프레임워크 지표에 소요된 시간 간의 비율을 보여줍니다.

개요: CPU 연산자

이 섹션에서는 CPU 연산자에 대한 자세한 정보를 제공합니다. 이 표는 가장 자주 호출되는 CPU 연산자에 소요된 시간의 백분율과 절대 누적 시간을 보여줍니다.

디버거 프로파일링 보고서의 예
개요: GPU 연산자

이 섹션에서는 GPU 연산자에 대한 자세한 정보를 제공합니다. 이 표는 가장 자주 호출되는 GPU 연산자에 소요된 시간의 백분율과 절대 누적 시간을 보여줍니다.

디버거 프로파일링 보고서의 예

규칙 요약

이 섹션에서 디버거는 모든 규칙 평가 결과, 분석, 규칙 설명 및 제안을 집계합니다.

디버거 프로파일링 보고서의 예

훈련 루프 분석 - 스텝 기간

이 섹션에서는 각 노드의 각 GPU 코어에 대한 스텝 기간에 대한 자세한 통계를 확인할 수 있습니다. 디버거는 스텝 기간의 평균, 최대값, p99, p95, p50 및 최소값을 평가하고 스텝 이상값을 평가합니다. 다음 히스토그램은 여러 작업자 노드와 GPU에서 캡처된 스텝 기간을 보여줍니다. 오른쪽에 있는 범례를 선택하여 각 작업자의 히스토그램을 활성화하거나 비활성화할 수 있습니다. 스텝 기간 이상치를 유발하는 특정 GPU가 있는지 확인할 수 있습니다.

디버거 프로파일링 보고서의 예

GPU 사용률 분석

이 섹션에서는 LowGPUUtilization 규칙을 기반으로 GPU 코어 사용률에 대한 자세한 통계를 보여줍니다. 또한 GPU 사용률 통계(평균, p95, p5)를 요약하여 훈련 작업에서 GPU를 제대로 활용하지 못하고 있는지 확인합니다.

배치 크기

이 섹션에는 총 CPU 사용률, 개별 GPU 사용률, GPU 메모리 사용량에 대한 자세한 통계가 표시됩니다. BatchSize 규칙에 따라 GPU를 더 잘 활용하기 위해 배치 크기를 변경해야 하는지 여부가 결정됩니다. 배치 크기가 너무 작아서 사용률이 낮은지, 너무 커서 과다 사용 및 메모리 부족 문제가 발생하는지 확인할 수 있습니다. 도표의 상자에는 중앙값(p50)에서 각각 진한 보라색과 밝은 노란색으로 채워진 p25 및 p75 백분위수 범위가 표시되며, 오차 막대에는 하한에 대한 5번째 백분위수와 상한에 대한 95번째 백분위수가 표시됩니다.

디버거 프로파일링 보고서의 예

CPU 병목 현상

이 섹션에서는 CPUBottleneck 규칙이 훈련 작업에서 감지한 CPU 병목 현상을 자세히 살펴볼 수 있습니다. 이 규칙은 CPU 사용률이 cpu_threshold 초과인지(기본값 90%) 그리고 GPU 사용률이 gpu_threshold 미만인지(기본값 10%) 확인합니다.

디버거 프로파일링 보고서의 예

파이 차트에는 다음 정보가 표시됩니다.

  • CPU 병목 현상으로 인한 낮은 GPU 사용량 - GPU 사용률이 임계값 초과 및 미만인 항목과 CPU 병목 현상 기준과 일치하는 항목 간의 데이터 포인트 비율을 표시합니다.

  • TRAIN/EVAL 단계와 기타 단계 사이의 비율 - 여러 훈련 단계에 소요된 기간 간의 비율을 보여줍니다.

  • 정방 전달과 역방 전달 간의 비율 - 훈련 루프에서 정방 전달과 역방 전달에 소요된 시간 간의 비율을 보여줍니다.

  • CPU/GPU 연산자 간 비율 - Python 연산자(예: 데이터 로더 프로세스, 정방 전달 및 역방 전달 연산자)가 GPU와 CPU에 소비한 시간 간의 비율을 표시합니다.

  • 프레임워크에 기록된 일반 지표 - 주요 프레임워크 지표와 메트릭에 소요된 기간 간의 비율을 보여줍니다.

I/O 병목 현상

이 섹션에서는 I/O 병목 현상의 요약을 확인할 수 있습니다. 이 규칙은 I/O 대기 시간과 GPU 사용률을 평가하고 I/O 요청에 소요되는 시간이 총 훈련 시간의 임계값 백분율을 초과하는지 모니터링합니다. 이는 GPU가 스토리지로부터 데이터가 도착하기를 기다리는 I/O 병목 현상을 의미할 수 있습니다.

다중 GPU 훈련에서 로드 밸런싱

이 섹션에서는 GPU 전반의 워크로드 밸런싱 문제를 확인할 수 있습니다.

디버거 프로파일링 보고서의 예

GPU 메모리 분석

이 섹션에서는 GPU 규칙에 의해 수집된 GPU 메모리 사용률을 분석할 수 있습니다. MemoryIncrease 도표의 상자에는 중앙값(p50)에서 각각 진한 보라색과 밝은 노란색으로 채워진 p25 및 p75 백분위수 범위가 표시되며, 오차 막대에는 하한에 대한 5번째 백분위수와 상한에 대한 95번째 백분위수가 표시됩니다.

디버거 프로파일링 보고서의 예