본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
학습 후기
오늘은 Chapter Part.2 머신러닝 상품화 내용에서 머신러닝 상품화를 위한 기술들에 대해 공부한 내용들을 정리해보면서 느꼈던것이 머신러닝 모델을 단순히 개발하는 것이 아닌, 안정적이고 효율적인 시스템으로 운영하기 위한 MLOps 개념들을 정리해보았습니다.
일단 첫번째는 ML Lifecycle의 이해에 대해서 정리해보면, ML개발은 이제 문제 정의, 데이터 모델링으로 이어지는 선형적인 과정이 아니라, 지속적으로 순환되는 사이클이라고 이해했습니다. 특히 데이터는 모델의 성능의 상한선을 결정하는 가장 중요한 기반입니다. 그리고 실제 프로덕션 환경에서 의외로 머신러닝 코드가 차지하는 비중은 적습니다. 대신 이제 데이터를 수집하고, 검증하고, 자원 관리, 서빙, 모니터링등 주변의 인프라가 대부분의 비중을 차지합니다.
이제 이렇게 MLOps를 구현하는 단계는 주로 3단계가 있으며 회사마다 구현이 되어 있는 수준 단계는 다릅니다. Level 0은 빌드와 배포가 수동으로 이루어 지는 단계, Level 1은 데이터 변화에 따라 모델 재학습이 진행된 단계. Level 2는 파이프라인 자체에 테스트와 배포까지 자동화 된 단계. 이러한 MLOps를 구현하기 위해서 여러 직무, Data Scientist, Data Engineer, SW Engineer, PM등 각기 다른 관점에서 MLOps를 바라보고 협력을 해야한다는 점을 배웠습니다.
그러면서 제일 신기했던것은 MLOps의 성숙도를 가르는 기준은 코드가 아닌, 데이터라는걸 깨달았습니다. 일반적인 DevOps는 코드가 변경되면 배포를 하지만, MLOps 같은 경우는 새로운 데이터가 들어오거나, 데이터 분포가 변했을때 라는 점이 신기했습니다. 머신러닝 시스템에서 그만큼 데이터는 단순한 재료가 아닌, 시스템의 동작을 결정하는 소스코드와 비슷한 의미였다는걸 깨달았습니다.



