1. Katib 개념
kubeflow 구성 요소 중 AutoML 프로젝트를 담당합니다. 현재 hyperparameter Tuning, Early Stopping, Neural Architecture Search를 지원해줍니다. 아직 Katib는 현재 베타버전에 속하는 편입니다.
hpo(hyperparameter optim을 줄여 말하겠습니다)가 필요한 이유는 모델에 많고 많은 hp가 들어가는데, 일일이 어떤 hp가 좋은지 확인하기도 어렵고, Grid Search는 Search Space가 커질수록 찾기가 힘듭니다. 그래서 최대한 시간을 줄이면서 효율적으로 hp를 찾아야합니다. 하지만 또 데이터마다 서치알고리즘이 다 다릅니다. 여기서 쿠버네티스 위에서 ml, dl을 돌리는 것이 좋은 점이 병렬적으로 리소스를 활용하여 hp를 찾을 수 있는 이점이 있습니다.
2. Katib의 Concept
카티브에서 4가지 요소(experiment, suggestion, trial, worker job)가 있습니다. 위 그림은 관계도를 나타냅니다.
experiment를 제외한 요소들은 전부 1대1로 대응됩니다.
- experiment : hpo 전체 과정 1회를 나타냅니다. 전체 1회라는 것안에 내용들은 objective function(metric), search space(search range), search algorithm(random search, bayesian search, grid search 등) 를 뜻합니다.
- suggestion : 서치알고리즘으로 부터 추천받은 후보 hp 조합 1세트를 받음. 1 suggestion 은 1개의 trial에 대응됩니다.
- trial : suggestion에 담긴 특정 hp 조합 1세트에 대해 모델 학습, 평가를 수행합니다.
더 정확한 내용과 정의는 아래를 참고하시면 됩니다.
3. Prerequisite
이전에 minikube + kubeflow v1.4 환경에서 수행합니다. katib v0.12.0 입니다. 또한 yaml 파일을 읽기 편한 ide가 있으면 됩니다.
1) kubectl get deploy -n kubeflow | grep katib 로 4개 Components가 있는지 확인하셔야합니다.
- katib - controller
- katib - db - manager
- katib-mysql
- katib-ui
2) 아래 명령어를 하나씩 입력해 확인해 줍니다.
minikube status
kubectl get nodes
kubens kubeflow # https://github.com/ahmetb/kubectx 설치 후
kubectl get po
관련 document는 아래와 같습니다.
https://www.kubeflow.org/docs/components/katib/overview/
다음 글 부터는 Katib Experiment 예제를 다루어 보겠습니다.
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'AI > MLOps' 카테고리의 다른 글
[패스트캠퍼스 챌린지 30일차] Feature Engineering & ML Pipeline (0) | 2022.02.22 |
---|---|
[패스트캠퍼스 챌린지 29일차] Kubeflow Katib Practice (0) | 2022.02.21 |
[패스트캠퍼스 챌린지 27일차] Kubeflow Pipeline (2) (0) | 2022.02.19 |
[패스트캠퍼스 챌린지 26일차] Kubeflow Pipeline (1) (0) | 2022.02.18 |
[패스트캠퍼스 챌린지 25일차] Kubeflow 기능 살펴보기 (0) | 2022.02.17 |