Amazon MLA-C01: 모델 학습 및 하이퍼파라미터 최적화 — 학습 가이드
다음의 일부입니다: AWS Machine Learning Engineer Associate MLA-C01 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
핵심 개념
Amazon SageMaker의 모델 훈련은 컨테이너화된 훈련 코드, 컴퓨팅 리소스, 영구 스토리지, 그리고 선택적인 분산 통신 패브릭을 결합한 오케스트레이션된 프로세스입니다. SageMaker 훈련 작업은 훈련 이미지 또는 프레임워크 추정기(estimator), S3 위치를 가리키는 입력 데이터 명세, 그리고 InstanceType, InstanceCount, VolumeSizeInGB를 포함하는 리소스 구성으로 정의됩니다. 관리형 스팟 훈련을 위해서는 EnableManagedSpotTraining을 true로 설정하고 MaxWaitTimeInSeconds와 MaxRuntimeInSeconds를 제공하여, SageMaker가 여유 용량에 입찰하고 허용된 시간 내에 작업을 재개하거나 중지할 수 있도록 합니다. 체크포인팅은 S3Uri와 LocalPath를 사용하는 CheckpointConfig를 통해 구성됩니다. 관리형 스팟 인스턴스를 사용할 때는 자주 체크포인트를 수행해야 하며, 중단된 작업을 재시도할 수 있도록 MaxWaitTimeInSeconds를 MaxRuntimeInSeconds보다 충분히 크게 설정해야 합니다.
분산 훈련은 데이터 병렬 또는 모델 병렬 전략으로 구현됩니다. SageMaker는 PyTorch DistributedDataParallel 또는 Horovod를 통해 네이티브 분산 데이터 병렬 훈련을 지원하며, 최적화된 NCCL 통신을 위해 smdistributed.dataparallel과 함께 smdistributed 라이브러리를 제공합니다. 모델 병렬 처리는 smdistributed.modelparallel 또는 프레임워크별 파티셔닝을 통해 사용할 수 있습니다. 높은 처리량의 노드 간 통신을 위해서는 NVLink 및 EFA(Elastic Fabric Adapter)를 지원하는 인스턴스 패밀리가 필요합니다. 효율적인 그래디언트 all-reduce를 위해 ml.p4d, ml.p3dn 또는 기타 EFA 지원 인스턴스 유형을 선택하고 훈련 스크립트의 요구에 따라 use_mpi 또는 use_nccL을 설정하십시오. 대규모 작업의 경우, 모델 샤드 크기에 맞춰진 GPU 메모리 및 네트워크 특성을 가진 InstanceTypes를 제공하여 컴퓨팅 대 통신 비율의 균형을 맞춰야 합니다.
하이퍼파라미터 최적화는 SageMaker Automatic Model Tuning(AMT)으로 처리됩니다. AMT는 많은 훈련 작업을 시작하여 하이퍼파라미터 공간을 탐색하고 목표 지표를 최적화합니다. HyperParameterTuningJobConfig에는 ParameterRanges, MaxNumberOfTrainingJobs와 MaxParallelTrainingJobs를 포함하는 ResourceLimits, 그리고 Strategy(기본값은 Bayesian, 대안으로는 전체 탐색을 위한 Grid나 상관관계가 적은 탐색을 위한 Random이 있음)가 포함됩니다. AMT가 훈련 로그를 파싱할 수 있도록 ObjectiveMetricName과 MetricDefinitions를 정의하십시오. 목표가 F1 점수인 경우, ObjectiveType을 Maximize로 설정하고 MetricDefinitions의 정규식(regex)이 출력된 지표와 일치하는지 확인해야 합니다. 예산을 절약하면서 튜닝 속도를 높이려면, WarmStartConfig를 사용하여 이전 튜닝 작업의 결과를 재사용하고, 지원되는 경우 조기 종료 정책(EarlyStoppingType: Auto)을 활성화하여 가능성 없는 훈련 작업을 종료하십시오.
주요 서비스 및 구성
엔드투엔드 훈련 및 튜닝 워크플로우를 구축할 때 일반적으로 여러 AWS 서비스와 SageMaker 기능을 함께 사용하게 됩니다:
- Amazon SageMaker 훈련 작업 (Estimator API / CreateTrainingJob)
- SageMaker 자동 모델 튜닝 (CreateHyperParameterTuningJob)
- SageMaker 모델 레지스트리 (ModelPackage 및 CreateModelPackageGroup)
- 안전한 중앙 집중식 데이터 카탈로그를 위한 AWS Glue / AWS Lake Formation
- 내구성 있는 체크포인트 및 아티팩트 저장을 위한 Amazon S3
훈련 작업 구성 내에서 InstanceType과 InstanceCount를 포함하는 ResourceConfig를 지정하고, HyperParameters를 통해 하이퍼파라미터를 전달합니다. 관리형 스팟 훈련의 경우 EnableManagedSpotTraining을 포함하고, 중단된 작업이 상태를 저장할 수 있도록 CheckpointConfig.S3Uri를 설정합니다. CreateHyperParameterTuningJob을 통해 튜닝 작업을 시작할 때, HyperParameterTuningJobConfig.ParameterRanges에 IntegerParameterRange, ContinuousParameterRange, CategoricalParameterRange 항목을 채우고, ResourceLimits에 MaxNumberOfTrainingJobs와 MaxParallelTrainingJobs를 설정합니다. 이전 결과로부터 탐색을 부트스트랩하려면 ParentHyperParameterTuningJobs와 함께 WarmStartConfig를 사용하고 WarmStartType을 IDENTICAL_DATA_AND_ALGORITHM 또는 TRANSFER_LEARNING으로 설정하십시오.
보안 및 운영 제어를 위해, SageMaker 모델 레지스트리의 ModelPackageGroup에 ModelPackage 객체를 등록하여 모델 아티팩트를 중앙 집중화하십시오. 배포 전에 수동으로 Approved로 변경해야 하도록 ModelApprovalStatus를 PendingManualApproval로 설정하십시오. 모델 레지스트리 이벤트를 AWS CodePipeline 또는 AWS Step Functions와 결합하여 UpdateModelPackage API를 통해 ModelPackage.ModelApprovalStatus를 업데이트하는 수동 승인 작업을 구축하십시오. 실시간 엔드포인트를 모니터링하고 드리프트를 탐지하려면, 엔드포인트에서 DataCaptureConfig를 활성화하고 SageMaker Model Monitor를 사용하여 CreateMonitoringSchedule으로 배포 전 통계의 기준선을 설정하십시오. 이후에는 지속적인 평가를 위해 S3 DestinationS3Uri를 사용하여 BatchTransform 또는 RealTimeInference 데이터 캡처를 사용합니다.
설계 패턴과 트레이드오프
더 작은 샤드를 많이 사용하는 데이터 병렬 분산 훈련을 선택하면 확장이 간단하며, 모델이 단일 GPU에 맞는 경우 일반적으로 가장 단순한 패턴입니다. PyTorch DDP 또는 Horovod를 사용하는 데이터 병렬 접근 방식은 네트워크 패브릭이 고성능이고 인스턴스가 EFA 및 NCCL을 지원하는 경우 잘 확장됩니다. 모델 가중치가 단일 GPU의 메모리를 초과하면 모델 병렬 처리 또는 파이프라인 병렬 처리가 필요합니다. smdistributed.modelparallel은 여러 GPU에 걸쳐 텐서를 분할하는 데 도움이 되지만, 디버깅, 체크포인팅, 컴퓨팅과 통신 간의 균형을 맞추는 데 복잡성이 증가합니다. 실용적인 설계 패턴은 하이브리드 방식입니다. 즉, 매우 큰 계층에는 모델 샤딩을 사용하고 워커 그룹 간에는 데이터 병렬 처리를 사용하는 것입니다.
하이퍼파라미터 튜닝의 트레이드오프는 주로 시간 대 비용의 문제입니다. 광범위한 랜덤 또는 그리드 검색은 간단하지만 비용이 많이 듭니다. 베이지안 최적화(기본 AMT 전략)는 이전 결과를 사용하여 검색 범위를 좁히고, 좋은 구성에 도달하는 데 필요한 훈련 작업 수를 줄일 수 있습니다. 데이터 세트나 모델 변경이 점진적일 때
undefined
를 사용하여 이전 튜닝 지식을 새로운 실험으로 이전하십시오. 많은 훈련 작업을 병렬화하면 실제 소요 시간(wall-clock) 최적화 속도는 빨라지지만 순간 비용이 증가하고 서비스 할당량에 도달할 수 있습니다.
undefined
를 보수적으로 구성하고, 튜닝 작업에 스팟 인스턴스를 사용하여 지출을 줄이되, 중단을 허용할 수 있도록 항상
undefined
와
undefined
를 구성해야 합니다.
체크포인트 빈도와 스토리지 선택은 복원력과 비용 모두에 영향을 미칩니다. 체크포인트를 자주 생성하면 중단 시 손실되는 계산량을 줄일 수 있지만 S3 처리량 및 지연 시간 오버헤드가 추가됩니다. 컨테이너 내부에서 증분 체크포인팅(
undefined
)을 사용하고 내구성 있는 복구를 위해 S3에 비동기적으로 동기화하십시오. 관리형 스팟 인스턴스에서 훈련할 때는 강력한 체크포인트 간격을 설정하고 일반적인 중단 시간 내에 완료될 수 있는 훈련 작업에는 더 적은 수의 인스턴스를 사용하거나, SageMaker에서 제공하는
undefined
후크를 사용하여 일관된 체크포인트를 양 끝에 배치함으로써 선점(preemption)을 허용하도록 훈련 루프를 설계하십시오.
일반적인 함정과 의사결정 기준
일반적인 운영상의 함정은 성능 테스트 없이 사용자 지정 컨테이너 이미지를 사용하는 것입니다. 프레임워크에서 제공하는 이미지(SageMaker 사전 빌드 PyTorch, TensorFlow, XGBoost 이미지)는 더 빨리 시작되고, 자동 지표 전송 통합을 포함하며, 콜드 스타트 지연 시간을 최소화합니다. HPO에서 자주 발생하는 또 다른 오류는 MetricDefinitions 또는 ObjectiveMetricName의 잘못된 구성으로 인해 AMT가 올바른 신호를 찾아 최적화하지 못하는 것입니다. 튜닝 작업을 확장하기 전에 항상 로그에서 지표를 추출하는 데 사용되는 정규식(regex)을 검증해야 합니다. 관리형 스팟 훈련을 사용할 때 CheckpointConfig를 활성화하지 않으면 중단 시 작업 진행 상황이 손실되어 누적 런타임이 길어지고 비용이 증가할 수 있습니다.
보안 및 거버넌스 결정은 최소 권한 및 모델 수명 주기 제어를 중심으로 이루어져야 합니다. SageMaker Model Registry를 ModelPackage 승인 워크플로 및 IAM 정책과 함께 사용하여 승인된 ModelPackage 버전만 프로덕션에 도달하도록 해야 합니다. 암호화(SSE-S3 또는 SSE-KMS)를 사용하여 S3의 훈련 데이터를 보호하고, 훈련 작업이 수임하는 IAM 역할(CreateTrainingJob의 RoleArn 파라미터)과 중앙 데이터 액세스 정책이 필요한 경우 Lake Formation을 통해 액세스를 제어합니다. 드리프트 탐지 및 근본 원인 분석을 위해 SageMaker Model Monitor를 Model Registry 아티팩트와 결합하여 어떤 아티팩트 버전의 성능이 저하되는지 추적하고, 재배포 전에 사람이 개입하는 승인 흐름(human-in-the-loop approval flows)을 트리거합니다.
실용적인 문제: 사용 사례 시나리오
회사: FinGuard Inc. — 과제: S3에 저장된 트랜잭션 로그와 온프레미스 MySQL 고객 프로필로 훈련된 사기 탐지 모델을 구축하고, 비용을 최소화하며, 스팟 중단을 허용하고, 자동화된 하이퍼파라미터 최적화를 실행하고, 프로덕션 배포 전 수동 승인을 강제하며, 배포 후 편향 또는 드리프트를 탐지합니다.
데이터 집계 및 준비: S3 트랜잭션 로그를 직접 수집하고, AWS Glue와 온프레미스 MySQL 데이터베이스에 대한 JDBC 연결을 사용하여 고객 프로필 테이블을 크롤링하고 카탈로그화합니다. 선별된 피처를 SageMaker Feature Store
FeatureGroup에 등록하여 지연 시간이 짧은 액세스를 제공하고 스키마 일관성을 강제합니다.OfflineStoreS3를 SSE-KMS로 암호화하고 IAM 및 Lake Formation 정책을 통해 액세스를 제어합니다.훈련 및 분산 구성: 초기 모델에는 내장 XGBoost 컨테이너가 있는 SageMaker
Estimator를 사용합니다.ResourceConfig를InstanceTypeml.m5.4xlarge로 구성하여 기준선을 설정하고, GPU 가속 실험을 위해ml.p3.2xlarge로 확장합니다. 대규모 실험의 경우 EFA 지원 인스턴스(ml.p3dn.24xlarge또는ml.p4d.24xlarge)에서smdistributed.dataparallel을 사용하고,CheckpointConfig.S3Uri를s3://finguard-checkpoints/{job-name}으로,LocalPath를/opt/ml/checkpoints로 설정합니다.EnableManagedSpotTraining을true로 설정하고MaxWaitTimeInSeconds를MaxRuntimeInSeconds의 최소 2배로 설정하여 재시도를 허용함으로써 관리형 스팟 훈련을 활성화합니다.하이퍼파라미터 최적화:
HyperParameterTuningJobConfig.ParameterRanges를 사용하여eta,max_depth,scale_pos_weight(과도한 전처리 없이 클래스 불균형을 해결하기 위함)에 대한 SageMaker Automatic Model Tuning을 시작합니다.ObjectiveMetricName을validation:F1로 설정하고 F1 값을 추출하는MetricDefinitions정규식을 제공합니다.Strategy는Bayesian을 사용하고,ResourceLimits에서MaxNumberOfTrainingJobs를 50으로,MaxParallelTrainingJobs를 5로 설정하며, 이전 튜닝 결과에서 반복하는 경우WarmStartConfig를 사용합니다. 각 훈련 작업에CheckpointConfig가 활성화되었는지 확인하고, 관리형 스팟 인스턴스에서 튜닝 작업을 실행하여 비용을 절감합니다.모델 거버넌스 및 배포: 최상의 모델 아티팩트를
ModelPackageGroup내의ModelPackage로 SageMaker Model Registry에 등록하고ModelApprovalStatus를PendingManualApproval로 설정합니다. 사람이 승인하는 단계(수동 작업)를 포함하는 AWS Step Functions 파이프라인을 구현하고, 승인 시UpdateModelPackage를 호출하여ModelApprovalStatus를Approved로 설정한 다음,CreateModel및CreateEndpointConfig/CreateEndpoint를 트리거하여 배포합니다. Endpoint의DataCaptureConfig를 사용하여 추론 요청 및 응답을s3://finguard-capture에 캡처하여 Model Monitor에서 사용하도록 합니다.
AWS의 논리적 근거: AWS Glue는 하이브리드 데이터 소스를 중앙 집중화하고 카탈로그화하며 SageMaker와 통합됩니다. SageMaker Feature Store는 피처를 표준화하고 훈련 및 추론을 위해 안전하게 보호합니다. 관리형 스팟 훈련과 CheckpointConfig는 선점(preemption)이 발생해도 진행 상황을 보존하면서 컴퓨팅 비용을 절감합니다. MetricDefinitions 및 WarmStartConfig를 사용하는 SageMaker Automatic Model Tuning은 예산을 제어하면서 견고한 하이퍼파라미터를 찾는 과정을 가속화합니다. PendingManualApproval과 함께 Step Functions 또는 CodePipeline을 사용하는 Model Registry는 거버넌스를 강제하고 최소 권한 원칙에 따라 모델을 프로덕션으로 승격시킵니다. SageMaker Model Monitor와 DataCaptureConfig는 지속적인 모델 상태 점검을 위해 자동화된 드리프트 및 편향 탐지를 제공합니다.
← 데이터 엔지니어링 및 피처 엔지니어링 · 모든 도메인 · 모델 평가 및 선택 →
이 문제 연습하기 → · 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.
시험 합격하기 →