본문 바로가기
공부/MLOps

MLOps - 1

by DSLAB_JS 2021. 12. 7.

MLops라는 것에 관심이 생겨서 조금씩 공부해보기로 하였다.

Inflearn에서 송호연 강사님의 강의를 수강하여 공부를 이어나가기로 했다.

수업들은 내용과 자료를 바탕으로 나름대로 정리해보고자 한다.

  *모든 자료와 내용은 송호연 강사님의 자료 출처입니다.*

 

  • 머신러닝 파이프라인의 이해

파이프라인이 필요한 이유는 

  •  리팩토링
  •  종속성 제거
  • 단위 테스트 
  • API 강화
  • 미사용 코드 삭제
  • 문서화

6가지가 필요성에 있는데 이는 '유지보수성 향상'에 도움이 된다.

기존에 알려진 코드 수준의 기술 부채제거 방식으로는 이런 문제를 해결하기 어렵다.

 

  • 머신러닝 문제의 특징
  1. 쉬운 머신러닝 문제
    • 데이터의 변화가 천천히 일어난다.
    • 모델 재학습의 경우, 더 많은 데이터로 모델 성능 개선되거나 sw혹은 시스템의 변화일때
    • 라벨링
  2. 어려운 머신러닝 문제
    • 데이터의 변화가 빠르게 일어난다.
    • 모델 성능이 저하될 때
    • 라벨링 + 직접적인 피드백

머신러닝 프로그래밍에서도 발생하는 문제의 특징으로는

  • 고정된 데이터세트
  • 통합 불가능한 아티팩트
  • 문제 정의 없는 경우
  • 검증되지 않는 데이터셋, 모델
  • 편향된 데이터셋

등등 여러가지가 존재한다.

  • 프로젝트 Flow

흔히 SW프로젝트는 SW engineer로 구성되는 반면에,

      ML 프로젝트는 Research Scientist, Engineer, SW engineer로 구성된다.

 

개발 프로세스에서 ML은 본질적으로 실험이라고 본다고 한다. 다양한 Feature들, 알고리즘, 모델링 기술 및 파라미터 구성을 여러번 시도 끝에 가능한 빨리 문제를 해결할 수있는 적합한 모델을 찾는 것이다.

또한, 무엇이 효과가 있는지 없는지를 추적하고, 코드 재사용을 극대화하면서 재현성을 유지하는 것이 큰 과제이다.

 

테스트를 하는 것도 SW시스템보다 훨씬 더 복잡하고 어렵다.

 

배포를 하는 것에서도 오프라인에서 훈련되는 ML 모델을 구축하는 것 만큼 간단하지 않다. 

최근 안드로이드에서도 ML기술을 바탕으로 앱을 만들거나 보다 쉽게 적용하려는 기술들이 여기저기 보이는듯 하다.

 

Production에서도 ML모델은 코딩뿐만아니라 지속적으로 데이터가 발전하기 때문에(증가) 성능이 저하될 수 있다. 그래서 데이터의 통계치를 추적하고 온라인 성능을 모니터링해서 계속해서 알림 및 롤백, 유지보수가 필요하다.

 

  • MLOps의 핵심문제
    • 모델 학습 
      • 머신 러닝 시스템은 다음과 같은 상황에서 학습과 모델을 배포한다. 
        • 요청 시 : 파이프라인의 임시 수동 실행
        • 일정 기준 : 라벨이 지정된 새 데이터는 매일, 매주 또는 매월
        • 새 학습 데이터 : 새 데이터가 들어오는 경우 모델의 재학습을 트리거
        • 모델 성능 저하 시 : 성능 저하가 눈에 띄는 경우 모델 재학습
        • 데이터 분포의 중요한 변화 시 : 
          온라인 모델의 전체 성능을 평가하기는 어렵지만, 예측을 수행하는 데 사용되는 피쳐의 데이터 분포에 큰 변화가 있으면, 모델이 오래되었다는걸 뜻한다.

  • 머신러닝 프로그래밍 문제의 특징
    • 진화하는 데이터셋과 Metric
    • 지속적 통합
    • 지속적 배포
    • 지속적 학습
  • MLOps 성숙도 레벨 0 ~ 2
    • MLOps 성숙도 레벨 0
      • 수동, 스크립트 중심, 대화식(Interactive) 프로세스
      • ML과 운영의 분리
      • 드문 릴리즈 반복
      • CI 없음
      • CD 없음
      • 배포는 예측 서비스를 으미ㅣ
      • Active 성능 모니터링 부족
    • MLOps 성숙도 레벨 1
      • 빠른 실험 
      • 프로덕션 모델의 CT
      • 실험 운영 환경의 조화
      • 구성 요소 및 파이프라인을 위한 모듈화된 코드
      • 지속적인 모델 제공
      • 파이프라인 배포
    • MLOps 성숙도 레벨 2
      • Production에서 파이프라인을 빠르고 안정적으로 업데이트하려면 자동화된 CI/CD 시스템이 필요하다. 
      • 이 자동화된 CI/CD 시스템을 통해 데이터 과학자는 Feature Engineering, 모델 아키텍처 및 하이퍼 파라미터에 대한 새로운 아이디어를 신속하게 탐색할 수 있다.

'공부 > MLOps' 카테고리의 다른 글

MLops - 5.1 (TFDV)  (0) 2022.02.02
MLOps - 5 (TFDV)  (0) 2022.01.23
MLOps - 4  (0) 2022.01.06
MLOps - 3  (0) 2022.01.03
MLOps - 2  (0) 2021.12.12