본문 바로가기
[GPUaaS]/Kubeflow

[Katib] 머신러닝 모델의 하이퍼파라미터를 자동으로 찾아주는 실험 관리자

by METAVERSE STORY 2026. 2. 2.
반응형

 

 

0️⃣ 한 줄 요약

Katib = 머신러닝 모델의 하이퍼파라미터를 자동으로 찾아주는 실험 관리자

👉 사람이 하나하나 값 바꿔가며 실험하는 걸 대신해주는 자동 실험 로봇


1️⃣ 하이퍼파라미터가 뭐야? (여기서부터 시작)

❓ 모델 학습할 때 꼭 정해야 하는 값들

 
learning_rate = 0.01 ? batch_size = 32 ? optimizer = Adam ?

이런 값들은:

  • 코드 안에 있지만
  • 학습 전에 사람이 정해야 하고
  • 성능에 엄청 큰 영향

👉 이게 하이퍼파라미터


2️⃣ 사람이 직접 하면 생기는 문제

😵 수동 실험의 현실

 
1차: lr=0.01 → 정확도 85% 2차: lr=0.001 → 88% 3차: lr=0.0001 → 60% 😱
  • 경우의 수 폭발
  • GPU 시간 낭비
  • 기록 누락
  • 최적값 찾기 어려움

👉 “이걸 자동으로 해주는 애 없나?”


3️⃣ Katib이 해결하는 문제

Katib은 이렇게 해:

1️⃣ 여러 하이퍼파라미터 조합을 자동 생성
2️⃣ 각 조합으로 학습 Job 실행
3️⃣ 결과(정확도 등) 수집
4️⃣ 가장 좋은 조합 선택

📌 핵심: 학습은 TFJob / PyTorchJob이 하고
Katib은 “실험을 관리”만 함


4️⃣ Katib의 전체 동작 흐름 (아주 중요 ⭐)

 
[Katib Experiment 생성] ↓ [하이퍼파라미터 조합 생성] ↓ [Trial 생성] ↓ [TFJob / Job 실행] ↓ [Metric 수집] ↓ [최적 파라미터 선택]

5️⃣ Katib의 핵심 개념 5가지 (초보자 필수)

① Experiment (실험 전체)

“이번에 learning_rate랑 batch_size 최적화할 거야”

  • Katib의 최상위 리소스
  • 실험 목적과 범위 정의
 
kind: Experiment

② Parameter (바꿔볼 값들)

 
parameters: - name: learning_rate parameterType: double feasibleSpace: min: "0.0001" max: "0.1"

✔ 어떤 값을
✔ 어떤 범위에서
✔ 어떻게 바꿀지


③ Algorithm (탐색 방법)

Katib이 “어떻게” 찾을지 결정

알고리즘설명
Grid 전부 다 해봄
Random 랜덤
Bayesian 똑똑하게
Hyperband 빨리 망하는 실험 컷

초보자 👉 Random / Grid 추천


④ Trial (실험 1회)

“learning_rate=0.01, batch=32 로 한 번 돌려보자”

  • 실제 실행 단위
  • 내부에서 TFJob / Job 생성됨
 
Experiment ├─ Trial #1 ├─ Trial #2 └─ Trial #3

⑤ Metric (성능 지표)

 
accuracy = 0.91 loss = 0.23

Katib은 이 값을 보고 판단해.

  • maximize / minimize 지정 가능

6️⃣ Katib은 학습 코드를 어떻게 알까?

❗ 중요한 포인트

Katib은 네 코드 내용을 전혀 모른다

👉 대신 이런 방식 사용:

방법 1️⃣ 로그 파싱 (가장 흔함)

 
print("accuracy=0.92")

Katib:

 
objectiveMetricName: accuracy

방법 2️⃣ 파일 읽기

 
/result/metrics.json

방법 3️⃣ Custom Metric Collector

(고급자용, 일단 패스)


7️⃣ Katib YAML 구조 (전체 큰 그림)

 
apiVersion: kubeflow.org/v1beta1 kind: Experiment spec: objective: type: maximize objectiveMetricName: accuracy algorithm: algorithmName: random parameters: - name: learning_rate parameterType: double trialTemplate: trialSpec: apiVersion: kubeflow.org/v1 kind: TFJob

👉 Katib = “TFJob 생성기 + 결과 수집기”


8️⃣ Katib을 쓰는 이유 정리

항목수동Katib
실험 자동화
GPU 효율 낮음 높음
기록 엉망 자동
최적값 데이터 기반

9️⃣ 언제 Katib을 쓰면 좋을까?

👍 쓰는 게 좋은 상황

  • 모델 성능이 중요
  • GPU 여러 대 있음
  • 파라미터 튜닝 자주 함

👎 굳이 안 써도 되는 경우

  • 간단한 모델
  • 값이 이미 정해짐
  • 실험 1~2번이면 끝

🔟 Kubeflow 안에서 Katib의 위치

 
Notebook → Katib → TFJob → 모델 저장 → KServe

👉 “실험 자동화 담당”

 

 

 

반응형

댓글