[MLOps Study] 1. 머신러닝 파이프라인 소개
Naver Boostcamp AI Tech 구성원들과 함께하는 MLOps 스터디
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) 머신러닝 파이프라인 단계
개요
-
라이프사이클
-
이를 수동으로 진행한다면 번거롭고 오류가 발생하기 쉬움
데이터
- 데이터 수집(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 시스템을 유지할지 의문이 든다.
- 앞으로 각 파트에 대해서 자세히 배울텐데, 실습도 같이 진행해보면서 익숙해지도록 노력해야겠다.