將經典 GPU 工作負載遷移到 serverless

如果您正將現有的深度學習工作負載從經典的 Databricks 叢集(搭配 Databricks Runtime ML)遷移到無伺服器(搭配 AI 執行環境)的,請遵循以下步驟:

  1. 替換依賴叢集的程式碼。 移除所有關於基於 Spark 的分散式訓練(例如 TorchDistributor)的參考,並以 @distributed 中的 serverless_gpu 裝飾器取代。
  2. 更新資料載入中。 將直接的 DBFS 路徑替換為 Unity Catalog 的卷軸路徑(/Volumes/...)。 用 Spark Connect 取代本地的 Spark DataFrame 操作。 若要從磁碟區串流傳輸檔案型資料,請使用來自 UCVolumeDataset 的 databricks.air.data。 請參見 AI 執行時的載入資料。
  3. 設定您的環境。 部分 Databricks Runtime ML 預裝函式庫在 AI Runtime 上無法使用。 建立一個無伺服器的 GPU 環境,並安裝你工作負載所需的套件。%pip install 請參閱 「建立你的環境」。
  4. 更新檢查點路徑。 將檢查點從 DBFS 或本地儲存移到 Unity 目錄卷(/Volumes/<catalog>/<schema>/<volume>/...)。 對於分散式檢查點,請使用 UCVolumeWriter 和 UCVolumeReaderdatabricks.air.data,該 階段透過本地 NVMe 進行 I/O。 請參見 具有分散式檢查點(DCP)的 Checkpoint。
  5. 檢視你的 MLflow 設定。 在 AI Runtime 上,.distributed() API 會自動建立 MLflow 執行作業。 要自訂實驗,請設定絕對路徑。 要恢復中斷的執行,請設定執行名稱。 看看 MLflow 為深度學習提供了什麼。
  6. 先互動測試。 在排程前,先在互動筆記本中驗證你的工作量。