피드로 돌아가기
Dev.toAI/ML
원문 읽기
Scikit-Learn 1.5 업데이트와 데이터 편향으로 인한 244만 달러 손실 사례 분석
Postmortem: AI Incident Classifier Failed Due to Biased Training Data and Scikit-Learn 1.5
AI 요약
Context
북미 지역 데이터에 78% 편향된 학습 데이터셋과 Scikit-Learn 1.5의 기본 파라미터 변경이 결합된 시스템 구조. 라이브러리 버전 관리 부재와 모델 캘리브레이션 파이프라인의 검증 누락으로 인해 보안 사고 분류 정확도가 급격히 저하된 상황.
Technical Solution
- Scikit-Learn 1.5의 KMeans
n_init기본값이 10에서 'auto'로 변경됨에 따른 클러스터 중심점의 40% 분산 발생 해결을 위해 모든 하이퍼파라미터 명시적 설정 적용 - 특정 지역(NA) 편향으로 인한 APAC 지역 False Negative 비율 63% 증가를 방지하기 위해 Fairlearn 기반의 Disparate Impact Ratio 측정 로직 도입
- 다수 그룹과 소수 그룹 간 샘플 수 비율이 3배를 초과할 경우 SMOTE 기반 Oversampling 또는 Weighted Loss Function을 통한 데이터 균형 확보
- 비결정적 학습 결과를 방지하기 위해
random_state고정 및 모든 ML 의존성 라이브러리의 Exact Version Pinning 전략 채택 - Staging 환경에서 7일간의 검증 기간을 거치는 ML 전용 CI/CD 파이프라인 구축으로 의존성 업데이트 리스크 최소화
실천 포인트
- ML 라이브러리 업데이트 시 `pip freeze` 등을 통해 Exact Version을 고정했는가? - 학습 데이터의 서브그룹별 성능 리포트를 생성하여 특정 그룹의 성능 저하 여부를 확인했는가? - 라이브러리의 Default Parameter 변경 사항이 모델의 결정론적(Deterministic) 결과에 영향을 주지 않는가? - 데이터 불균형 해소를 위해 SMOTE나 Class Weighting 등의 전략을 검토했는가?