본문으로 건너뛰기

하이퍼 파라미터 설정

Platform에서 학습 모델의 hyperparameter를 설정하는 방법을 안내합니다.

Hyperparameter란?​

Hyperparameter는 학습 과정을 제어하는 매개변수로, 모델 성능에 큰 영향을 미칩니다:

  • batch_size: 한 번에 처리할 데이터 샘플 수
  • epochs: 전체 데이터셋을 학습하는 반복 횟수
  • learning_rate: 모델 가중치 업데이트 크기
  • optimizer: 최적화 알고리즘 (Adam, SGD 등)

코드에서 정의​

argparse 사용​

Python의 argparse로 hyperparameter를 정의합니다:

train.py
import argparse

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Model Training")

# Hyperparameter 정의
parser.add_argument(
"--batch-size",
type=int,
default=64,
help="Training batch size (default: 64)"
)
parser.add_argument(
"--epochs",
type=int,
default=10,
help="Number of training epochs (default: 10)"
)
parser.add_argument(
"--learning-rate",
type=float,
default=0.001,
help="Learning rate (default: 0.001)"
)
parser.add_argument(
"--optimizer",
type=str,
default="adam",
choices=["adam", "sgd", "rmsprop"],
help="Optimizer type"
)

args = parser.parse_args()

train_model(
batch_size=args.batch_size,
epochs=args.epochs,
learning_rate=args.learning_rate,
optimizer=args.optimizer,
)

주요 포인트​

  1. type 지정: int, float, str, bool 등
  2. default 값: Platform에서 설정하지 않을 때 사용
  3. help 메시지: 명확한 설명 작성
  4. choices (선택): 유효한 값 제한

Epoch 파라미터와 진행률 추적​

--epochs 또는 --epoch 파라미터는 Platform에서 자동으로 감지되어 특별한 역할을 합니다:

  • 최대 step 설정: 선언된 값이 학습의 최대 step으로 자동 설정됩니다
  • 진행률 계산: MLflow의 step 값과 연동하여 현재 진행 상황을 추적합니다
  • UI 표시: Platform UI에서 "N/M epoch 완료" 형태로 실시간 진행률을 확인할 수 있습니다

동작 방식:

# train.py
import mlflow

for epoch in range(1, args.epochs + 1):
train_loss, train_acc = train_one_epoch()
val_loss, val_acc = validate()

# step=epoch로 메트릭 기록
mlflow.log_metrics({
"train_loss": train_loss,
"train_accuracy": train_acc,
"val_loss": val_loss,
"val_accuracy": val_acc
}, step=epoch)

Platform은 --epochs 값과 mlflow.log_metrics의 step 파라미터를 비교하여 현재 몇 번째 epoch이 진행 중인지 자동으로 계산합니다.

진행률 모니터링

mlflow.log_metrics(metrics, step=epoch)로 메트릭을 기록하면 Platform이 자동으로 학습 진행률을 추적합니다. 상세한 모니터링 방법은 학습 진행률 모니터링 가이드를 참고하세요.

Platform에서 등록​

1. 모델 선택​

업로드한 모델을 선택합니다.

업로드된 모델 확인

2. Hyperparameter 등록​

Hyperparameter 설정 화면에서 각 파라미터를 등록합니다.

Hyperparameter 설정

3. 파라미터 정보 입력​

각 hyperparameter에 대해 다음 정보를 입력합니다:

필드설명예시
이름코드의 argparse 인자 이름 (하이픈 포함)--batch-size
타입데이터 타입int
기본값기본 값64
설명파라미터 설명Training batch size
등록은 선택사항

Hyperparameter를 등록하지 않아도 코드에서 지정한 기본값으로 학습이 실행됩니다. 등록하면 Platform UI에서 값을 변경하여 여러 실험을 쉽게 수행할 수 있습니다.

학습 실행 시 설정​

UI에서 값 변경​

학습 실행 화면에서 등록된 hyperparameter 값을 변경할 수 있습니다:

실행 예시​

배치 크기: 128        # 기본값 64에서 변경
에폭 수: 20 # 기본값 5에서 변경
학습률: 0.0001 # 기본값 0.001에서 변경

Platform은 이를 다음과 같이 커맨드라인 인자로 전달합니다:

python train.py --batch-size 128 --epochs 20 --learning-rate 0.0001

다음 단계​

Hyperparameter 설정을 완료했다면:

  1. 학습 실행: Platform에서 모델과 데이터셋 선택하여 학습 시작
  2. MNIST 튜토리얼: 전체 워크플로우 예시
  3. YOLO 튜토리얼: 고급 hyperparameter 설정 예시
  4. MLflow: 실험 결과 비교 및 분석