본문으로 건너뛰기

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 공식 문서를 확인해 주세요.