Amazon MLS-C01: 훈련, 분산 훈련 및 하이퍼파라미터 최적화 — 학습 가이드

다음의 일부입니다: AWS Machine Learning Specialty MLS-C01 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.

훈련 작업, 컨테이너, 클라우드 훈련으로의 최소 코드 전환

훈련 워크로드를 SageMaker로 이전할 때 가장 중요한 설계 목표는 모델 코드 재작성을 피하면서, 컨테이너 런타임이 예상되는 SageMaker 환경 변수와 채널 경로를 노출하도록 보장하는 것입니다. 프레임워크별 Estimator(PyTorch, TensorFlow, XGBoost)와 함께 SageMaker 스크립트 모드를 사용하면 최소한의 변경으로 동일한 훈련 스크립트가 로컬과 클라우드에서 모두 실행될 수 있습니다. 즉, SM_CHANNEL_TRAIN에서 데이터를 읽고, SM_MODEL_DIR에 모델을 쓰고, SM_NUM_GPUS/SM_HOSTS/SM_CURRENT_HOST를 준수하도록 합니다. 사용자 지정 환경의 경우, 공식 AWS Deep Learning Containers(또는 SageMaker 훈련 툴킷)를 확장하는 Docker 이미지를 빌드하고 Amazon ECR에 푸시하세요. 이때 컨테이너 진입점(entry point)이 SageMaker의 훈련 계약(training contract)을 준수하도록 해야 합니다. 컴퓨팅 프로파일에 따라 인스턴스 유형을 선택하세요. CPU 중심 작업은 ml.c5/m5 패밀리, GPU 훈련은 ml.p3, ml.p4d, g4dn 또는 g5 인스턴스에서 실행합니다. 인스턴스 크기는 메모리와 GPU 대 CPU 비율에 따라 선택합니다. 흔히 저지르는 실수로는 로컬 파일 경로를 하드코딩하거나, 단일 호스트를 가정하거나(분산 작업 시 문제 발생), I/O 성능에 영향을 미치는 훈련 입력 모드(Pipe 대 File)를 선언하지 않는 것 등이 있습니다. 재현성과 비용 예측 가능성을 위해, 견고한 체크포인팅을 추가하고 Spot 중단을 허용하도록 max_wait > max_run으로 설정한 후에만 관리형 스팟 훈련을 활성화하세요.

분산 훈련 패턴, 데이터 입력 모드 및 스토리지 선택

분산 딥러닝은 모델 병렬 처리, 데이터 병렬 처리, I/O 아키텍처 간의 균형을 맞춰야 합니다. 단일 호스트 멀티 GPU 및 멀티 호스트 훈련의 경우, 프레임워크의 네이티브 기본 요소(primitive)인 torch.distributed 또는 TensorFlow의 MultiWorkerMirroredStrategy를 사용하거나, SageMaker의 smdistributed 라이브러리를 활용하세요. 데이터 병렬 확장을 위해서는 smdistributed.dataparallel을, 초대형 트랜스포머 모델을 위해서는 smdistributed.modelparallel 또는 DeepSpeed를 사용합니다. 대용량 데이터셋의 표준 스토리지로는 S3를 사용하되, 많은 작은 S3 GET 요청은 피해야 합니다. 파일을 더 적은 수의 아카이브로 통합하거나, RecordIO/TFRecord 샤딩된 파일을 사용하거나, POSIX 파일 시스템을 연결하세요. 대용량 데이터셋의 경우 로컬 디스크 사용량과 시작 시간을 줄이기 위해 S3에서 훈련 데이터를 직접 스트리밍하는 Pipe 모드를 선택하세요. 훈련에 임의 접근(random-access)이 필요하거나 전체 데이터셋이 EBS 볼륨에 있어야 할 때는 File 모드를 사용합니다. 여러 인스턴스에 걸쳐 높은 처리량과 POSIX 시맨틱이 필요할 경우, Amazon FSx for Lustre 또는 Amazon EFS를 마운트하세요. FSx는 고성능 병렬 읽기에 더 적합합니다. 흔히 저지르는 실수로는 호스트 간에 데이터를 샤딩하지 않아 중복을 유발하거나, 인스턴스당 S3 처리량을 과대평가하거나, 병렬성을 높일 때 배치 크기 및 학습률 스케일링 규칙을 무시하는 것 등이 있습니다.

스팟 훈련, 체크포인팅 및 비용 최적화 전략

훈련 설계가 중단을 허용할 수 있다면 관리형 스팟 훈련으로 비용을 크게 절감할 수 있습니다. SageMaker Estimator(use_spot_instances=True)를 통해 관리형 스팟을 구성하고, 체크포인팅을 추가하세요. 영구적인 checkpoint_s3_uri와 로컬 checkpoint_dir을 제공하고, 재작업 시간을 제한할 수 있을 만큼 충분히 자주 체크포인트를 저장해야 합니다. 작업이 스팟 기간 내에 중단된 인스턴스를 재시도할 수 있도록 max_waitmax_run보다 훨씬 높게 설정하세요. 프레임워크의 경우, 원자적(atomic) 체크포인트 쓰기와 견고한 재개 로직을 구현하여 최신 S3 체크포인트를 검사하고, 옵티마이저와 스케줄러 상태를 복원한 다음, 훈련을 계속하도록 하세요. 체크포인트 빈도는 쓰기 오버헤드와 잠재적인 컴퓨팅 낭비 사이의 균형을 맞춰야 합니다. 에포크가 길거나 모델이 매우 큰 경우, 그래디언트 누적 스냅샷이나 스텝 기반 저장을 사용하여 에포크 중간에 체크포인트를 생성하세요. 비용 함정으로는 체크포인트를 S3에 영구 저장하는 것을 잊거나(중단 시 전체 재시작 유발), 임시 인스턴스 스토리지에 의존하거나, max_waitmax_run과 동일하게 설정하여 재시도를 막는 경우 등이 있습니다. 추가적인 컴퓨팅 절약을 위해 스팟과 혼합 정밀도(AMP)를 결합하고, S3 쓰기 비용과 재개 지연 시간을 줄이기 위해 더 작은 체크포인트 페이로드(가중치 + 옵티마이저만 저장)를 사용하세요.

하이퍼파라미터 최적화, 튜닝 전략 및 실용적인 결정 기준

효과적인 HPO는 검색 전략, 리소스 할당, 조기 중단을 혼합하여 사용합니다. SageMaker의 HyperparameterTuner는 랜덤 검색과 베이지안 검색을 지원하며, ContinuousParameter, IntegerParameter, CategoricalParameter 범위를 구성할 수 있습니다. 검색 공간이 넓은 경우, 먼저 랜덤 검색으로 넓게 탐색한 후 베이지안 최적화를 실행하여 유망한 영역을 집중적으로 탐색합니다. 예산을 절약하기 위해 Hyperband나 SageMaker의 내장 조기 중단과 같은 방법을 사용하고, 관련 실험 간에 결과를 재사용하기 위해 웜 스타트 튜닝을 사용합니다. 목표 지표를 신중하게 선택해야 합니다(불균형 작업에는 검증 AUC, 클래스 불균형 사기 탐지에는 F1, 재고 부족 시나리오에는 사용자 정의 비용 가중치 지표 등). 일반적인 함정으로는 너무 넓은 범위를 설정하여 많은 작업이 실패하게 만들거나, 실질적으로 연속형인 하이퍼파라미터에 범주형 인코딩을 사용하거나, 리소스를 고려한 HPO를 확장하지 않는 것 등이 있습니다. 짧고 작은 인스턴스를 사용한 탐색 작업으로 대략적인 영역을 찾은 다음, 전체 크기 GPU 인스턴스에서 더 긴 시간 동안 실행하는 것이 좋습니다. 분산 훈련의 경우, 학습률, 배치 크기와 같은 알고리즘 하이퍼파라미터와 그래디언트 누적 스텝, 데이터 샤드 수와 같은 시스템 수준의 조정 변수를 모두 튜닝합니다. SageMaker Debugger로 계측하고 CloudWatch 지표를 사용하여 노이즈가 많은 측정값을 탐지합니다. 분산이 높을 경우, 구성당 반복 횟수를 늘리거나 중앙값 기반 선택을 사용합니다.

실제 문제: 사용 사례 시나리오

시나리오: FinRetailer는 SageMaker에서 수천 개의 SKU별 30일 수요 예측을 실행합니다. 이 회사는 수년간의 일일 CSV를 S3에 저장하고 있으며, 배치 스코어링 작업에서 허용 가능한 추론 지연 시간을 유지하면서 꼬리 수요(tail-demand) 품목에 대한 높은 정확도를 요구합니다.

과제: 긴 이력을 가지고 중요도가 불균형한(재고 과잉보다 재고 부족이 더 큰 비용을 유발) 수천 개의 시계열을 예측하면서, 드물게 발생하는 높은 수요 이벤트에 대한 정확도를 유지하고 컴퓨팅 비용을 최소화해야 합니다.

권장 접근 방식:

  1. SageMaker 내장 DeepAR 또는 Script Mode Estimator로 패키징된 사용자 정의 PyTorch 시계열 모델(Transformer 기반)을 사용합니다. 훈련 데이터는 샤딩된 RecordIO/TFRecord 파일로 저장하고, 높은 처리량의 다중 인스턴스 훈련을 위해 FSx for Lustre와 함께 파일 모드를 사용합니다.
  2. 더 작은 인스턴스를 사용한 분산 훈련(smddp 또는 Horovod)으로 시작하여 모델 아키텍처와 하이퍼파라미터를 튜닝하고, 베이지안 검색 및 조기 중단 기능이 있는 HyperparameterTuner를 사용합니다. 목표는 과소 예측에 더 큰 페널티를 부과하는 가중치 적용 분위수 손실(weighted quantile loss)로 정의합니다.
  3. checkpoint_s3_uri와 빈번한 스텝 기반 체크포인트를 설정하여 관리형 스팟 훈련을 활성화합니다. max_wait > max_run으로 설정하여 중단을 허용하고 최신 S3 체크포인트에서 재개할 수 있도록 합니다.
  4. 프로덕션 추론을 위해, 컴퓨팅 최적화 인스턴스에서 다중 모델 엔드포인트 또는 비동기 배치 변환 작업을 사용하여 배치 스코어링을 수행합니다. 후처리 비즈니스 규칙과 재고 부족 비용을 고려한 보정된 임계값을 적용합니다.

근거: DeepAR/Transformer 아키텍처를 사용하면 많은 시계열을 효율적으로 처리할 수 있습니다. 샤딩된 바이너리 형식과 FSx는 분산 훈련의 I/O 병목 현상을 줄여줍니다. 맞춤형 목표를 사용한 베이지안 HPO는 운영 비용 지표에 검색을 집중시키며, 체크포인트를 사용한 스팟 훈련은 진행 상황을 희생하지 않으면서 비용을 절감합니다.


시계열 및 예측 · 모든 도메인 · 배포

이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

시험 합격하기 →

Amazon 찾아보기 →

Related guides

올인원 액세스

하나의 구독. 모든 시험.

모든 플랜은 무제한 답변 검색, 모의고사, AI 해설, 전체 자료 라이브러리를 20개 이상의 언어로 잠금 해제합니다.

월간
24.87
Just €0.83/day
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

최고의 가치
12개월
179.87
Just €0.49/daySave 40%
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

✓ 무료 플랜 포함 · ✓ 언제든지 취소 가능 · ✓ 모든 플랜은 전체 제품을 잠금 해제합니다