View a markdown version of this page

프로파일러 가용성 변경 - Amazon SageMaker AI

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

프로파일러 가용성 변경

참고

지원 종료 공지: 2027년 6월 30일에 AWS 는 Amazon SageMaker Profiler에 대한 지원을 종료합니다. 2027년 6월 30일 이후에는 더 이상 Profiler 콘솔 또는 Profiler 리소스에 액세스할 수 없습니다.

Amazon SageMaker Profiler 교체

현재 SageMaker Profiler를 사용하고 있는 경우이 지침에 따라 대체 서비스로 전환합니다.

개요

Amazon SageMaker Profiler는 커널 실행, 커널 시작, 동기화 작업, 메모리 작업, CPU 시작 시작과 GPU 커널 실행 간의 지연 시간을 포함하여 훈련 중 GPU 및 CPU 활동에 대한 심층적인 가시성을 제공했습니다. 이 가이드에서는 기존 Profiler 구성을 제거하고 훈련 성능 진단을 위해 프레임워크 네이티브 프로파일러, TensorBoard 및 Amazon CloudWatch를 채택하는 방법을 안내합니다.

PyTorch 및 TensorFlow 워크로드의 경우 프레임워크 네이티브 프로파일러와 TensorBoard의 조합은 오픈 소스 에코시스템에 직접 통합되어 동등한 커널 수준의 가시성을 제공합니다. Amazon CloudWatch는 구성 가능한 경보와 함께 시스템 수준 리소스 모니터링을 제공합니다. 이러한 도구는 함께 SageMaker Profiler의 훈련 성능 진단에 대한 대안을 제공합니다.

기능 매핑

프로파일러 기능 대체
GPU 커널 추적, CPU/GPU 사용률, 동기화 분석, 커널 launch-to-execution 지연 시간 PyTorch Profiler/TensorFlow Profiler + TensorBoard
데이터 로더 및 입력 파이프라인 프로파일링 프레임워크 프로파일러 + TensorBoard
시스템 리소스 모니터링(CPU, GPU, 메모리, 디스크) Amazon CloudWatch
사용자 지정 작업 주석 프레임워크 프로파일러 주석
프로파일러 UI 타임라인 시각화 TensorBoard Profiler 플러그인

1단계: Profiler 구성 제거

훈련 스크립트에서 smprof 주석 제거

훈련 스크립트가 SageMaker Profiler Python 모듈(smprof 또는 이전 smppy)을 사용하는 경우 다음을 제거합니다.

  • import smprof(또는 import smppy as smprof)

  • SMProfiler.instance(), SMProf.configure(), SMProf.start_profiling(), SMProf.stop_profiling()

  • 모든 smprof.annotate() 컨텍스트 관리자 및 smprof.annotation_begin() / smprof.annotation_end() 호출

훈련 구성에서 ProfilerConfig 제거

SageMaker 훈련 구성에서 profiler_config 파라미터를 제거합니다.

# Remove this configuration # V2 from sagemaker import ProfilerConfig, Profiler profiler_config = ProfilerConfig( profile_params = Profiler(cpu_profiling_duration=3600) ) # V3 from sagemaker.core.debugger.profiler_config import ProfilerConfig from sagemaker.core.debugger.profiler import Profiler

Amazon S3에서 Profiler 출력 삭제

SageMaker Profiler는 훈련 작업 rule-output 경로 아래에 프로필 데이터를 저장했습니다.

s3://<output-path>/<training-job-name>/rule-output/

기록 프로파일링 데이터가 더 이상 필요하지 않은 경우이 접두사를 삭제합니다. 훈련 작업 로그와 모델 아티팩트는 영향을 받지 않습니다.

SageMaker Profiler Python 패키지 제거(수동으로 설치된 경우)

requirements.txt 또는 사용자 지정 Docker 컨테이너에 smprof 패키지를 추가한 경우를 참조하는 줄을 제거합니다smppy.s3.amazonaws.com.

CloudWatch 로그 그룹 삭제(선택 사항)

에서 Profiler 규칙 처리에 의해 생성된 CloudWatch 로그 그룹을 확인합니다/aws/sagemaker/ProcessingJobs. 스토리지 비용을 줄이기 위해 더 이상 필요하지 않은 경우 이를 삭제합니다.

IAM 정책 검토

프로파일러 사용에 대해 특별히 권한을 부여한 IAM 정책을 제거합니다.

  • s3:GetObject / Profiler 규칙 출력 경로로 s3:PutObject 범위 지정

  • Profiler 지원만을 위해 훈련 작업에 연결된 역할

훈련 작업 또는 CloudWatch 모니터링에 여전히 필요한 모든 정책을 유지합니다.

종속 자동화 비활성화

Profiler 출력을 사용한 자동화를 업데이트하거나 삭제합니다.

  • Profiler 데이터를 처리한 Step Functions 워크플로

  • Profiler 출력에 의해 트리거되는 Amazon EventBridge 규칙

  • Profiler S3 경로에서 읽는 훈련 후 프로세서

2단계: 대체 구성

프레임워크 수준 프로파일링 활성화

프레임워크의 기본 제공 프로파일러를 사용하도록 훈련 스크립트를 업데이트합니다. PyTorch 및 TensorFlow 프로파일러는 타임라인 보기, 커널 통계 및 성능 권장 사항을 포함하여 시각화를 위해 TensorBoard와 직접 통합됩니다.

PyTorch:

import torch from torch.profiler import profile, schedule, tensorboard_trace_handler with profile( activities=[torch.profiler.ProfilerActivity.CPU, torch.profiler.ProfilerActivity.CUDA], schedule=schedule(wait=1, warmup=1, active=3, repeat=1), on_trace_ready=tensorboard_trace_handler("./tensorboard/logs"), record_shapes=True, profile_memory=True, with_stack=True ) as prof: for step, batch in enumerate(train_loader): inputs, labels = batch outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() prof.step()

특정 작업에 주석을 달려면( 대체smprof.annotate()):

with torch.profiler.record_function("forward_pass"): outputs = model(inputs) with torch.profiler.record_function("backward_pass"): loss.backward()

TensorFlow:

import tensorflow as tf tf.profiler.experimental.start("./tensorboard/logs") model.fit(train_dataset, epochs=5) tf.profiler.experimental.stop()
참고

SageMaker Profiler와 마찬가지로 전체 훈련 작업을 프로파일링하는 것은 권장되지 않습니다. 오버헤드를 최소화하기 위해 단계의 대표적인 하위 집합(최대 수백 개)을 프로파일링합니다.

TensorBoard로 시각화

TensorBoard를 시작하여 프로파일링 결과, 실행 타임라인 및 성능 권장 사항을 확인합니다.

tensorboard --logdir=./tensorboard/logs

TensorBoard Profiler 플러그인은 커널 통계, 실행 요약, 입력 파이프라인 분석 및 성능 권장 사항과 함께 SageMaker Profiler UI와 동등한 GPU 커널 타임라인을 제공합니다. SageMaker AI의 관리형 TensorBoard는 Amazon SageMaker AI의 TensorBoard를 참조하세요. 관리형 TensorBoard에는 SageMaker 도메인이 필요하며 일부 리전에서 사용할 수 있습니다.

시스템 모니터링 및 알림에 Amazon CloudWatch 사용

Amazon CloudWatch는 구성 가능한 경보를 지원하여 리소스 병목 현상, 사용률 저하 또는 예상치 못한 스파이크를 감지하고 훈련 실행 전반에 걸쳐 시스템 지표를 결합하는 대시보드를 통해 CPU, GPU, 메모리 및 디스크를 포함한 훈련 작업에 대한 리소스 사용률 지표를 실시간으로 캡처합니다. 자세한 단계는 훈련 작업 모니터링 및 분석을 위한 Amazon CloudWatch 지표를 참조하세요. 또는 훈련 스크립트의 시스템 성능 지표를 MLflow에 직접 로깅하여 실험 지표와 함께 통합 추적을 수행할 수 있습니다.

기존 데이터는 어떻게 되나요?

  • S3의 훈련 로그 및 아티팩트 - 훈련 작업 출력 및 모델 아티팩트는 계속 액세스할 수 있습니다. 이는 Profiler와 독립적입니다.

  • 프로파일러 트레이스 데이터 - 기록 프로파일링 데이터는 삭제할 rule-output/ 때까지의 S3에 남아 있습니다.

  • CloudWatch 지표 - CloudWatch에 이미 있는 기록 시스템 지표는 계정의 보존 설정에 따라 보존됩니다.