MLOps 수준 0 : 수동 프로세스 

MLOps 수준 0

1. 학습용 데이터를 추출하고 분석한다

2. 데이터 전처리

3. 모델 학습

4. 모델 평가 및 검증

5. 모델 저장소에 등록

6. 모델 서빙

7. 서비스 진행

 

문제점

1. 해당 과정이 전부 수동, 스크립트 기반으로 동작하게 된다 

모든 단계는 수동으로 실행하고 한 단계에서 다른 단계로 전부 일일이 작업자가 타이핑 또는 빌드로 진행하게 된다. 작업자가 개인의 툴에서 실행해보고 됬다 싶으면 다음 단계로 넘어간다 

 

2. ML을 하는 데이터 사이언티스트와 엔지니어링 팀이 분리되어있다 데이터 사이언티스트가 모델을 학습시키고 엔지니어링 팀에 넘긴다 - 넘길때는 모델의 가중치만 있는 파일 또는 레이어가 담긴 파일을 회사 저장소에 저장하는 방식이다

 

3. 이렇게 하다보면 학습할 떄의 성능보다 서빙할때의 성능이 떨어지는 모델이 생길 가능성이 있다

 

4. 지속적이지 않은 모델 업데이트 - 1년에 한두번 할 까 말까 한 정도의 재학습이 진행되어 모델의 성능이 떨어지는건 생각지 않는다

 

5. CI 없음 - 구현 변경사항이 거의 없으므로 CI란게 없다 코드테스트가 관리되지 않고 개인의 툴에 저장되어 있기 때문에 각각의 작업자의 개인 PC에 코드들이 저장되어있다

 

6. CD 없음 - 모델의 버전이 자주 변경되지 않으니 CD는 고려되지 않는다

 

7. MLOps 수준 0는 전체 ML 시스템을 배포하는게 아닌 학습된 모델을 배포하는것이다

 

8. 모니터링 없음 - 모델의 성능이 저하됐는지 모른다 모델 동작 드리프트를 감지하는데 필요한 trigger를 설정하지 않았다

 

 

내가 지금까지 했던 프로세스가 MLOps 수준 0 에 해당했다 

개인 작업PC에서 모델을 학습시키고 Github같은 협업툴을 사용하지 않고 혼자 작업했다 

물론 혼자 작업하면 편한점은 있다 편하다 

하지만 나중에 후회했다 지속적으로 코드를 정리하지 않다보니 전에 좋았던 하이퍼파라미터가 무엇이였는지 어디에 저장해놓았는지 까먹을 때가 있었고 실수로 파일을 지워버리면 복구하기까지 시간이 오래걸렸다 

또한 실제로 모델을 학습시켜서 서비스를 하려했지만 학습 PC와 서비스 PC의 사양이나 구성요소등이 달라 구축환경을 맞추기도 힘들었다

특히 학습 데이터를 관리를 잘 하지 못해 학습을 시키고 보니 더 성능이 떨어졌던 기억이 있다.

또한 학습 데이터셋을 버전관리를 하지 않아 모델간의 성능 비교 효과가 떨어졌다

 

https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning

 

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인  |  Google Cloud

이 문서에서는 머신러닝(ML) 시스템을 위한 지속적 통합(CI), 지속적 배포(CD), 지속적 학습(CT)을 구현하고 자동화하는 기술을 설명합니다. 데이터 과학 및 ML은 복잡한 실제 문제를 해결하고, 업계

cloud.google.com

 

+ Recent posts