본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
학습 후기
오늘은 Chapter Part.2 머신러닝 상품화 내용에서 MLOps 구현을 위한 인프라와 도구, 특히 MLOps를 실현하기 위해 필요한 3대 요소인 코드, 데이터, 모델을 어떻게 추적 및 관리할것인지? 이것을 어떻게 해결하는 기술인 버전 관리에 대해 알아보았습니다.
먼저 코드의 버전 관리 부분에 대해서 한번 알아보면, 소스코드의 변경 이력를 관리하는 표준도구인 Git에 대해서 알아보았습니다. 협업때 충돌을 방지하고 코드의 안정성을 유지합니다. 이제, 데이터 버전 관리 부분에 대해서 알아보면, ML 모델 성능은 데이터에 따라 달라지므로, 어떠한 데이터로 학습하고, 큰 용량의 데이터를 어떻게 넣느냐? 이걸 생각해보면 일반적인 Git으로는 데이터의 용량이 꽤 크므로, 관리가 힘듭니다. 이때 DVC라는 도구를 활용한다고 합니다. DVC는 Git과 유사한 인터페이스로 활용하므로, 실제 대용량 데이터는 이제 S3와 같은 별도의 저장소에 넣어놓고, 메타데이터만 저장하여 활용하는 방식으로 진행한다고 합니다.
그리고 모델의 버전을 관리하는 부분도 알아보았습니다. 실형 관리, 모델의 패키징, 배포등의 기능을 제공하는 MLFlow, 수많은 모델 실험의 변수, 결과 지표를 자동으로 기록하고 시각화 하여 가장 성능이 좋은 모델과 설정을 언제든지 확인할 수 있게 해줍니다. 이렇게 이제 데이터와 모델도 Git 처럼 형상관리를 할 수 있다는 것을 알게 되었으며, 데이터의 용량이 클때 데이터셋을 DVC만 쓰면 데이터의 포인터만 깃에 올려서 관리한다는게 매우 신기하게 느껴졌습니다. 그리고 이제 모델을 학습 시킬때 마다 기록을 남겨주어 추적을 가능하게 해줬다는것이 매우 신기하고 나중에 업무에서 잘 활용을 해야겠다는 생각이 들었습니다.
모델에 활용되는 골든 데이터셋을 직접 구축해본 경험이 생각나서 이렇게 편리하게도 데이터를 관리하고 구축할 수 있다는 것이 신기했습니다. 앞으로 업무에 활용하여 효율성을 챙기는 경험을 하고 싶습니다.



