본문 바로가기
AI 빅데이터/Open Source Software

[OSS] Katib로 Hyper Parameter Tuning 하기

by 마고커 2020. 6. 30.


Katib는 아랍어로 '비서'라는 뜻이다. 머신러닝을 수행하는 일의 상당부분이 최적화 파라미터를 찾는 부분인데, 그것을 돈으로 자동으로 찾아 주는 것이라 보면 된다. AutoML은 Auto Feature Engineering, Neural Architecture Search, Hyper Parameter Optimization을 지원하는데 Katib는 후자 2개를 지원한다. 아직 NAS는 베타 상태이고, HPO만 테스트 해 보았는데 절차에 비해 사용은 그리 간단하지 않은 느낌이다. 

 

준비할 것은 Kubeflow 설치와 YAML 파일 뿐이다.

설치는 이전 포스트에서 했고, YAML파일은 공식 사이트에서 MNIST 예제를 가져와서 적용해 보자.

 

algorithmName: 부분의 random은 random search 방식을 사용하겠다는 것으로 Hyperband, Grid, Baysian 방식 등을 사용할 수 있다.

나머지 내용은 사용은 쉽지 않지만, 구성은 간단하다. 변경할 파라미터들을 정의하고 어떤 범위 내에서 변동 시킬 것인가를 설정한다. trialTemplate 부분에서 사용되는 Docker와 실행 명령어, 그리고 하이퍼파라미터 적용 부분을 기술하는 것으로 끝난다.

 

random-example.yaml

 

위의 YAML을 만든 후에는 아래와 같은 명령을 주는 것만으로 모든 것이 끝난다. 

kubectl -n <Kubeflow에서 정의한 NameSpace> describe experiment random-example

 

Kubeflow Dashboard에서 'Katib' 메뉴를 선택한 후 'Monitor'항목을 보면 yaml 파일이 아래와 같이 적용되어 있다.

 

 

해당 항목을 선택하면, 진행 상태가 나타나고 모두 끝나면 최적의 예측을 이끌어 낼 수 있는 파라미터 세트를 알려준다.

 

 

구조는 간단하지만, 충분히 더 GUI화하여 제공할 수 있는 방법이 있지 않을까 한다. 내가 모르는 건가... 



댓글