共用方式為


分散式訓練

可能的話,Azure Databricks 建議您在單一計算機上定型神經網路;用於定型和推斷的分散式程式代碼比單一機器程式代碼複雜,而且因為通訊額外負荷而變慢。 不過,如果您的模型或數據太大而無法容納單一計算機上的記憶體,您應該考慮分散式定型和推斷。 針對這些工作負載,Databricks Runtime ML 包含 TorchDistributor、Horovod 和 spark-tensorflow-distributor 套件。

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 進行分散式訓練。

spark-tensorflow-distributor

spark-tensorflow-distributor 是 TensorFlow 中的開放原始碼原生套件,可用於在 Spark 叢集上使用 TensorFlow 進行分散式定型。 深入瞭解 TensorFlow 2 的分散式訓練。

射線

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

Horovod (已淘汰)

重要

Horovod 和 HorovodRunner 現在已被取代,而且不會在 Databricks Runtime 16.0 ML 和更新版本中預安裝。 針對分散式深度學習,Databricks 建議使用 TorchDistributor 搭配 PyTorch 進行分散式定型,或使用 tf.distribute.Strategy TensorFlow 進行分散式定型的 API。

Horovod 是 TensorFlow、Keras 和 PyTorch 的分散式訓練架構。 Azure Databricks 支援使用 HorovodRunner 和 horovod.spark 套件的分散式深度學習訓練。 針對使用 Keras 或 PyTorch 的 horovod.spark Spark ML 管線應用程式,您可以使用估算器 API。 請參閱 Horovod