Amazon MLA-C01: 모델 평가 및 선택 — 학습 가이드

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

정확한 모델 평가는 비즈니스 목표와 클래스/레이블 특성에 맞는 지표를 선택하는 것에서 시작됩니다. 이진 분류의 경우, 혼동 행렬(confusion matrix) — 진양성(true positives), 위양성(false positives), 위음성(false negatives), 진음성(true negatives) — 은 정밀도(precision, TP / (TP+FP)), 재현율(recall) 또는 민감도(sensitivity, TP / (TP+FN)), 특이도(specificity, TN / (TN+FP)), 정확도(accuracy, (TP+TN) / 전체)를 도출하는 기본 요소입니다. 정밀도와 재현율은 상충 관계(trade-off)를 형성하며, 이는 F1 점수(2 * 정밀도 * 재현율 / (정밀도 + 재현율))에 반영됩니다. F1 점수는 조화 평균으로, 위양성과 위음성 간의 균형을 강조합니다. 클래스 불균형이 심할 때 정확도는 오해의 소지가 있을 수 있습니다. ROC 곡선 아래 면적(AUC)은 여러 임계값에 걸친 분리 가능성을 측정하며 많은 경우 불균형에 강건하지만, 양성 클래스의 비율이 낮을 때는 정밀도-재현율 AUC(AUPRC)가 더 유용한 정보를 제공합니다. 회귀(regression)의 경우, 평균 제곱근 오차(RMSE)는 큰 오차에 제곱으로 페널티를 주어 이상치에 민감합니다. 이상치에 대한 강건함이 선호될 때는 평균 절대 오차(MAE)를 사용합니다.

임계값 선택은 운영상의 결정입니다. 많은 알고리즘이 확률 점수를 생성하며, 이를 클래스 레이블로 변환하려면 임계값이 필요합니다. ROC 및 정밀도-재현율 곡선을 사용하여 F1 점수나 비즈니스 가중 비용 함수와 같은 선택된 목표를 최대화하는 임계값을 찾습니다. 실용적인 방법론은 혼동 행렬로부터 각 임계값별 정밀도, 재현율, F1을 계산한 다음, 목표 정밀도 또는 재현율 제약 조건을 충족하는 임계값을 선택하는 것입니다. 교차 검증은 지표 추정치의 분산을 줄여 이를 보완합니다. 불균형 분류에서는 계층적 K-겹(stratified K-fold)을 사용하여 각 폴드(fold)에 걸쳐 클래스 비율을 유지합니다. 코드에서는 scikit-learn의 StratifiedKFold에 n_splits와 shuffle=True, 그리고 고정된 random_state를 사용하여 재현 가능한 폴드를 만듭니다. 폴드별 지표를 기록하고 평균과 표준편차를 집계하여 예상 분산을 정량화합니다. SageMaker를 사용할 때, CV 실행을 별도의 훈련 작업으로 오케스트레이션하고 SageMaker Experiments API(CreateExperiment, CreateTrial, CreateTrialComponent)로 추적한 다음, 각 폴드에 대해 LogMetric 및 LogHyperParameter를 사용할 수 있습니다.

편향-분산 트레이드오프(bias–variance trade-off)는 모델 복잡도와 정규화 선택의 지침이 됩니다. 편향이 높은 모델은 과소적합(underfit)되어 훈련 및 검증 세트 모두에서 높은 오차를 생성하는 반면, 분산이 높은 모델은 과대적합(overfit)되어 훈련 오차는 낮지만 검증 오차는 높습니다. 편향은 모델 용량 증가, 유용한 특성 추가, 또는 정규화 강도 감소로 해결하고, 분산은 정규화(L1/L2) 추가, 복잡도 감소, 드롭아웃(dropout) 사용, 또는 훈련 데이터 증가로 해결합니다. 교차 검증 추정치를 사용하여 분산을 감지합니다. 폴드 지표 간의 큰 편차는 높은 분산을 의미합니다. SageMaker에서 반복 훈련을 할 때는 조기 종료(XGBoost의 경우 하이퍼파라미터 early_stopping_rounds를 설정하고 eval_metric=‘auc’ 또는 ’error’로 지정)를 포함하고, SageMaker Automatic Model Tuning을 베이지안 전략과 함께 사용하여 hyperparameter_space를 탐색합니다. HyperparameterTuner에 objective_metric_name, objective_type=‘Maximize’ 또는 ‘Minimize’, hyperparameter_ranges, max_jobs, max_parallel_jobs를 구성합니다.

주요 서비스 및 구성

AWS 서비스는 실험 추적, 모델 등록, 드리프트 감지, 배포 가드레일 강제를 위한 긴밀하게 통합된 도구 체인을 형성합니다. Amazon SageMaker Experiments를 사용하여 실행을 구성하고, sagemaker.create_experiment, sagemaker.create_trial, sagemaker.log_metric을 호출하여 하이퍼파라미터와 지표를 영구 저장합니다. 중앙 집중식 모델 수명 주기 관리를 위해 SageMaker Model Registry(ModelPackageGroup 및 ModelPackage)를 사용하고, 모델 패키지 속성인 ModelPackageApprovalStatus(“PendingManualApproval”, “Approved”, “Rejected” 등의 값 지원)를 통해 배포 흐름을 제어합니다. AWS Lambda나 Step Functions의 수동 승인 작업을 통해 UpdateModelPackage를 호출하여 approval_status를 변경함으로써 수동 승인을 CI/CD 흐름에 통합합니다.

배포 후 모니터링 및 편향/드리프트 감지를 위해서는 SageMaker Model Monitor와 SageMaker Clarify를 사용합니다. CreateEndpointConfig 또는 UpdateEndpointConfig 호출 시 DataCaptureConfig를 설정하여 엔드포인트에서 실시간 데이터 캡처를 활성화합니다. 대표적인 페이로드를 수집하기 위해 CaptureOptions: [{“CaptureMode”:“Input”}, {“CaptureMode”:“Output”}], DestinationS3Uri, SamplingPercentage를 지정합니다. Model Monitor의 DefaultModelMonitor를 사용하여 참조 데이터셋으로부터 GenerateBaseline(baseline_statistics 및 baseline_constraints JSON)을 수행한 다음, create_monitoring_schedule을 통해 모니터링 스케줄을 생성합니다. 이때 MonitoringScheduleConfig, schedule_expression(cron 또는 rate), 그리고 local_path와 S3InputMode를 포함하는 EndpointInput과 같은 MonitoringInputs를 제공합니다. 공정성 및 편향의 경우, clarify_config 파라미터 compute_bias 및 compute_data_drift와 함께 SageMaker Clarify를 ProcessingJob으로 사용하거나, Processing 작업에서 SageMaker Clarify 내장 기능을 사용하고 결과를 S3에 저장하여 대시보드에 활용합니다.

데이터 집계, 특성 준비, 이상 탐지를 위해 여러 AWS 기능이 함께 사용되는 경우가 많습니다.

설계 패턴 및 트레이드오프

운영 오버헤드를 최소화해야 하는 경우, 사용자 지정 ETL 또는 모니터링 파이프라인을 구축하기보다는 관리형 서비스와 내장 알고리즘 기능을 사용하는 것이 좋습니다. 예를 들어, 사기 탐지를 위한 이진 분류기(binary classifier)를 훈련할 때, SageMaker의 내장 알고리즘인 XGBoost는 효율적인 선택입니다. XGBoost는 지연 시간이 짧은 훈련과 불균형 데이터에 맞춰진 하이퍼파라미터를 제공합니다. 예를 들어, scale_pos_weight는 (음성 샘플 수 / 양성 샘플 수)로 설정해야 합니다. Estimator나 훈련 컨테이너에서 XGBoost 하이퍼파라미터를 구성하십시오: objective='binary:logistic', eval_metric='aucpr' 또는 'auc', 그리고 노이즈가 많은 실행을 종료하기 위한 early_stopping_rounds를 설정합니다. 이렇게 하면 도메인 특화된 합성 샘플링이 필요한 경우를 제외하고는 사용자 지정 오버샘플링 파이프라인(SMOTE 등)을 구축할 필요가 없습니다.

특성 공학(feature engineering)을 위해서는 SageMaker Data Wrangler를 사용하여 인코딩 변환(카디널리티가 낮은 범주형 특성에는 원-핫 인코딩, 카디널리티가 높은 특성에는 순서형/레이블 인코딩 또는 타겟 인코딩)을 적용한 다음, 정제된 특성을 SageMaker Feature Store나 S3에 저장(materialize)합니다. Data Wrangler는 운영 부담을 크게 줄여주며, 재사용할 수 있는 스크립트나 처리 작업을 생성합니다. 최소한의 노력으로 자동화된 모델 선택이 필요하다면, SageMaker Autopilot을 사용할 수 있습니다. Autopilot은 혼합된 범주형 및 수치형 특성을 자동으로 전처리하고 후보 모델을 생성합니다. 하지만 Autopilot은 변환 과정을 추상화하므로 사용자 지정 특성 체계에는 최적의 선택이 아닐 수 있습니다.

모델 비교 및 프로모션은 지표, 아티팩트, 리니지(lineage)가 기록될 때 가장 안정적입니다. SageMaker Experiments를 사용하여 실행을 비교한 다음, ModelPackageGroup에 ModelPackage를 생성합니다. ModelPackageApprovalStatus를 “Approved"로 설정하여 프로모션하고, 모델 패키지 ARN을 참조하는 EndpointConfig를 생성합니다. 사람의 제어가 필요한 경우, 모델을 “PendingManualApproval” 상태로 두고, Step Functions나 AWS CodePipeline을 사용하여 UpdateModelPackage를 호출하여 “Approved” 상태로 전환하는 승인 작업을 포함한 사람의 승인 워크플로를 연결합니다.

일반적인 함정과 의사결정 기준

일반적인 함정 중 하나는 근본적인 문제가 데이터 드리프트일 때, 프로덕션 환경의 F1 점수 하락을 모델 결함으로 혼동하는 것입니다. 배포 후 몇 달 동안 F1 점수가 지속적으로 하락하는 가장 가능성 있는 원인은 갑작스러운 버그보다는 입력 분포 드리프트나 레이블 드리프트(개념 드리프트)입니다. 이를 진단하려면, 엔드포인트에서 DataCaptureConfig를 활성화하여 요청 및 응답 페이로드를 S3에 캡처하고, 기준 제약 조건에 대해 Model Monitor 모니터링 스케줄을 실행하며, 피처 분포 통계와 PSI(Population Stability Index)를 계산해야 합니다. 또한 Clarify 데이터 드리프트 및 편향 검사를 실행하여 공정성 지표에 영향을 미치는 변화를 감지해야 합니다.

또 다른 흔한 실수는 시간적 누수(temporal leakage)나 비즈니스 비용을 고려하지 않고 순진하게 리샘플링하여 클래스 불균형을 잘못 처리하는 것입니다. 중복된 예제를 도입할 수 있는 샘플링 전략으로 넘어가기 전에, 먼저 알고리즘 수준의 제어를 선호해야 합니다. 예를 들어 XGBoost의 경우 scale_pos_weight를 설정하고 eval_metricaucpr이나 사용자 지정 목표(custom objective)로 조정합니다. 재현성 및 실험 추적을 위해, 항상 SageMaker Experiments API를 사용하여 하이퍼파라미터와 지표를 기록하고, 아티팩트 URI 및 출처 메타데이터와 함께 모델 패키지를 등록하여 프로모션 과정을 감사할 수 있도록 해야 합니다.

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

회사: FinSight Inc. — Amazon S3 및 온프레미스 MySQL의 데이터를 사용한 온라인 트랜잭션 사기 탐지. 요구 사항: 안전한 데이터 격리, 자동화된 이상 탐지 및 시각화, 프로덕션 배포 전 수동 승인, 반복적인 훈련을 위한 낮은 시작 지연 시간, 최소한의 운영 오버헤드로 중앙화된 모델 버전 관리.

  1. 데이터 집계 및 보안: AWS Glue를 사용하여 S3 트랜잭션 로그를 크롤링하고 Glue Catalog 테이블을 생성하며, SSE-KMS로 버킷 암호화를 설정하고 IAM 정책 및 VPC 엔드포인트를 통해 액세스를 제한합니다. 온프레미스 MySQL의 경우, 보안 VPN 또는 AWS Direct Connect가 있는 VPC 내에서 AWS Glue JDBC 연결을 사용하거나, AWS DMS를 사용하여 필요한 테이블을 S3 랜딩 존으로 복제합니다. Glue Data Catalog에 데이터셋을 등록하고 SageMaker 실행 역할에 최소 권한 액세스를 부여합니다.

  2. 피처 준비 및 이상 탐지: Amazon SageMaker Data Wrangler를 사용하여 Glue Catalog 및 S3 랜딩 존에 연결하고, 변환(결측치 대체, 범주형 변수에 대한 레이블 인코딩, 숫자형 변수에 대한 스케일링)을 적용하며, Data Wrangler의 내장 프로파일링을 실행하여 분포를 시각화하고 이상을 식별합니다. 처리된 피처를 훈련용 SageMaker Feature Store 오프라인 스토어와 추론 시 낮은 지연 시간의 조회를 위한 온라인 스토어로 내보냅니다.

  3. 모델 훈련 및 시작 지연 시간 최소화: objective='binary:logistic', eval_metric='aucpr'로 설정된 XGBoost용 SageMaker Estimator를 사용하고 scale_pos_weight=(neg_count/pos_count)를 설정합니다. 반복적인 훈련 작업 전반에 걸쳐 시작 지연 시간을 줄이려면, 매번 데이터 수집을 재구성하는 대신 Data Wrangler 출력을 S3에 캐시하고 동일한 훈련 컨테이너 이미지와 인스턴스 유형을 재사용합니다. cache_config가 활성화된 SageMaker Pipelines를 사용하여 입력/하이퍼파라미터가 변경되지 않은 반복 단계는 인프라 시작을 건너뛰도록 합니다.

  4. 실험 추적 및 모델 선택: 각 훈련 실행을 SageMaker Experiments(CreateExperiment, CreateTrial, LogMetric)로 계측합니다. objective_metric_name='validation:aucpr', objective_type='Maximize', strategy='Bayesian', max_jobsmax_parallel_jobs로 구성된 HyperparameterTuner를 사용하여 최적의 하이퍼파라미터를 찾습니다. Experiments에서 모델을 비교하고, ModelPackageGroup에 ModelPackage를 생성하여 선택된 후보를 SageMaker Model Registry에 등록합니다.

  5. 수동 승인 및 배포 게이팅: 새로 생성된 모델 패키지를 ModelPackageApprovalStatus='PendingManualApproval' 상태로 둡니다. 사람의 승인 작업이 포함된 AWS Step Functions 워크플로나 AWS CodePipeline 승인 작업을 사용합니다. 승인되면 UpdateModelPackage를 실행하여 승인 상태를 ‘Approved’로 설정하고, EndpointConfig 자동 생성 및 UpdateEndpoint를 트리거하여 배포를 수행합니다.

  6. 모니터링, 편향 및 드리프트: 실시간 엔드포인트에서 InputOutput에 대한 CaptureOptions, DestinationS3Uri, SamplingPercentage를 사용하여 DataCaptureConfig를 활성화합니다. 훈련 데이터셋으로부터 Model Monitor의 GenerateBaseline으로 기준 통계를 생성하고 create_monitoring_schedule로 지속적인 모니터링을 예약합니다. SageMaker Clarify를 처리 작업으로 정기적으로 실행하여 편향 및 데이터 드리프트 지표를 계산합니다. F1 점수가 기준 제약 조건 아래로 떨어지면, Model Monitor 경보를 사용하여 자동화된 재훈련 파이프라인(SageMaker Pipeline)을 트리거합니다. 이 파이프라인은 Experiments에 새로운 실행을 기록하고 사람이 검토할 수 있는 새로운 모델 패키지를 생성합니다.

AWS 근거: 이 접근 방식은 관리형 SageMaker 기능을 사용합니다. 즉, 전처리 오버헤드를 최소화하기 위한 Data Wrangler 및 Feature Store, 복잡한 리샘플링 없이 불균형을 처리하기 위한 scale_pos_weight가 적용된 XGBoost, 감사 가능한 실험 및 모델 수명 주기 관리를 위한 SageMaker Experiments 및 Model Registry, 자동화된 드리프트 및 공정성 탐지를 위한 DataCaptureConfig와 Model Monitor 및 Clarify, 그리고 필요한 수동 승인 게이트를 제공하기 위해 Model Registry와 통합된 Step Functions/CodePipeline을 사용합니다. 이러한 서비스들은 함께 운영 부담을 최소화하면서 보안, 추적성 및 모델 성능 저하에 대응하는 능력을 보존합니다.


모델 학습 및 하이퍼파라미터 최적화 · 모든 도메인 · 모델 배포 및 추론

이 문제 연습하기 → · 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개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

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