본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
오늘은 MLOps 구축을 위해 주로 사용되는 플랫폼들 중에서 AWS에서 직접 제공하는 완전 관리형 서비스, Fully Managed 서비스인 Amazon SageMaker에서 로컬환경에서 코드를 실행하는 것이 아닌, SageMaker 에서 활용할 수 있는 여러 컴퓨팅자원을 활용하여 본격적인 모델 학습을 수행하고, 그 과정을 관리하는 방법을 배웠습니다.
우리가 머신러닝 학습 과정에서 발생하는 수많은 변수들과 결과지표, 그리고 생성된 모델의 Artificat를 자동으로 기록하고 시각화하기 위해서 활용을 해야하는데, MLflow의 Tracking 기능과 유사하지만, AWS 생태계와 어느정도 통합이 되어 활용할 수 있는 SageMaker Experiementk라는 도구에 대해서 알게 되었고 직접 활용해 보았습니다. 그리고 여러번의 시도를 하나의 그룹으로 묶어서 관리하고 각 시도마다 어떠한 파라미터가 최적의 성능을 냈는지 비교 분석할 수 있는 대시보드를 제공한 다는 것을 알게 되었습니다.
또한 이제 모델 학습에 필요한 모든 설정을 정의하는 객체인 Estimator에 대해서도 알게 되었습니다. 보통 어떤 도커 이미지를 쓸지, 어떠한 인스턴스 타입, 몇개 사용할지, 또한 실행할 파이썬 스크립트는 어떤건지 지정을 합니다. 또한 이제 함수를 호출하여 Sagemaker가 지정한 인스턴스를 자동으로 프로비저닝하고, s3에 있는 데이터를 다운로드하여 학습을 수행한 뒤, 결과물을 다시 s3에 저장하고 인스턴스를 종료합니다.
흥미로웠던 점은 개발환경과 학습환경 관리를 하나의 플랫폼에서 할 수 있다는 것이 매우 신기했고, 흥미로웠습니다. 이전에는 쥬피터노트북 커널이 종료되면 다 중단되었지만 이제는 학습 명령을 내리고 꺼도, 클라우드 서버 내에서 작업을 수행하고 결과를 s3에 저장시켜줌으로서 유용하게 호라용할 수 있다는 생각이 들어 앞으로 적극적으로 업무에 활용해 봐야겠다는 생각이 들었습니다.



