본문으로 건너뛰기

Kubeflow 하이퍼파라미터 튜닝

하이퍼파라미터 실습 예제를 통해 AutoML 실험을 생성합니다.

지원 도구​

도구버전설명
Katib0.15.0- 오픈소스 프로젝트로, 하이퍼파라미터 튜닝 기능 지원
- 모델 성능 향상을 위한 다양한 하이퍼파라미터 조합 및 테스트 가능

실습 예제를 통해 AutoML 실험 생성​

Step 1. 사전 준비​

학습 데이터 준비​

하이퍼파라미터 튜닝 실습은 MNIST 데이터세트를 활용하여 실습합니다.
아래 실습을 순서대로 수행하면 필요한 데이터세트를 다운로드받을 수 있기 때문에 별도의 다운로드가 필요하지 않습니다.

MNIST 이미지 데이터세트 MNIST 이미지 데이터세트

MNIST 데이터세트란?

  • 컴퓨터 비전 분야에서 일반적으로 널리 사용되는 손글씨에서 숫자만을 모은 대규모 데이터세트입니다.
  • 0부터 9까지 총 10개의 카테고리와 훈련 데이터 60,000개, 테스트 데이터 10,000개로 총 70,000개의 28x28 픽셀 회색조 이미지로 이루어져 있습니다.

Step 2. 실습 예제로 새로운 실험 생성​

  1. 대시보드에 접속합니다.

  2. 좌측에 위치한 Experiments (AutoML) 탭을 선택합니다.

  3. 우측 상단에 위치한 [NEW EXPERIMENT] 버튼을 클릭합니다.

  4. Create an Experiment 화면 하단의 [Edit and submit YAML] 버튼을 클릭합니다. Edit YAML 팝업에서 아래 YAML 예제를 붙여 넣고 [CREATE] 버튼을 클릭합니다.

    YAML 스크립트 만들기 YAML 스크립트 코드 예제 삽입

    안내

    아래 예제에서 네임스페이스 이름과 AutoML 실험 이름을 직접 입력해야 합니다. 자세한 방법은 네임스페이스 확인을 참고해 주세요.

    ex) 네임스페이스명이 kbm-g-namespace9999 이고, AutoML 실험명을 test-AutoML로 설정하고 싶은 경우
    namespace: kbm-g-namespace9999
    name: test-AutoML

    실습 예제. YAML 스크립트 코드 예제
    apiVersion: kubeflow.org/v1beta1
    kind: Experiment
    metadata:
    namespace: {{ 네임스페이스명 }}
    name: {{ AutoML 실험명 }}
    spec:
    objective:
    type: maximize
    goal: 0.99
    objectiveMetricName: accuracy
    additionalMetricNames:
    - loss
    metricsCollectorSpec:
    source:
    filter:
    metricsFormat:
    - "{metricName: ([\\w|-]+), metricValue: ((-?\\d+)(\\.\\d+)?)}"
    fileSystemPath:
    path: "/katib/mnist.log"
    kind: File
    collector:
    kind: File
    algorithm:
    algorithmName: random
    parallelTrialCount: 3
    maxTrialCount: 12
    maxFailedTrialCount: 3
    parameters:
    - name: lr
    parameterType: double
    feasibleSpace:
    min: "0.01"
    max: "0.03"
    - name: momentum
    parameterType: double
    feasibleSpace:
    min: "0.3"
    max: "0.7"
    trialTemplate:
    retain: true
    primaryContainerName: training-container
    trialParameters:
    - name: learningRate
    description: Learning rate for the training model
    reference: lr
    - name: momentum
    description: Momentum for the training model
    reference: momentum
    trialSpec:
    apiVersion: batch/v1
    kind: Job
    spec:
    template:
    metadata:
    annotations:
    sidecar.istio.io/inject: 'false'
    spec:
    containers:
    - name: training-container
    image: mlops.kr-central-2.kcr.dev/kc-kubeflow-registry/katib-pytorch-mnist-gpu:v0.18.0.kbm.1a
    command:
    - "python3"
    - "/opt/pytorch-mnist/mnist.py"
    - "--epochs=1"
    - "--log-path=/katib/mnist.log"
    - "--lr=${trialParameters.learningRate}"
    - "--momentum=${trialParameters.momentum}"
    resources:
    requests:
    cpu: '1'
    memory: 2Gi
    limits:
    cpu: '10'
    memory: 20Gi
    nvidia.com/gpu: '1'
    restartPolicy: Never

Step 3. 생성한 실습 실험 확인​

  1. Experiments (AutoML) 목록에서 실험이 정상적으로 생성되었는지 확인합니다.

    이미지. 실험 생성완료 확인 실험 생성완료 확인

  2. 목록에서 생성한 실험을 클릭하여, 실험의 상세 내용(Experiment detail)을 확인합니다.

안내

Katib에 대한 자세한 설명은 Kubeflow > Katib 공식 문서를 확인해 주세요.