반응형
안녕하세요~
27년차 진로탐색꾼 조녁입니다!!
4월 한달동안은 짧게 일도하고 5월부터는 깃헙 잔디를 가꾸기 시작하면서 자연스레 블로그와 멀어지더라고요 ..ㅠ
다시 돌아온 계기는! 제가 처음으로 인프런에서 유료강의를 결제했는데 내용이 너무 좋아서 블로그에 정리해놓고자합니다!
내용은 실무에서 MLOps 가 어떻게 이뤄지고 있는 지에 대한 것인데 첫번째로 머신러닝 파이프라인에 대해 정리해보려합니다.
1. 머신러닝 파이프라인의 이해
eg) 헨리 포드의 자동차 조립 라인(컨베이어 벨트) : 제작시간을 12시간 → 3시간 단축시김으로 자동차가 대중화되었다.
1-1. 머신러닝 프로젝트의 이점
즉, 파이프라인을 통해 얻는 이점은 🧚생산성 향상 , 🧚예측 가능한 품질 , 🧚장애 대응능력 향상이다.
1-2. 머신러닝 파이프라인의 필요성
- 대부분의 회사에서 머신러닝 모델 배포는 쉬워졌지만, 모델을 자속적으로 유지하는데 비용이 매우 크게 든다.
- 기술부채(미래 오류들)를 줄이기 위한 노력 : 리팩토링, 종속성 제거, 단위 테스트, API 강화, 미사용 코드 삭제, 문서화
- 그러나! 머신러닝 시스템에서는 기존의 방식으로 기술 부채 제거가 쉽지 않다.
2.머신러닝 문제의 특징
2-1. 쉬운/어려운 머신러닝 문제
쉬운 머신러닝 문제
- 데이터 변화가 천천히 일어남
- 재학습이 더 많은 데이터로 성능 개선 하는 경우 & 소프트웨어나 환경 변화하는 경우에 일어남
- 라벨링이 수집한 데이터나 크라우드 소싱 기반으로 이뤄짐
어려운 머신러닝 문제
- 데이터 변화가 빠르게 일어남
- 모델 성능 저하로 인한 재학습이 일어남
- 라벨링이 직접적인 피드백 데이터를 기반으로 함( 추천 시스템)
2-2. 머신러닝 프로그래밍 문제의 특징
- 대아터셋, 모델에서 이상치 탐색할 수 있어야 한다.
- 표준화된 방식으로 모델을 평가할 수 있어야 한다.
- 아티팩트의 형상관리가 가능해야한다.
2-3. 개발 프로세스
- ML은 본질적으로 실험이기 때문에 다양한 시도(Feature , 알고리즘, 모델링, 파라미터)를 하며 빠르게 문제점을 찾아야 한다.
- 이 때, 무엇이 효과있었는 지, 없었는 지 추적해서 관리해야한다. 이를 위해 코드 재사용을 최대한 가능케하여 재현성을 계속해서 유지하며 실험하는 것기 과제이다.
2-4. 테스팅 방법 / 배포
- ML 시스템 테스트는 SW 시스템 테스트보다 어렵다. 잘동작하는 지 확인하는 게 명확하지 않다.
- 배포는 오프라인에서 훈련된 모델 구축하는 것만큼 간단치 않다.
- 트리거 포인트는? ML 모델은 여러군데이다.
2-5. 프로덕션
- ML모델은 코딩뿐만 아니라 지속적으로 발전하는 데이터 프로파일 때문에 성능이 저하될 수있다.
- 따라서 데이터의 통계치를 추적하고 모델의 온라인 성능을 모니터링해 예상치를 벗어날 때 알림을 보내거나 롤백해야한다.
3. MLOps의 핵심 문제
3-1. 모델 학습/ 배포 트리거
3-2. 지속적 통합(CI) & 지속적 배포(CD) & 지속적 학습(CT)
- 지속적 통합(Continuous Integration)
- 지속적 배포(Continuous Deployment)
- 지속적 학습(Continuous Training) : 데이터 파이프 라인의 자동화 및 기술 부채의 해소 필요
4. MLOps 성숙도 레벨
4-1. 성숙도 레벨0
- 수동, 스크립트 중심, 대화식(Interactive) 프로세스 _ Colab 으로 띡..
- ML과 운영의 분리
- 드문 릴리즈 반복
- CI 없음
- CD 없음
- 배포는 예측 서비스를 의미
- Active 성능 모니터링 부족
4-2. 성숙도 레벨1
- 빠른 실험
- 프로덕션 모델의 CT
- 실험 운영 환경의 조화
- 구성 요소 및 파이프라인을 위한 모듈화된 코드
- 지속적인 모델 제공
- 파이프라인 배포
4-3. 성숙도 레벨2
- Production에서 파이프라인을 빠르고 안정적으로 업데이트하려면 자동화된 CI/CD 시스템이 필요하다.
- 이 자동화된 CI/CD 시스템을 통해 데이터 과학자는 Feature Engineering, 모델 아키텍처 및 하이퍼 파라미터에 대한 새로운 아이디어를 신속하게 탐색할 수 있다.
참고자료 강의
반응형
'머신러닝 & 딥러닝 공부 > MLOPs' 카테고리의 다른 글
[MLOps]2-1. 실험관리 - Weights and Biases (0) | 2021.07.03 |
---|---|
[MLOps] 1-2.머신러닝 파이프라인 단계 (0) | 2021.05.17 |