학생 때 ML을 공부할 때에는 간단하게 요약하면 다음과 같이 공부를 했었습니다.
- 많이들 들어본 알고리즘(Linear Reg, Logistic Reg, Decision Tree, RF, SVM 등등) 원리, 수식
- 수식 이해가 잘 되지 않았을 때 예제 데이터와 함께 R 또는 Python으로 이해
- 논문 쓸 때에는 기존 baseline 모델 보다 성능 높이기와 데이터 전처리 및 튜닝의 반복
여기서 성능이 가장 좋았던 모델의 정보, n번째로 좋았던 모델의 정보, n번 Cross Validation를 했을 때 가장 좋았던 정보 등 이러한 내용들을 object로 떨구어서 엑셀에 따로 기록을 했었던 기억이 있습니다. 프로젝트를 3년동안 해보면서 몇몇 프로젝트는 협업보다는 개인적으로 모델 하나 할당을 받아 진행을 했었습니다. 혼자서는 저만의 방식으로 진행을 했었습니다. 폴더를 잘 관리하거나 엑셀이나 노션 같은 Tool을 이용해서도 관리가 용이합니다.
하지만 프로젝트는 협업과 끊임없는 커뮤니케이션을 무조건 해야할 수밖에 없는 구조입니다. 협업하는 사람들 마다 전부 익숙하거나 환경이 다릅니다. 다음과 같은 차이점이 있다고 생각해보겠습니다.
- DL framework 차이
- window/linux/ubuntu 차이
- 각자 할당받은 서버 환경 차이
- 보안상의 이유로 순서 및 특정 요일 특정 서버에만 사용
- GPU 문제
이러한 요소 이외에도 많은 차이점들이 있을 것 입니다. 대다수의 기업들이 프로젝트를 진행하면서 이러한 문제를 겪어보았을 것입니다.
85% AI 프로젝트가 상용화까지 도달 못하고 이런 저런 이유로 실패한다는 리서치 자료도 존재합니다.
아래 그림은 상당히 유명한 구글 논문(Hidden Technical Debt in Machine Learning Systems, 2015)입니다.
위 그림이 시사하는 바는 ML 모델을 성공적으로 서비스화 하기 위해서 단순히 좋은 성능의 모델을 사용하는 것이 아니라는 것입니다. 다음과 같은 요소를 ML 프로젝트를 해본 경험이 있는 사람이라면 다 한 번씩은 생각해본 경험일 것입니다.
- 성능이 떨어지지 않는지?, 떨어질 때 과거의 챔피언 모델로 돌아갈 수 있는지?
- 시스템 문제가 있는지?
- 데이터 분포 모니터링이 되는지?
- 새로운 데이터가 들어왔을 때 검수가 되는지?
- 자동으로 스케일링 등 전처리 파이프라인이 잘 작동하는지?
- 데이터 백업 또는 피딩이 잘 이루어지는지?
등 정말 다양한 요소들이 펼쳐져 있습니다.
다음 글에서는 MLOps에 대한 거시적인 부분을 소개하는 글로 뵙겠습니다.
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'AI > MLOps' 카테고리의 다른 글
[패스트캠퍼스 챌린지 6일차] Docker 기본 명령어 (0) | 2022.01.29 |
---|---|
[패스트캠퍼스 챌린지 5일차] Docker 환경 구성 및 설치 (0) | 2022.01.28 |
[패스트캠퍼스 챌린지 4일차] Container Orchestration (0) | 2022.01.27 |
[패스트캠퍼스 챌린지 3일차] MLOps의 구성요소 (0) | 2022.01.26 |
[패스트캠퍼스 챌린지 2일차] MLOps = ML + DevOps (0) | 2022.01.25 |