워크플로우 예 - Kubeflow 및 NetApp DataOps 툴킷을 사용하여 이미지 인식 모델을 학습합니다
이 섹션에서는 Kubeflow 및 NetApp DataOps 툴킷을 사용하여 이미지 인식을 위한 신경망 교육 및 배포에 관련된 단계를 설명합니다. 이 슬라이드의 목적은 NetApp 스토리지를 통합하는 교육 작업을 보여주는 예입니다.
필수 구성 요소
Kubeflow 파이프라인 내에서 기차 및 테스트 단계에 사용할 필수 구성으로 Dockerfile을 생성합니다.
다음은 Dockerfile의 예입니다.
FROM pytorch/pytorch:latest
RUN pip install torchvision numpy scikit-learn matplotlib tensorboard
WORKDIR /app
COPY . /app
COPY train_mnist.py /app/train_mnist.py
CMD ["python", "train_mnist.py"]
요구 사항에 따라 프로그램을 실행하는 데 필요한 모든 필수 라이브러리와 패키지를 설치합니다. 기계 학습 모델을 교육하기 전에 이미 작동하는 Kubeflow 배포가 있다고 가정합니다.
PyTorch 및 Kubeflow 파이프라인을 사용하여 MNIST 데이터에 대한 소규모 NN을 훈련하십시오
MNIST 데이터에 대해 훈련된 소규모 Neural Network의 예를 사용합니다. MNIST 데이터 세트는 0-9의 숫자 자필 이미지로 구성됩니다. 이미지 크기는 28x28픽셀입니다. 데이터 세트는 60,000개의 기차 이미지와 10,000개의 검증 이미지로 구분됩니다. 이 실험에 사용되는 신경망은 2계층 피드포워드 네트워크입니다. 교육은 Kubeflow 파이프라인을 사용하여 실행됩니다. 설명서를 참조하십시오 "여기" 를 참조하십시오. Kubeflow 파이프라인은 사전 요구 사항 섹션의 Docker 이미지를 통합합니다.
Tensorboard를 사용하여 결과를 시각화합니다
모델이 훈련되면 Tensorboard를 사용하여 결과를 시각화할 수 있습니다. "Tensorboard를 사용합니다" 은 Kubeflow Dashboard에서 기능으로 제공됩니다. 작업에 대한 사용자 정의 텐서보드를 작성할 수 있습니다. 아래 예는 과(와) 비교 트레이닝 정확도의 플롯을 보여줍니다 기 수 및 교육 손실 대 Epoch 수.
Katib를 사용하여 Hyperparameters를 실험합니다
"케이티비주식회사" 은 Kubeflow 내의 도구로서 모델 hyperparameters를 실험하는 데 사용할 수 있습니다. 실험을 생성하려면 먼저 원하는 메트릭/목표를 정의합니다. 이것은 일반적으로 테스트 정확도입니다. 메트릭이 정의되면 재생할 하이퍼파라미터(optimizer/learning_rate/layer 수)를 선택합니다. Katib는 사용자 정의 값으로 hyperparameter sweep을 수행하여 원하는 메트릭을 만족하는 최적의 매개 변수 조합을 찾습니다. UI의 각 섹션에서 이러한 매개 변수를 정의할 수 있습니다. 또는 필요한 사양으로 * YAML * 파일을 정의할 수도 있습니다. 다음은 Katib 실험의 그림입니다.
NetApp 스냅샷을 사용하여 추적을 위해 데이터를 저장합니다
모델 훈련 중에 추적 기능을 위해 훈련 데이터 세트의 스냅샷을 저장하고자 할 수 있습니다. 이를 위해 아래와 같이 파이프라인에 스냅샷 단계를 추가할 수 있습니다. 스냅샷을 생성하기 위해 를 사용할 수 있습니다 "Kubernetes용 NetApp DataOps 툴킷".
을 참조하십시오 "Kubeflow에 대한 NetApp DataOps 툴킷의 예" 를 참조하십시오.