모델 학습 pipeline 구축하기
AIMLFW에서 모델을 학습시키려면 먼저 학습 파이프라인을 만들어 올려야 한다. 큰 흐름은 학습에 쓸 데이터를 Feature Group으로 묶고, 파이프라인을 업로드한 뒤, 이 둘을 묶은 Training Job을 만들어 돌리는 식이다.
Feature Group 생성
먼저 학습에 쓸 데이터를 묶는 Feature Group을 만든다. http://localhost:32005 대시보드에서 InfluxDB에 들어있는 데이터를 대상으로 Feature Group을 생성해준다.
Pipeline 생성
파이프라인은 Kubeflow Pipeline 형태로 올라간다. http://localhost:32088의 Jupyter에서 qoe-pipeline.ipynb을 실행하면 파이프라인을 정의한 YAML이 생성되고, 이게 kubeflow-adapter를 통해 업로드된다. 잘 올라갔는지는 http://<ml-pipeline-ui IP>:80/#/pipelines에서 확인할 수 있다.
Training Job 생성
이제 대시보드의 Training Jobs에서 Create를 눌러 학습 작업을 만든다. 앞에서 만든 파이프라인과 Feature Group을 여기서 묶어주는 단계다.

[Fig. 1] Training Job 생성 폼
주요 입력값은 이렇다.
| 항목 | 값 (예시) |
|---|---|
| Training Function | 올린 파이프라인 (Traffic_Forecasting_pipeline) |
| FeatureGroup Name | 만들어둔 Feature Group (viavi) |
| Datalake Source | Influx DB |
| Feature Filter | 학습에 쓸 데이터 필터 (Viavi.Cell.Name == "S10/B13/C3") |
| Hyper Parameters | 학습 매개변수 (epochs:100) |
학습 실행
Training Job을 만들었으면 Train 버튼으로 학습을 돌린다. 학습은 Kubeflow 파이프라인이 파드로 떠서 진행되는데, 대시보드의 Detailed Status에서 Data Collection, Training 같은 단계가 차례로 체크되는 걸 볼 수 있다. 실제 파드 상황은 kubectl get pods -A로도 확인할 수 있다.
파이프라인을 돌리다 보면 완료되거나 실패한 파드가 잔뜩 쌓인다. 보기 거슬리면 한 번에 정리하자.
‘Completed’ 상태 파드 일괄 삭제하기
kubectl delete pod --field-selector=status.phase==Succeeded --all-namespaces
‘Error’ 상태 파드 일괄 삭제하기
kubectl delete pod --field-selector=status.phase==Failed --all-namespaces