피드로 돌아가기
Metadata Routing
Dev.toDev.to
AI/ML

Scikit-Learn Metadata Routing을 통한 ML Pipeline 데이터 흐름 최적화

Metadata Routing

Akshay Dev Karama2026년 6월 19일22intermediate

Context

기존 Scikit-Learn Pipeline 구조에서 sample_weight 및 groups와 같은 보조 정보가 Pipeline 내부 컴포넌트로 전달되지 않는 제약 발생. 이로 인해 불균형 데이터 처리나 GroupKFold 기반 교차 검증 시 hacky한 우회 방법을 사용해야 하는 아키텍처적 한계 존재.

Technical Solution

  • set_config(enable_metadata_routing=True) 설정을 통한 전역 메타데이터 라우팅 활성화
  • set_fit_request()set_predict_request() 메서드를 활용하여 각 컴포넌트별 필요한 메타데이터 명시적 선언
  • Pipeline 내부에서 X(피처)와 y(레이블) 외의 보조 데이터를 독립적인 흐름으로 전달하는 라우팅 메커니즘 도입
  • GridSearchCV 내에서 weights와 groups를 동시에 처리할 수 있는 파이프라인 일관성 확보
  • 예측 시점에는 불필요한 학습용 메타데이터(sample_weight 등)를 분리하여 피처 엔지니어링 오염 방지

- Scikit-Learn

1.3 이상 버전 사용 여부 확인 및 메타데이터 라우팅 설정 활성화 - sample_weight나 groups가 예측 시점(Inference)에 제공 가능한 정보인지 판별하여 Metadata로 분류 - Custom Estimator 구현 시 `set_*_request` 메서드 대응 및 None 값 처리 로직 포함 - `clf__sample_weight`와 같은 레거시 파라미터 전달 방식 제거 및 명시적 API 전환

원문 읽기