이번 주는 준비된 데이터를 모델이 학습할 수 있는 형태로 다듬는 과정을 다뤘다. "알고리즘보다 데이터"라는 ML의 격언이 가장 잘 드러나는 영역이다.
[raw 데이터 (S3)]
│ ① 변환 (Data Wrangler)
│ 스케일링·인코딩·결측치·이상치 처리
v
[변환된 특성]
│ ② 관리 (Feature Store)
│ 온라인(추론) + 오프라인(학습) 동시 저장
v
[Feature Group]
│ ③ 점검 (Clarify)
│ 편향·불균형·설명가능성 분석
v
[검증된 학습 데이터셋] → SageMaker 학습
핵심은 이 세 단계가 일관성으로 연결된다는 점이다. Data Wrangler에서 정의한 변환을 Feature Store가 학습·추론에 동일하게 공급하고, Clarify가 그 데이터의 공정성을 보증한다.
단계
도구
해결하는 문제
변환
Data Wrangler
손코딩의 느림과 재현 불가
관리
Feature Store
특성 중복 제작, training/serving skew
점검
Clarify + 품질 기법
편향, 불균형, 누수
데이터 과학자가 시간의 70~80%를 특성 공학에 쓴다는 통계는 과장이 아니다. Google의 "Hidden Technical Debt in Machine Learning Systems" 논문이 강조하듯, 실제 ML 시스템에서 모델 코드는 작은 부분이고 데이터 수집·검증·특성 추출·일관성 유지가 대부분의 복잡도와 실패 원인을 차지한다. 이번 주 세 도구는 모두 그 데이터 측 복잡도를 길들이는 장치다.
SageMaker Data Wrangler는 코드 없이 시각적으로 데이터를 가져오고 변환·분석하는 도구다. 300개 이상의 내장 변환과 데이터 품질 리포트를 제공하고, 만든 흐름(flow)을 Processing Job·Pipeline·Feature Store로 내보낼 수 있다.
단계
내용
임포트
S3, Athena, Redshift, Snowflake, Feature Store에서 로드
변환
결측·인코딩·스케일링 등 300+ 내장 변환을 클릭으로
분석
Data Quality 리포트, Quick Model, Target Leakage, Bias, 다중공선성
내보내기
Processing Job, Feature Store, Pipelines, 코드, S3
Data Wrangler의 가치는 "시각적 탐색"에서 끝나지 않고 그 변환을 재현 가능한 코드로 내보낸다는 데 있다. 노트북에서 손으로 짠 변환은 추론 시 재현하기 어렵지만, Data Wrangler flow는 Processing Job으로 내보내 학습·추론에서 같은 변환을 보장한다. 탐색과 운영을 잇는 다리다.
⚠️ 함정: 화면에서 보는 데이터는 샘플이다. 전체 데이터에 적용하려면 flow를 Processing Job으로 export해 실행해야 한다.
SageMaker Feature Store는 특성을 중앙에서 저장·재사용·일관 제공하는 저장소다. 두 스토어가 핵심이다.
구분
온라인 스토어
오프라인 스토어
목적
실시간 추론
학습·배치
지연
밀리초(key-value)
높음(S3 Parquet)
조회
최신 1건 (GetRecord)
전체 이력 (Athena)
비용
상대적으로 높음
저렴
가장 큰 가치는 training/serving skew 방지다. 학습과 추론이 같은 특성 정의를 공유해, 두 곳의 계산이 미묘하게 달라 성능이 무너지는 문제를 원천 차단한다. Feature Group(Record Identifier + Event Time)이 단위이며, Event Time이 point-in-time 조회와 미래 누수 방지의 기준이 된다.
# 학습: 오프라인 스토어를 Athena로 대량 조회query = feature_group.athena_query()query.run(query_string="SELECT * FROM customer_features WHERE ...", output_location="s3://my-bucket/query-results/")# 추론: 온라인 스토어에서 최신 특성 1건 조회record = featurestore_runtime.get_record( FeatureGroupName="customer-features", RecordIdentifierValueAsString="cust_12345",)
SageMaker Clarify는 학습 전후로 편향을 측정하고(민감 속성 facet, CI·DPL 지표) 예측의 특성 기여도를 SHAP으로 설명한다. 여기에 데이터 품질 점검이 더해져 신뢰할 수 있는 데이터셋이 완성된다.
점검 항목
기법
지켜야 할 순서
편향
Clarify pre/post-training bias
학습 전에 먼저 본다
설명가능성
SHAP 특성 기여도
학습 후
클래스 불균형
SMOTE, class weight, 언더/오버샘플링
분할 후 학습 셋에만
데이터 분할
층화(불균형), 시간 분할(시계열)
리샘플링·변환보다 먼저
최종 평가
test 셋
단 한 번만
이번 주를 관통하는 한 단어는 "누수(leakage)"다. fit을 test에 하면 변환 누수, 분할 전 리샘플링하면 합성 누수, 미래 값을 특성에 쓰면 미래 누수, Feature Store의 Event Time을 무시하면 look-ahead 누수다. 모든 누수는 "평가는 좋은데 배포는 실패"라는 같은 증상을 낳는다. 특성 공학·데이터 품질의 절반은 누수를 막는 일이다.
[raw]
│ Data Wrangler flow (설계)
│ └─ export → Processing Job (전체 적용)
v
[특성]
│ Feature Store ingest
│ ├─ 오프라인 → 학습셋 (Athena, point-in-time)
│ └─ 온라인 → 추론 (GetRecord)
v
[점검]
│ Clarify: 학습 전 편향(CI·DPL) / 학습 후 SHAP
│ 품질: 불균형 처리(분할 후), 층화·시간 분할, test 1회
v
[신뢰할 수 있는 학습 데이터셋]
이 그림에서 어느 한 화살표라도 손코딩으로 끊기면 재현성과 일관성이 함께 무너진다. "노트북에서만 잘 되는 전처리"는 배포 시점에 반드시 문제를 일으킨다. 시험에서 "재현 가능하게", "학습과 추론이 동일하게"라는 문구가 보이면 export·Feature Store·Pipelines 방향이 정답이다.