分享方式:


分散式訓練

Azure Databricks 建議儘量在單一電腦上訓練神經網路;由於通訊額外負荷,用於訓練和推斷的分散式程式碼比單一電腦程式碼更複雜,且速度更慢。 但是,如果模型或資料太大,以致無法裝入單一電腦的記憶體中,您應考慮使用分散式訓練和推斷。 對於這些工作負載,Databricks Runtime ML 包含 TorchDistributor、DeepSpeed 分發器和 Ray 套件。

Azure Databricks 還透過 pyspark.ml.connect 模組為 Spark ML 模型提供分散式訓練,請參閱使用 pyspark.ml.connect 在 Databricks Connect 上訓練 Spark ML 模型

注意

由於節點間網路效能低,Databricks 不建議使用 NC 系列 VM 執行多節點分散式訓練。 請改用一個多 GPU 節點,或使用不同的 GPU VM 大小,例如支援加速網路的 NCasT4_v3 系列

DeepSpeed 分發器

DeepSpeed 分發器建置在 TorchDistributor 之上,是具有需要較高計算能力但受記憶體限制之模型的客戶的建議解決方案。 DeepSpeed 是 Microsoft 開發的開放原始碼程式庫,可提供最佳化的記憶體使用量、降低通訊額外負荷以及進階管線平行處理原則。 深入了解使用 DeepSpeed 分發器進行分散式訓練

TorchDistributor

TorchDistributor 是 PySpark 中的開放原始碼模組,可協助使用者在其 Spark 叢集上使用 PyTorch 進行分散式訓練,因此可讓您以 Spark 工作的形式啟動 PyTorch 訓練工作。 在幕後,它會初始化環境和背景工作角色之間的通訊通道,並利用 CLI 命令 torch.distributed.run 跨背景工作角色節點執行分散式訓練。 深入了解使用 TorchDistributor 進行分散式訓練

Ray

Ray 是一個開放原始碼架構,專門用於縮放 ML 工作流程和 AI 應用程式的平行計算處理。 請參閱 Azure Databricks 上的 Ray 是什麼?