딥 러닝 (DL) 컨테이너 배포 및 사용

딥 러닝 (DL) 컨테이너는 데이터 과학 프레임워크, 라이브러리, 도구가 사전 설치된 Docker 컨테이너입니다. 데이터 과학자와 같은 사용자가 단일 DL 컨테이너를 선택하고 배포합니다. 배포된 컨테이너에는 워크플로의 프로토타입을 신속하게 제작하고 구현하는 데 도움이 되는 성능이 최적화된 일관성 높은 환경이 있습니다.

DL 컨테이너 배포

DL 컨테이너를 사용하기 전에 머신러닝 (ML) 작업을 실행하는 컨테이너 이미지를 선택하고 배포해야 합니다. 사전 설치된 프레임워크, 라이브러리, 도구는 DL 컨테이너를 프로비저닝합니다.

kubeconfig 파일을 사용하여 DL 컨테이너 배포

Google Distributed Cloud (GDC) 에어 갭 적용 어플라이언스는 DL 컨테이너를 배포하는 다음 kubeconfig 파일을 제공합니다.

  • CLUSTER_KUBECONFIG: 베어 메탈 Kubernetes 클러스터의 kubeconfig 파일입니다. GDC는 모든 워크로드에 하나의 클러스터를 제공합니다.

UI 및 kubectl 도구에 로그인하는 방법에 관한 자세한 내용은 로그인을 참고하세요. CLUSTER_KUBECONFIG 파일을 가져오려면 kubeconfig 파일 가져오기를 참고하세요.

샘플 머신러닝 (ML) 스크립트 및 데이터 세트 다운로드

샘플 ML 스크립트(beginner.ipynb)와 데이터 세트(mnist.npz)를 다운로드하여 ML 빠른 시작 튜토리얼을 실행합니다. 이 튜토리얼에서는 DL 컨테이너를 배포하고 사용하여 ML 실험을 실행하는 방법을 보여줍니다.

mkdir -p /tmp/datasets
cd /tmp/datasets

wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/beginner.ipynb

wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/mnist.npz

GDC_APPLIANCE_URL을 GDC에 액세스하는 데 사용되는 도메인 이름으로 바꿉니다. URL을 처음 열면 GDC가 ID 제공업체 로그인 페이지로 리디렉션합니다.

Harbor 레지스트리의 IP 주소 조회

샘플 스크립트와 데이터 세트를 사용하기 전에 Harbor 레지스트리에서 DL 컨테이너 이미지 위치를 찾아야 합니다. Harbor 레지스트리는 비공개 컨테이너 이미지를 저장하는 서비스입니다.

샘플 코드의 첫 번째 줄은 Harbor 레지스트리 주소를 가져오는 KUBECONFIG 환경 변수의 경로를 설정합니다. Harbor 레지스트리 주소를 사용하면 사용 가능한 컨테이너 이미지 목록에 액세스할 수 있습니다.

샘플 코드의 두 번째 줄에서 kubectl 도구는 KUBECONFIG 환경 변수를 사용합니다.

샘플 코드의 세 번째 줄에서 REGISTRY_URL#https:// 명령어는 URL에서 https:// 접두사를 삭제하고 Harbor 레지스트리 도메인을 REGISTRY_IP 환경 변수에 저장합니다.

샘플 코드의 마지막 줄에서 kubectl 도구는 admin 사용자의 비밀번호를 가져옵니다.

export KUBECONFIG=CLUSTER_KUBECONFIG

REGISTRY_URL=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
REGISTRY_IP=${REGISTRY_URL#https://}
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin -o jsonpath="{.data.secret}" | base64 -d)

컨테이너 이미지 선택

ML 작업을 실행하려면 먼저 배포할 컨테이너 이미지를 선택해야 합니다. Harbor 레지스트리에서 다음 표의 Harbor 레지스트리 도메인과 경로를 사용하여 사용 가능한 컨테이너 이미지 목록을 확인합니다.

프레임워크 프로세서 컨테이너 이미지 이름
기본 GPU base-cu113
기본 CPU base-cpu
TensorFlow Enterprise 2.x GPU tf2-gpu
PyTorch GPU pytorch-gpu

이 표는 프레임워크와 프로세서별로 정리되어 있습니다. ML 실험을 처리할 수 있는 DL 컨테이너 이미지를 선택하려면 다음 단계를 따르세요.

  1. ML 도구가 포함된 프레임워크를 식별합니다.
  2. 프로세서를 선택합니다. 실행할 ML 작업의 종류와 해당 작업의 컴퓨팅 집약도에 따라 프로세서를 선택합니다. 예를 들어 컴퓨팅 집약적인 ML 작업이 있는 경우 GPU 프로세서 중 하나를 선택하고 DL 컨테이너에 GPU 리소스를 할당합니다.

DL 컨테이너를 만들어 Kubernetes 클러스터에 배포

GDC 인스턴스를 만들려면 베어메탈 Kubernetes 클러스터의 kubeconfig 파일 경로를 지정합니다. KUBECONFIG 환경 변수는 kubectl 도구가 DL 컨테이너를 배포할 클러스터를 지정합니다. kubectl apply 명령어는 DL 컨테이너 인스턴스를 배포합니다.

CONTAINER_IMAGE_NAME컨테이너 이미지 선택의 이미지 목록에서 선택한 이미지로 바꾸고 태그를 제공해야 합니다.

export KUBECONFIG=CLUSTER_KUBECONFIG

kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: dl-container-pod
  namespace: NAMESPACE
spec:
  containers:
  - image: gcr.io/private-cloud-staging/notebooks/deeplearning-platform-release/CONTAINER_IMAGE_NAME:CONTAINER_IMAGE_TAG
    command: ["tail", "-f", "/dev/null"]
    name: training
EOF

배포된 DL 컨테이너 사용

다음 주제에서는 DL 컨테이너 이미지를 사용하여 모델을 학습시키고 예측을 생성하는 방법을 보여줍니다.

튜토리얼 파일을 DL 컨테이너 포드에 복사합니다.

빠른 시작 튜토리얼 파일을 DL 컨테이너 포드로 복사합니다. beginner.ipynb에는 모델을 학습시키고 사용하여 예측하는 단계가 포함되어 있습니다. ML 학습 튜토리얼에서는 mnist.npz 데이터 세트 파일을 사용하여 모델을 학습시킵니다.

cd /tmp/datasets

kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp

ML 빠른 시작 튜토리얼 실행

다음 명령어를 사용하여 튜토리얼을 실행합니다. 첫 번째 줄을 사용하여 컨테이너 포드를 입력합니다. 컨테이너 포드에 있으면 디렉터리를 tmp로 변경하고 DL 컨테이너에 패키징된 papermill 도구를 실행합니다. papermill 도구는 튜토리얼을 실행하여 예측을 생성하는 노트북을 만듭니다.

  1. DL 포드에 대화형 터미널을 입력합니다.

    kubectl exec -it dl-container-pod -- /bin/bash
    
  2. DL 포드 컨텍스트에서 다음 명령어를 실행합니다.

    cd tmp
    papermill beginner.ipynb result.ipynb
    

    배포는 /tmp 디렉터리에 result.ipynb 파일을 생성합니다.

  3. 생성된 ML 모델의 콘텐츠와 예측 출력을 확인합니다.

    cat result.ipynb
    

선택사항: DL 컨테이너 포드 삭제

DL 컨테이너 포드에서 실험을 완료한 후에는 권장사항에 따라 포드를 삭제합니다.

kubectl delete pod dl-container-pod