Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

Cnvrg-IO部署

貢獻者

本節提供使用 Helm 圖表部署 cnvrg 核心的詳細資訊。

使用Helm部署cnvrg核心

使用任何叢集、內部部署、Minikube,或任何雲端叢集(例如、KS、EKS和GKE)、Helm是快速部署cnvrg的最簡單方法。本節說明如何在安裝Kubernetes的內部部署(DGX-1)執行個體上安裝cnvrg。

先決條件

在完成安裝之前、您必須先在本機機器上安裝並準備下列相依項目:

  • Kubecl

  • helm 3.x

  • Kubernetes叢集1.15以上

使用Helm進行部署

  1. 若要下載最新的cnvrg helm圖表、請執行下列命令:

    helm repo add cnvrg https://helm.cnvrg.io
    helm repo update
  2. 部署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>
  3. 執行「helm install」命令。所有服務和系統都會自動安裝在叢集上。此程序最多可能需要15分鐘。

  4. 「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
  5. 當所有容器的狀態都在執行或完成時、表示已成功部署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、因為它是強大、可擴充且可靠的工具、可處理大量檔案。

若要上傳資料、請完成下列步驟:

  1. 下載 "Cnvrg CLI"

  2. 瀏覽至X光目錄。

  3. 使用「cnvrg data init」命令、在平台中初始化資料集。

  4. 使用「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使用率等)、程式碼版本、成品、記錄、 「實驗」區段會自動提供這些功能、如下圖所示。

此圖顯示輸入 / 輸出對話方塊或表示寫入內容

此圖顯示輸入 / 輸出對話方塊或表示寫入內容