마키나락스의 Platform 팀에서는 Kubeflow를 기반으로 하여 ML/DL 모델의 실험과 배포의 간극을 줄이는 MLOps 플랫폼을 개발하고 있습니다. Kubeflow는 ML Workflow 를 Kubernetes-native하게 실행하고 관리할 수 있는 플랫폼이지만, 아직 v1.0 이 released 된 지 약 1년 반 정도밖에 지나지 않은 프로젝트이기에 Kubernetes에 익숙하지 않은 Data Scientist, ML Engineer가 사용하기에는 부족한 점이 다수 존재합니다.

따라서 저희 Platform 팀에서는 Kubeflow의 여러 구성요소들을 활용하되, 특정 기능은 우회해서 사용하고, 또 특정 기능은 자체적으로 구현하여 적절히 커스터마이징하여 사용하고 있습니다. 또한 그중 Kubeflow 프로젝트에 보편적으로 반영할만한 기능들은 Pull Request (이하 PR)을 직접 생성하여 컨트리뷰션을 진행하고 있습니다.

본 포스팅에서는 Kubeflow의 구성요소 중 Hyperparameter Tuning and Neural Architecture Search 기능을 제공하는 Katib를 사용하며 겪었던 불편 사항과 해당 기능을 구현하여 오픈소스 프로젝트에 기여한 경험을 공유드리려고 합니다. Katib에 대한 보다 자세한 정보가 궁금하시다면 다음 공식 문서를 확인해 주시기 바랍니다.