Amazon MLA-C01: 데이터 엔지니어링 및 피처 엔지니어링 — 학습 가이드
다음의 일부입니다: AWS Machine Learning Engineer Associate MLA-C01 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
핵심 개념
ML을 위한 데이터 엔지니어링은 유출과 운영 부담을 최소화하면서 모델 훈련 및 추론에 재현 가능하고 감사 가능한 입력을 생성하는 것입니다. 핵심은 일관된 수집 시맨틱(이벤트 시간, 레코드 식별자, 스키마), 정식 메타데이터 카탈로그, 그리고 모델 훈련을 위한 오프라인과 실시간 추론을 위한 온라인 모두에서 실행될 수 있는 잘 정의된 변환입니다. 훈련 데이터셋과 추론 시 반환되는 온라인 피처가 동일한 변환 코드(또는 동일한 Feature Store 레코드 정의)를 기반으로 하도록 파이프라인을 설계하십시오. 이는 훈련/서빙 스큐를 방지합니다. 시간적 문제의 경우, 각 레코드의 이벤트 시간을 보존하고 레이블 유출을 방지하기 위해 시간 인식 조인 및 분할을 적용하십시오. SageMaker Feature Store를 사용할 때는 CreateFeatureGroup에서 RecordIdentifierFeatureName과 EventTimeFeatureName을 설정하여 다운스트림 훈련 및 추론에서 동일한 키를 사용하도록 하십시오.
피처 엔지니어링은 결정적이고 반복 가능한 변환과 탐색적 변환으로 나뉩니다. 결정적 변환에는 결측치 처리, 스케일링, 범주형 인코딩, 파생 집계(롤링 카운트, 시간 윈도우 피처)가 포함됩니다. 이러한 변환은 Glue ETL, SageMaker Processing 또는 SageMaker Data Wrangler에서 실행될 수 있는 코드로 실행하고 오프라인 스토어에 체크포인트로 저장하십시오. 고유값이 많은(high-cardinality) 범주형 피처의 경우, 조합 폭발(combinatorial explosion)을 피하기 위해 단순한 원-핫 인코딩보다는 교차 검증 폴드를 사용한 타겟 인코딩이나 빈도/임베딩 기반 표현을 선호하십시오. 수치형 피처의 경우, 프로덕션 정규화가 훈련과 일치하도록 모델 아티팩트에 파라미터로 저장되는 파이프라인 친화적인 표준화(평균/분산) 또는 분위수 변환을 선호하십시오.
주요 서비스 및 구성
AWS Glue는 많은 ML 파이프라인을 위한 정식 ETL 및 메타데이터 계층을 제공합니다. Glue Crawler를 사용하여 S3 및 JDBC 소스에 대한 Glue Data Catalog를 채운 다음, Spark 기반 Glue ETL 작업 또는 Glue Studio 시각적 작업을 작성하여 데이터를 정리하고 변환하십시오. Glue 작업을 구성할 때 GlueVersion(예: 3.0), WorkerType(G.1X, G.2X), NumberOfWorkers, 증분 처리를 위한 JobBookmarks, 그리고 awswrangler나 pydeequ 같은 라이브러리를 포함하기 위한 “–additional-python-modules"와 같은 DefaultArguments를 설정하십시오. 온프레미스 MySQL에서 데이터를 수집하려면 JDBC URL로 Glue 연결을 설정하고 Glue 작업 또는 AWS DMS를 사용하여 CDC를 S3 랜딩 존에 캡처하십시오. DMS를 사용할 때는 효율적인 오프라인 피처를 위해 전체 로드(full-load) 후 CDC를 선택하고 S3 parquet를 대상으로 지정하십시오.
SageMaker Feature Store는 대규모 환경에서 운영 오버헤드가 낮은 중앙 피처 관리 옵션입니다. CreateFeatureGroup에는 FeatureDefinitions, RecordIdentifierFeatureName, EventTimeFeatureName, OnlineStoreConfig(DynamoDB 기반의 짧은 지연 시간 스토어를 활성화하려면 EnableOnlineStore=True), 그리고 Athena/Glue를 통해 오프라인 피처를 노출하기 위한 S3Uri 및 DataCatalogConfig가 포함된 OfflineStoreConfig가 필요합니다. 처리량에 따라 BatchPutRecord 또는 PutRecord로 수집하십시오. 서비스에 PutRecord 권한을 부여하는 FeatureGroupArn과 RoleArn을 포함해야 합니다. 오프라인 스토어는 Parquet 파일을 S3에 영구 저장하고 Glue Data Catalog와 자동으로 통합되어 재현 가능한 훈련 쿼리를 가능하게 합니다. 실시간 피처의 경우 온라인 스토어에 대해 GetRecord를 사용하고, 대량 훈련 조인의 경우 오프라인 S3 Parquet 경로를 선호하십시오.
모델 거버넌스 및 배포 워크플로를 위해 SageMaker Model Registry와 SageMaker Pipelines를 사용하십시오. 훈련된 모델을 CreateModelPackage 또는 Pipelines의 RegisterModel 단계를 사용하여 등록하고, 수동 승인 게이트를 적용하려면 ModelApprovalStatus를 “PendingManualApproval"로 설정하십시오. Pipelines를 AWS CodePipeline과 통합하거나, 승인 시 UpdateModelPackage를 통해 model_package 버전을 “Approved"로 전환하는 사용자 지정 Lambda를 추가하십시오. 드리프트 및 편향 모니터링을 위해, 편향/기준선 분석을 위한 SageMaker Clarify와 지속적인 데이터/레이블 드리프트 감지를 위한 SageMaker Model Monitor를 결합하십시오. 온디맨드 편향 평가를 위해 ClarifyProcessor(sagemaker.processing.ProcessingJob)를 사용하고, 이를 오프라인 스토어의 Parquet 아티팩트나 Model Monitor가 수집한 스트리밍 샘플을 가리키도록 하십시오.
설계 패턴과 트레이드오프
학습 처리량과 복잡한 조인이 중요할 때는 오프라인 우선 아키텍처를 선택하십시오. 대규모 윈도우 피처를 집계하여 S3 Parquet(Glue/EMR/Glue Spark 작업)으로 유지하고, Glue Data Catalog에서 카탈로그화하며, S3 접두사 및 객체 버전 관리를 사용하여 데이터 세트 버전을 관리합니다. 이 접근 방식은 재현성과 비용 효율적인 스토리지에 유리하지만, 최신 피처를 서빙하는 데 지연 시간이 증가합니다. 짧은 지연 시간의 피처가 필요한 경우, 일부 하위 집합을 Feature Store Online(DynamoDB) 또는 캐싱 계층에 미러링하십시오. 이때 트레이드오프로 온라인 및 오프라인 스토어를 일관성 있게 유지하기 위한 운영 오버헤드가 발생합니다. Feature Store에 내장된 BatchPutRecord 파이프라인 또는 Kinesis Data Streams + Lambda를 통한 스트림 수집을 사용하여 Feature Store에 쓰면, 오프라인 정식 뷰를 유지하면서 거의 실시간에 가까운 업데이트를 달성할 수 있습니다.
반복적인 실험과 프로덕션 처리량의 경우, 캐싱 기능이 있는 SageMaker Pipelines는 상당한 이점을 제공합니다. 파이프라인 단계에서 CacheConfig를 활성화하면 입력(파라미터, 데이터 체크섬)이 변경되지 않았을 때 컴퓨팅 집약적인 변환 및 학습 단계까지도 건너뛸 수 있습니다. 이는 동일한 컴퓨팅을 반복적으로 프로비저닝하는 것과 비교하여 연속 실행 시 시작 지연 시간을 줄여줍니다. 매우 짧은 지연 시간의 추론을 위해서는 비용과 복잡성 간의 트레이드오프가 발생합니다. 다중 모델 엔드포인트 또는 프로비저닝된 동시성은 콜드 스타트 변동성을 줄이지만 비용은 증가시킵니다. Feature Store 온라인과 경량 모델 컨테이너를 함께 사용하면 요청별 오케스트레이션을 최소화할 수 있습니다.
알고리즘 및 전처리 선택에는 트레이드오프가 따릅니다. 내장 XGBoost는 테이블 형식의 사기 탐지 작업에 탁월하며, 리샘플링 없이 클래스 불균형을 해결하기 위해 scale_pos_weight를 제공하므로 운영 부담이 적습니다. 그러나 임베딩을 사용하는 딥러닝 모델은 고유값이 많은 범주형 변수(high-cardinality categorical variables)를 더 원활하게 처리하지만 더 많은 인프라와 피처 파이프라인이 필요합니다. 가능한 경우 자동화된 변환을 사용하십시오. SageMaker Data Wrangler 및 Glue DataBrew는 시각적이고 반복 가능한 변환(결측치 대체, 정규화, 리샘플링)을 제공하며, 플로우를 스크립트나 Feature Store로 내보낼 수 있어 엔지니어링 시간을 단축시킵니다.
일반적인 실수와 의사 결정 기준
자주 하는 실수는 훈련(train)과 서빙(serve)의 변환을 일치시키지 않는 것입니다. 온라인 전처리가 훈련 시와 동일하도록 변환 파라미터(스케일러, 인코더)를 모델과 함께 또는 Feature Store에 저장하세요. 또 다른 실수는 고차원(high-cardinality) 범주형 데이터에 원-핫 인코딩을 사용하여 피처 차원이 과도하게 커지는 것입니다. 임베딩, 해싱 또는 타겟-빈도 인코딩을 사용하는 것이 좋으며, 교차 검증된 데이터 유출 방지(leakage-safe) 절차를 통해 이를 검증해야 합니다. 보안 실수도 흔합니다. 민감한 S3 데이터로 훈련할 때는 SSE-KMS(KmsKeyId)를 강제하고, S3 버킷 정책과 IAM 역할(sagemaker.amazonaws.com 주체)로 접근을 제한하며, 데이터가 공용 인터넷을 통과하지 않도록 훈련 작업을 S3 VPC 게이트웨이 엔드포인트가 있는 VPC 내에 배치해야 합니다.
Glue 작업 기반 ETL과 SageMaker Processing/Data Wrangler 중 어떤 것을 사용할지는 빈도와 복잡성을 평가하여 결정합니다. Glue는 여러 소스에 걸쳐 예약되고 확장 가능한 Spark ETL에 최적화되어 있으며 Glue Data Catalog와 통합됩니다. Data Wrangler와 SageMaker Processing은 빠른 실험 및 Feature Store나 훈련 작업으로 직접 내보내는 데 적합합니다. 이상 탐지의 경우, 무거운 ML 옵스(ops) 없이 시계열 데이터에 대한 자동 통계적 이상 탐지를 위해서는 Amazon Lookout for Metrics를 사용하고, 대시보드에 지표를 제공할 수 있는 사용자 정의 가능하고 데이터 계보를 인식하는(lineage-aware) 데이터 품질 검사를 위해서는 Glue에서 실행되는 Deequ를 선택합니다.
실제 문제: 사용 사례 시나리오
회사명: FinEdge
FinEdge는 사기 탐지 서비스를 구축하고 있습니다. 이 서비스는 Amazon S3의 일일 배치 트랜잭션 로그와 온프레미스 MySQL에 저장된 고객 프로필로부터 모델을 훈련해야 합니다. 데이터는 암호화되고 격리되어야 하며, 모델 버전은 프로덕션 배포 전에 수동 승인이 필요합니다. 또한 모델은 온디맨드(on-demand) 편향 및 드리프트 평가가 가능해야 하고, 추론 시에는 낮은 지연 시간의 피처 조회가 필요합니다.
수집 및 중앙화: AWS DMS를 사용하여 온프레미스 MySQL에서 S3 랜딩 존으로 초기 전체 로드(full load) 및 CDC(변경 데이터 캡처) 복제를 Parquet 파일 형식으로 수행합니다. S3 대상 설정으로 DMS를 구성하고 JDBC 소스에 SSL을 보장합니다. Glue Crawler를 사용하여 S3 트랜잭션 로그와 DMS로 생성된 Parquet 형식의 고객 프로필을 모두 Glue Data Catalog에 등록합니다. Glue 작업 파라미터를 설정합니다: GlueVersion 3.0, WorkerType G.2X, 일일 볼륨에 적합한 NumberOfWorkers, 그리고 증분 실행을 위해 JobBookmarks를 활성화합니다.
피처 엔지니어링 및 저장: Glue에서 Spark 변환을 작성하거나 SageMaker Data Wrangler를 사용하여 대화형으로 피처를 반복 개발하고 내보냅니다. 결정론적(deterministic) 집계 피처를 S3에 Parquet 형식으로 영구 저장하고, CreateFeatureGroup을 사용하여 SageMaker Feature Store의 FeatureGroup을 생성합니다. 이때 FeatureDefinitions, RecordIdentifierFeatureName=“transaction_id”, EventTimeFeatureName=“event_time”, EnableOnlineStore=True로 설정된 OnlineStoreConfig, 그리고 정식(canonical) 데이터 레이크를 가리키는 S3Uri와 Glue 테이블을 연결하기 위한 DataCatalogConfig가 포함된 OfflineStoreConfig를 지정합니다. 대량 로드는 BatchPutRecord를 통해, 트랜잭션 업데이트는 PutRecord를 통해 수집합니다.
훈련 및 모델 레지스트리: 전처리, 훈련, 등록을 위해 SageMaker Pipelines를 사용합니다. 모델을 ModelPackageGroupName에 등록하고 ModelApprovalStatus를 “PendingManualApproval"로 설정하는 RegisterModel 단계를 포함합니다. AWS CodePipeline의 수동 승인 작업을 연결하거나 SageMaker API UpdateModelPackage를 사용하여 승인된 패키지를 “Approved” 상태로 변경합니다. 클래스 불균형 문제에 대해서는, 리샘플링의 복잡성을 피하기 위해 기준 통계에서 계산된 클래스 비율을 기반으로 XGBoost 하이퍼파라미터인 “scale_pos_weight"를 설정합니다.
거버넌스, 모니터링, 온디맨드 검사: ClarifyProcessor를 사용하여 SageMaker Clarify로 기준선(baseline)을 생성하고, 편향 지표를 계산하여 기준선을 S3/FeatureStore 오프라인에 저장합니다. 데이터/피처 드리프트 감지를 위해 CreateMonitoringSchedule로 Model Monitor를 배포합니다. 온디맨드 편향 또는 드리프트 평가가 필요할 경우, 프로그래밍 방식으로 ClarifyProcessor를 실행하거나 StartMonitoringSchedule을 시작하여 최근 캡처된 트래픽이나 온라인 스토어 스냅샷을 분석합니다. 모니터링 결과는 S3에 저장하고 QuickSight 대시보드를 통해 이상 징후를 시각화합니다. SSE-KMS를 사용하여 S3를 보호하고, 최소 권한 원칙에 따라 IAM 역할로 접근을 제한하며, 훈련 및 추론 환경을 S3 VPC 엔드포인트가 있는 VPC 내에 배치합니다.
AWS 사용 근거: 이 접근 방식은 Glue와 DMS를 사용하여 Glue Data Catalog를 통해 확장 가능하고 감사 가능한 데이터 수집 및 메타데이터 관리를 수행합니다. SageMaker Feature Store를 통해 일관된 온라인/오프라인 피처와 낮은 지연 시간의 조회를 지원합니다. SageMaker Pipelines와 Model Registry를 사용하여 최소한의 운영 오버헤드로 모델 생명주기를 제어하고 수동 승인 기능을 내장 지원합니다. Clarify와 Model Monitor는 온디맨드 및 지속적인 편향/드리프트 분석을 제공합니다. 이 조합은 암호화된 격리(SSE-KMS, VPC 엔드포인트)를 유지하고, 수집 및 피처 관리에 관리형 서비스를 사용하여 엔지니어링 작업을 줄이며, 재현 가능하고 감사 가능한 ML 아티팩트를 강제합니다.
모든 도메인 · 모델 학습 및 하이퍼파라미터 최적화 →
이 문제 연습하기 → · 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.
시험 합격하기 →