Week1

📝 이번 주 목표

  • [Section 0] 머신러닝 파이프라인 소개
    • (1) 머신러닝 파이프라인의 이해
    • (2) 머신러닝 파이프라인 단계

📚 강의 내용 정리

(1) 머신러닝 파이프라인의 이해

파이프라인의 필요성

  • 파이프라인 : 잘 정의된 프로세스
  • 파이프라인의 이점
    • 생산성 향상
    • 예측 가능한 품질(모델 서빙 이후에도 품질 관리를 시스템화)
    • 장애 대응능력 향상
  • 기술 부채(Technical Debt)
    • 머신러닝 시스템의 개발 및 배포는 비교적 쉽고 빠르지만, 해당 시스템을 유지하고 관리하는 비용은 매우 크다.
    • 소프웨어 공학에서의 해결 : 리팩토링, 종속성 제거, 단위 테스트, API 강화, 미사용 코드 삭제, 문서화 -> 유지보수성 향상
    • 머신러닝 시스템에서는 추상화(Abstraction)가 잘 안되서, 기존에 알려진 코드 수준의 기술 부채 제거 방식으로 해결하기 어렵다.

머신러닝 프로그래밍

  • 머신러닝 문제의 특징
    • 쉬운 머신러닝 문제 : 데이터의 변화가 천천히 일어난다. (분기, 월 단위)
    • 어려운 머신러닝 문제 : 데이터의 변화가 빠르게 일어난다. (주 단위)
    • 난이도 : online serving »> offline serving
    • 엔지니어링 요소 : 문제 정의, 데이터 검증, 모델 검증, 형상관리 등
  • 단계별 특징
    • 팀 구성 : 리서치 사이언티스트 + 리서치 엔지니어 + 소프트웨어 엔지니어 -> 협업의 난이도가 높음
    • 개발 프로세스 : 본질적으로 실험(다양한 알고리즘, 모델링, 파라미터 구성 시도) + 코드 재사용 극대화 + 재현성 유지
    • 테스트 : 추상화의 경계가 없기 때문에 복잡하다.
    • 배포 : 코드 배포(CI/CD) + 모델 배포
    • 프로덕션 : 지속적인 모니터링, 문제시 롤백
  • 결론 : 머신러닝 프로그래밍 = 소프트웨어 프로그래밍 + (大) $\alpha$

MLOps

  • 핵심 문제
    • 지속적 통합 CI(Continuous Intergration)
    • 지속적 배포 CD(Continuous Deployment)
    • 지속적 학습 CT(Continuous Training)
      • 모델 학습/배포 트리거 : [요청/일정 기간/새 학습 데이터/모델 성능 저하/데이터 분포 변화(온라인 학습)] 시에 파이프라인 실행
  • 성숙도 레벨
    • 레벨 0 : 수동 프로세스 - ML과 Ops(운영)의 분리
    • 레벨 1 : 머신러닝 파이프라인 자동화 - 자동화하여 지속적 학습
    • 레벨 2 : CI/CD 파이프라인 자동화 - 자동화된 CI/CD를 사용

(2) 머신러닝 파이프라인 단계

개요

  • 라이프사이클 image

  • 이를 수동으로 진행한다면 번거롭고 오류가 발생하기 쉬움

데이터

  • 데이터 수집(Data ingestion) : 파이프라인의 시작, 지속적인 데이터 유입이 자동화의 핵심
  • 버전 관리(versioning) : 재현가능성(reproducible) 목적, 클라우드 기반 Object Storage를 주로 이용
  • 데이터 검증(Data validation) : 새 데이터의 통계 확인, 이상 징후 감지 시 경고
  • 데이터 전처리(Data preprocessing) : 머신러닝 모델이 학습할 수 있는 형태로 변환, Feature 추가/제거/수정에 대한 기법, 배치 단위로 효율적으로 진행, data split도 전처리 단계에서 하기

모델

  • 모델 학습(Model training) : 머신러닝 파이프라인의 핵심, 제한된 컴퓨팅 자원 내에서 효율적으로 학습, 재학습 자동화
  • 모델 튜닝(Model tuning) : hyperparameter optimization, ensemble search 등
  • 모델 분석(Model analysis) : 모델 성능 평가, 예측 공정성 확인
  • 모델 버전 관리(Model validation) : 모델의 stage관리, 일반적인 코드 버전과는 다르기 때문에 복잡하다.

배포

  • 모델 배포(Model deployment) : 모델 업데이트, 모델 서버 사용, 여러 API 인터페이스(REST, RPC 등) 제공, 동일한 모델의 여러 버전 동시에 호스트, 모델 A/B 테스트
  • 피드백 루프 반복(Model feedback) : 배포된 모델의 효과와 성능 측정, 모델 분석 단계와 피드백 단계는 수동
  • 개인 정보 보호 : 표준 머신러닝 파이프라인 밖이지만, 새로운 법률 도입으로 인해 통합
    • 차등 개인 정보 보호(Differential Privacy)
    • 연합 학습(Federated Learning)
    • 암호화된 머신 러닝(Encrypted Macine Learning)

🚀 학습 회고

  • MLOps 스터디를 시작하기 전에 MLOps가 도입된 회사들이 많이 없다는 말을 듣고 공부의 필요성이 있을까 생각했는데, 강의를 듣고 보니 이런 시스템 없이 어떻게 ML 시스템을 유지할지 의문이 든다.
  • 앞으로 각 파트에 대해서 자세히 배울텐데, 실습도 같이 진행해보면서 익숙해지도록 노력해야겠다.