Cnvrg-IO部署
本節提供使用 Helm 圖表部署 cnvrg 核心的詳細資訊。
使用Helm部署cnvrg核心
使用任何叢集、內部部署、Minikube,或任何雲端叢集(例如、KS、EKS和GKE)、Helm是快速部署cnvrg的最簡單方法。本節說明如何在安裝Kubernetes的內部部署(DGX-1)執行個體上安裝cnvrg。
先決條件
在完成安裝之前、您必須先在本機機器上安裝並準備下列相依項目:
-
Kubecl
-
helm 3.x
-
Kubernetes叢集1.15以上
使用Helm進行部署
-
若要下載最新的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分鐘。
-
「helm install」命令最多可能需要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射線資料集的電腦願景模型訓練
Cnvrg-IO AI OS部署在Kubernetes設定上ONTAP 、採用NVIDIA DGX系統的NetApp AI架構上。為了進行驗證、我們使用NIH Chest X光資料集、其中包含已取消識別的胸前X光影像。影像採用的是PNG格式。資料由NIH臨床中心提供、可透過取得 "NIH下載網站"。我們使用250 GB的資料樣本、在15個類別中使用627、615個影像。
此資料集已上傳至cnvrg平台、並從NetApp AFF S16A800儲存系統快取至NFS匯出。
設定運算資源
Cnvrg架構和中繼排程功能可讓工程師和IT專業人員將不同的運算資源附加至單一平台。在我們的設定中、我們使用的叢集cnvrg與執行深度學習工作負載所部署的叢集cnvrg相同。如果您需要附加其他叢集、請使用GUI、如下面的快照所示。
負載資料
若要將資料上傳至cnvrg平台、您可以使用GUI或cnvrg CLI。對於大型資料集、NetApp建議使用CLI、因為它是強大、可擴充且可靠的工具、可處理大量檔案。
若要上傳資料、請完成下列步驟:
-
下載 "Cnvrg CLI"。
-
瀏覽至X光目錄。
-
使用「cnvrg data init」命令、在平台中初始化資料集。
-
使用「cnvrg data sync」命令、將目錄的所有內容上傳至中央資料湖。資料上傳至中央物件存放區StorageGRID (例如、S3或其他)之後、您就可以使用GUI瀏覽。下圖顯示已載入的胸前X光纖維化影像PNG檔案。此外、cnvrg會將資料版本轉換成資料版本、以便您建置的任何模型都能複製到資料版本。
Cach資料
為了加快訓練速度、避免為每個模型訓練和實驗下載超過60萬個檔案、我們在資料一開始上傳至中央資料湖物件存放區之後、就使用了資料快取功能。
使用者按一下「Cache(快取)」後、cnvrg會從遠端物件存放區下載其特定提交的資料、並將其快取至ONTAP 「SflexNFS Volume(更新資料)」。資料完成後、即可立即接受訓練。此外、如果資料未使用數天(例如模型訓練或探索)、cnvrg會自動清除快取。
利用快取資料建立ML管道
Cnvrg流程可讓您輕鬆建立正式作業ML管線。流程很靈活、可用於任何類型的ML使用案例、並可透過GUI或程式碼建立。流程中的每個元件都能以不同的Docker映像檔在不同的運算資源上執行、因此能夠建置混合雲和最佳化的ML管線。
建立胸前X光流程:設定資料
我們將資料集新增至新建立的流程。新增資料集時、您可以選取特定版本(提交)、並指出是否要使用快取版本。在此範例中、我們選取了快取的commit。
建立胸前X光流程:設定訓練模式:ResNet50
在管道中、您可以新增任何類型的自訂程式碼。在cnvrg中、還有AI程式庫、可重複使用的ML元件集合。AI程式庫中有演算法、指令碼、資料來源及其他解決方案、可用於任何ML或深度學習流程。在此範例中、我們選擇了預先建置的ResNet50模組。我們使用預設參數、例如batch_Size:128、epochs:10等。這些參數可在AI程式庫文件中檢視。下列螢幕快照顯示新流程、其中X光資料集已連線至ResNet50。
定義ResNet50的運算資源
cnvrg流程中的每個演算法或元件都可以在不同的運算執行個體上執行、並使用不同的Docker映像檔。在我們的設定中、我們想要在採用NetApp ONTAP AI架構的NVIDIA DGX系統上執行訓練演算法。在下圖中、我們選擇了「GPU實際」、這是內部部署叢集的運算範本和規格。我們也建立了範本佇列、並選取多個範本。如此一來、如果無法分配「GPU實際」資源(例如其他資料科學家正在使用該資源)、您就可以新增雲端供應商範本來啟用自動雲端資源爆增功能。下列螢幕快照顯示如何使用GPU Real做為ResNet50的運算節點。
追蹤及監控結果
執行流程之後、cnvrg會觸發追蹤與監控引擎。每次流程執行都會自動記錄並即時更新。超參數、度量、資源使用率(GPU使用率等)、程式碼版本、成品、記錄、 「實驗」區段會自動提供這些功能、如下圖所示。