Post

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)

머신러닝 시스템 개발은 선형적 과정이 아니라 반복적이고 순환적인 과정입니다.

주요 단계

  1. 프로젝트 범위 정의: 목표, 제약조건, 이해관계자 식별 및 자원 배분.
  2. 데이터 엔지니어링: 데이터 수집, 정제, 라벨링.
  3. ML 모델 개발: 특징 엔지니어링, 모델 학습 및 평가.
  4. 배포: 모델을 사용자에게 제공.
  5. 모니터링 및 지속적 학습: 성능 저하 감지 및 업데이트.
  6. 비즈니스 분석: 모델 성능을 비즈니스 목표와 연결하여 분석.

반복적 사이클 예시

  • 지표 선택 → 데이터 수집 및 라벨링 → 모델 학습 → 오류 분석 → 데이터 보강 → 모델 재학습 → 최신 데이터 반영 → 배포 → 성능 모니터링 → 비즈니스 목표 재조정 → 다시 시작.

맺음말

머신러닝 시스템은 단순히 모델을 만들고 배포하는 것으로 끝나지 않습니다. 비즈니스 목표와 ML 목표를 연결하고, 신뢰성·확장성·유지보수성·적응성을 충족해야 하며, 지속적으로 반복되는 개발 사이클을 거쳐야 합니다. 이러한 과정을 통해 비즈니스 성과에 기여할 수 있는 실질적이고 안정적인 ML 시스템을 구축할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.