cnvrg.io 배포
이 섹션에서는 Helm 차트를 사용하여 cnvrg core를 배포하는 방법에 대해 자세히 설명합니다.
제어 장치를 사용하여 cnvrg 코어를 배포합니다
Helm은 모든 클러스터, 온프레미스, Minikube 또는 모든 클라우드 클러스터(예: AKS, EKS, GKE)를 사용하여 cnvrg를 신속하게 배포하는 가장 쉬운 방법입니다. 이 섹션에서는 Kubernetes가 설치된 사내(DGX-1) 인스턴스에 cnvrg를 설치한 방법을 설명합니다.
필수 구성 요소
설치를 완료하려면 먼저 로컬 컴퓨터에 다음 종속 항목을 설치하고 준비해야 합니다.
-
쿠베틀입니다
-
Helm 3.x
-
Kubernetes 클러스터 1.15 이상
헬름으로 배포
-
최신 cnvrg Helm 차트를 다운로드하려면 다음 명령을 실행합니다.
helm repo add cnvrg https://helm.cnvrg.io helm repo update
-
cnvrg를 구축하기 전에 클러스터의 외부 IP 주소와 cnvrg를 배포할 노드의 이름이 필요합니다. 사내 Kubernetes 클러스터에 cnvrg를 배포하려면 다음 명령을 실행합니다.
helm install cnvrg cnvrg/cnvrg --timeout 1500s --wait \ --set global.external_ip=<ip_of_cluster> \ --set global.node=<name_of_node>
-
helm install 명령을 실행합니다. 모든 서비스 및 시스템이 클러스터에 자동으로 설치됩니다. 이 프로세스는 최대 15분 정도 소요될 수 있습니다.
-
헬름 설치 명령은 10분 정도 걸릴 수 있습니다. 배포가 완료되면 새로 배포된 cnvrg의 URL로 이동하거나 새 클러스터를 조직 내의 리소스로 추가합니다. 'helm' 명령은 올바른 URL을 알려줍니다.
Thank you for installing cnvrg.io! Your installation of cnvrg.io is now available, and can be reached via: Talk to our team via email at
-
모든 컨테이너의 상태가 실행 중 또는 완료됨이면 cnvrg가 성공적으로 배포된 것입니다. 이 결과는 다음 예제 출력과 유사해야 합니다.
NAME READY STATUS RESTARTS AGE cnvrg-app-69fbb9df98-6xrgf 1/1 Running 0 2m cnvrg-sidekiq-b9d54d889-5x4fc 1/1 Running 0 2m controller-65895b47d4-s96v6 1/1 Running 0 2m init-app-vs-config-wv9c4 0/1 Completed 0 9m init-gateway-vs-config-2zbpp 0/1 Completed 0 9m init-minio-vs-config-cd2rg 0/1 Completed 0 9m minio-0 1/1 Running 0 2m postgres-0 1/1 Running 0 2m redis-695c49c986-kcbt9 1/1 Running 0 2m seeder-wh655 0/1 Completed 0 2m speaker-5sghr 1/1 Running 0 2m
ResNet50 및 Chest X-ray 데이터 집합을 사용한 컴퓨터 비전 모델 교육
cnvrg.io AI OS는 NVIDIA DGX 시스템을 기반으로 하는 NetApp ONTAP AI 아키텍처를 기반으로 Kubernetes 설정에 구축했습니다. 검증을 위해 흉부 X-레이의 식별 불가 영상으로 구성된 NIH Chest X-ray 데이터 세트를 사용했습니다. 이미지는 PNG 형식이었습니다. 이 데이터는 NIH 임상 센터에서 제공했으며 을 통해 확인할 수 있습니다 "NIH 다운로드 사이트". 15개 클래스에서 627, 615의 이미지를 사용하여 250GB 데이터 샘플을 사용했습니다.
데이터 세트가 cnvrg 플랫폼으로 업로드되었으며 NetApp AFF A800 스토리지 시스템에서 NFS 엑스포트에 캐싱되었습니다.
컴퓨팅 리소스 설정
엔지니어 및 IT 전문가는 cnvrg 아키텍처 및 메타 스케줄링 기능을 사용하여 서로 다른 컴퓨팅 리소스를 단일 플랫폼에 연결할 수 있습니다. 설정에서 딥 러닝 워크로드를 실행하기 위해 배포된 것과 동일한 클러스터 cnvrg를 사용했습니다. 추가 클러스터를 연결해야 하는 경우 다음 스크린샷과 같이 GUI를 사용합니다.
데이터 로드
cnvrg 플랫폼에 데이터를 업로드하려면 GUI 또는 cnvrg CLI를 사용할 수 있습니다. 대규모 데이터 세트의 경우 많은 파일을 처리할 수 있는 강력하고 확장 가능하며 안정적인 툴이므로 CLI를 사용하는 것이 좋습니다.
데이터를 업로드하려면 다음 단계를 완료하십시오.
-
를 다운로드합니다 "cnvrg CLI를 참조하십시오".
-
X-ray 디렉토리로 이동합니다.
-
'cnvrg data init' 명령으로 플랫폼 내 데이터세트를 초기화한다.
-
중앙 오브젝트 저장소(StorageGRID, S3 등)에 데이터를 업로드한 후 GUI로 검색할 수 있습니다. 다음 그림은 로드된 흉부 X선 섬유증 영상 PNG 파일을 보여줍니다. 또한, cnvrg는 데이터를 버전화하므로 빌드하는 모든 모델을 데이터 버전으로 복제할 수 있습니다.
Cach 데이터
각 모델의 교육 및 실험을 위해 600k+ 파일을 다운로드하지 않고 더 빠르게 교육을 제공하기 위해 데이터를 중앙 데이터 레이크 오브젝트 저장소에 처음 업로드한 후 데이터 캐싱 기능을 사용했습니다.
사용자가 캐시를 클릭하면 cnvrg는 원격 오브젝트 저장소에서 특정 커밋에 있는 데이터를 다운로드하여 ONTAP NFS 볼륨에 캐시합니다. 완료되면 데이터를 즉시 교육에 사용할 수 있습니다. 또한 데이터가 며칠 동안 사용되지 않으면(예: 모델 교육 또는 탐색) cnvrg가 자동으로 캐시를 지웁니다.
캐시된 데이터로 ML 파이프라인을 구축합니다
cnvrg 흐름으로 생산 ML 파이프라인을 쉽게 구축할 수 있습니다. 흐름은 유연하며 모든 종류의 ML 사용 사례에 사용할 수 있으며 GUI 또는 코드를 통해 생성할 수 있습니다. 플로우의 각 구성 요소는 다른 Docker 이미지를 사용하여 다른 컴퓨팅 리소스에서 실행될 수 있으므로 하이브리드 클라우드와 최적화된 ML 파이프라인을 구축할 수 있습니다.
흉부 X선 흐름 구축:데이터 설정
새로 생성된 흐름에 데이터 세트를 추가했습니다. 데이터 집합을 추가할 때 특정 버전(커밋)을 선택하고 캐시된 버전을 사용할지 여부를 지정할 수 있습니다. 이 예에서는 캐시된 커밋을 선택했습니다.
흉부 X선 흐름 구축:교육 모델 설정:ResNet50
파이프라인에서는 원하는 모든 종류의 사용자 지정 코드를 추가할 수 있습니다. cnvrg에는 재사용 가능한 ML 구성 요소 컬렉션인 AI 라이브러리도 있습니다. AI 라이브러리에는 모든 ML 또는 딥 러닝 플로우에 사용할 수 있는 알고리즘, 스크립트, 데이터 소스 및 기타 솔루션이 있습니다. 이 예에서는 사전 구축된 ResNet50 모듈을 선택했습니다. batch_size:128, epoch:10 등과 같은 기본 매개 변수를 사용했습니다. 이러한 매개 변수는 AI 라이브러리 문서에서 확인할 수 있습니다. 다음 스크린샷은 ResNet50에 연결된 X선 데이터 세트의 새로운 흐름을 보여줍니다.
ResNet50의 컴퓨팅 리소스를 정의합니다
cnvrg 플로우의 각 알고리즘 또는 구성 요소는 다른 Docker 이미지와 함께 다른 컴퓨팅 인스턴스에서 실행될 수 있습니다. 저희 셋업에서는 NetApp ONTAP AI 아키텍처를 사용하여 NVIDIA DGX 시스템에 대한 훈련 알고리즘을 실행하려고 했습니다. 다음 그림에서는 사내 클러스터의 컴퓨팅 템플릿과 사양인 GPU-Real을 선택했습니다. 또한 템플릿 큐와 여러 템플릿을 선택했습니다. 이렇게 하면 'GPU-실제' 리소스를 할당할 수 없는 경우(예: 다른 데이터 과학자가 사용 중인 경우) 클라우드 공급자 템플릿을 추가하여 자동 클라우드 증가를 지원할 수 있습니다. 다음 스크린샷에서는 ResNet50의 컴퓨팅 노드로 GPU-real을 사용하는 방법을 보여 줍니다.
추적 및 모니터링 결과
흐름이 실행된 후 cnvrg가 추적 및 모니터링 엔진을 트리거합니다. 각 흐름 실행은 자동으로 문서화되고 실시간으로 업데이트됩니다. Hyperparameters, 메트릭, 리소스 사용량(GPU 활용률 등), 코드 버전, 아티팩트, 로그, 다음 두 스크린샷과 같이 실험 섹션에서 자동으로 사용할 수 있습니다.