ML Systems Basic
ML Systems Basic
머신러닝 시스템은 단순히 모델만을 개발하는 것이 아니라, 비즈니스 목표, 데이터, 인프라, 배포, 모니터링 등 다양한 요소가 유기적으로 결합되어야 합니다. 머신러닝 시스템 설계의 핵심 요소와 요구사항, 그리고 반복적 개발 프로세스를 정리했습니다.
1. 비즈니스와 ML 목표
머신러닝 시스템을 개발하기 전에 가장 먼저 고려해야 할 것은 왜 이 시스템이 필요한가입니다.
- 기업 환경에서 ML 시스템은 비즈니스 목표에 의해 주도됩니다.
- 데이터 과학자들은 종종 정확도, F1 점수와 같은 ML 지표에 집중하지만, 기업은 이 지표 자체보다는 그것이 비즈니스 성과(이익, 전환율, 고객 만족 등)에 어떤 영향을 미치는지를 중요하게 여깁니다.
- 따라서 ML 시스템은 반드시 비즈니스 성과와 연결되어야 하며, 그렇지 않으면 프로젝트는 쉽게 종료될 수 있습니다.
2. ML 시스템의 요구사항
머신러닝 시스템은 사용 사례에 따라 다르지만, 대부분의 경우 다음 네 가지 요구사항을 충족해야 합니다.
2.1 신뢰성 (Reliability)
- 역경(오류, 장애, 인간 실수)에도 올바른 기능을 수행해야 합니다.
- ML 시스템은 종종 조용히 실패(silent failure)하므로 사용자가 오류를 인식하기 어렵습니다.
2.2 확장성 (Scalability)
- 모델 복잡성, 트래픽, 모델 수 등 다양한 측면에서 성장할 수 있습니다.
- 단일 모델 관리와 수백 개 모델 관리에는 큰 차이가 있으며, 자동화된 모니터링과 재학습이 필요합니다.
- 클라우드 환경에서는 오토스케일링이 핵심 기능입니다.
2.3 유지보수성 (Maintainability)
- 다양한 배경의 사람들이 협업할 수 있도록 구조화해야 합니다.
- 코드, 데이터, 산출물은 문서화되고 버전 관리되어야 하며, 재현성이 보장되어야 합니다.
2.4 적응성 (Adaptability)
- 데이터 분포 변화와 비즈니스 요구 변화에 빠르게 대응해야 합니다.
- 서비스 중단 없이 업데이트가 가능해야 하며, 지속적 학습(continual learning)을 지원해야 합니다.
3. 반복적 프로세스 (Iterative Process)
머신러닝 시스템 개발은 선형적 과정이 아니라 반복적이고 순환적인 과정입니다.
주요 단계
- 프로젝트 범위 정의: 목표, 제약조건, 이해관계자 식별 및 자원 배분.
- 데이터 엔지니어링: 데이터 수집, 정제, 라벨링.
- ML 모델 개발: 특징 엔지니어링, 모델 학습 및 평가.
- 배포: 모델을 사용자에게 제공.
- 모니터링 및 지속적 학습: 성능 저하 감지 및 업데이트.
- 비즈니스 분석: 모델 성능을 비즈니스 목표와 연결하여 분석.
반복적 사이클 예시
- 지표 선택 → 데이터 수집 및 라벨링 → 모델 학습 → 오류 분석 → 데이터 보강 → 모델 재학습 → 최신 데이터 반영 → 배포 → 성능 모니터링 → 비즈니스 목표 재조정 → 다시 시작.
맺음말
머신러닝 시스템은 단순히 모델을 만들고 배포하는 것으로 끝나지 않습니다. 비즈니스 목표와 ML 목표를 연결하고, 신뢰성·확장성·유지보수성·적응성을 충족해야 하며, 지속적으로 반복되는 개발 사이클을 거쳐야 합니다. 이러한 과정을 통해 비즈니스 성과에 기여할 수 있는 실질적이고 안정적인 ML 시스템을 구축할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.