하이퍼 파라미터 설정
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,
)
주요 포인트
- type 지정:
int,float,str,bool등 - default 값: Platform에서 설정하지 않을 때 사용
- help 메시지: 명확한 설명 작성
- 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 설정 화면에서 각 파라미터를 등록합니다.

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 설정을 완료했다면:
- 학습 실행: Platform에서 모델과 데이터셋 선택하여 학습 시작
- MNIST 튜토리얼: 전체 워크플로우 예시
- YOLO 튜토리얼: 고급 hyperparameter 설정 예시
- MLflow: 실험 결과 비교 및 분석