# 파이프라인의 목적
1. 생산성 향상
2. 품질관리 : 지속적인 품질 하락에 따른 관리
3. 장애 대응 능력 향상 : 머신러닝의 장애는 기존의 방식으로 인지하기 어렵고 인지되어도 대처하기 어려운 부분이 많음
즉, 기술부채를 줄이기 위한 전략
# 유지 보수성을 위한 숙제들
- 리펙토링
- 종속성 제거
- API의 강화
- 미사용 코드 삭제 ( 버전 관리의 적극 활용 )
- 문서화
# 일반적인 ML 팀 구성
- Researcher ( ML의 이해는 높지만 SW이해가 낮다. )
- Software Engineer ( SW이해는 높지만 ML에 대한 이해가 낮다. )
- Research Engineer ( 양쪽에 대한 이해가 높아야 하고 중재역할을 잘 할 수 있어야한다. )
# 머신러닝 프로잭트
ML 프로잭트는 기본적으로 실험
SW 프로잭트는 TDD 로 테스트
ML에서는 feature, 알고리즘, hyperparameter 구성등
여러가지 조합에 대한 시도 후 적합한 모델 도출
-> 코드 재사용 극대화, 재현성 유지
SW에서는 기한과 필요 인력등이 예측 가능
# 테스팅 방법
ML시스템 테스트는 SW 보다 복잡하다.
ML시스템은 데스트의 복잡성 때문에 배포의 트리거 포인트를 잡기 어렵다.
ML의 배포는 트리거포인트가 여러가지
요청시 : 파이프라인의 임시 수동 실행
주기적 : 라벨이 지정된 새 데이터는 일정 주기를 가지고 업데이트
새 학습 데이터 : 개 데이터가 들어오는 경우 재학습
모델 성능 저하 시 : 성능 저하가 눈에 띄는 경우 재학습
데이터 변화시 Concept Drift: 사용되는 피쳐의 큰 변화가 생겨 모델이 구식이 되었을 경우
그렇기 때문에 CI가 힘들다.
어려운 머신러닝 프로잭트는
지속적으로 진화하는 데이터셋과
지속적으로 다양해지는 Metric에 의해
파이프라인을 요구하게 된다.
모델 레지스트리가 꼭 필요하다.
# ML 프로잭트의 파이프라인
CI/CD/CT ( Continuous Training )
# MLOps의 성숙도 ( Google )
LV 0
수동적, 스크립트 중심의 대화식 프로세스
ML과 운영의 분리
드문 릴리즈의 반복, 모델 배포 주기가 거의 없음
CI/CD 없음
배포는 예측 서비스를 의미함
Active 모니터링 없음
LV 1 ( 사실상 상당히 높은 편 )
빠른 실험
프로덕션 모델의 CT
실험 운영환경의 조화
구성 요소 및 파이프라인을 위한 모듈화된 코드
지속적인 모델의 제공
파이프라인 배포
LV 2
Production에서 파이프라인을 빠르고 안정적으로 CI/CD/CT
자동화된 CI/CD를 통해 과학자는 Feature Engineering, 모델 아키텍쳐, 하이퍼파라미터를 신속하게 탐색할 수 있음
댓글