分散トレーニング
可能であれば、 Databricks は 1 台のマシンでトレーニングする ニューラルネットワークをお勧めします。トレーニングと推論のための分散コードは、単一マシンのコードよりも複雑で、通信のオーバーヘッドのために遅くなります。 ただし、モデルまたはデータが大きすぎて 1 台のマシンのメモリに収まらない場合は、分散トレーニングと推論を検討する必要があります。 これらのワークロードのために、Databricks Runtime ML には TorchDistributor、DeepSpeed ディストリビューター、Ray パッケージが含まれています。
Databricks では、pyspark.ml.connect
モジュールを使用した Spark 機械学習モデルの分散トレーニングも提供しています pyspark.ml.connectを用いDatabricks Connect経由でSpark MLのモデルをトレーニングするを参照してください。
DeepSpeedディストリビューター
DeepSpeed ディストリビューターは TorchDistributor の上に構築されており、より高いコンピュート電力を必要とするが、メモリの制約によって制限されるモデルを持つお客様に推奨されるソリューションです。 DeepSpeed は、Microsoft によって開発されたオープンソース ライブラリであり、メモリ使用量の最適化、通信オーバーヘッドの削減、および高度なパイプライン並列処理を提供します。 DeepSpeed ディストリビューターを使用した分散トレーニングの詳細
TorchDistributor
TorchDistributor は PySpark のオープンソース モジュールであり、ユーザーが Spark クラスターで PyTorch を使用して分散トレーニングを行うのに役立つため、PyTorch トレーニング ジョブを Spark ジョブとして起動できます。 内部的には、ワーカー間の環境と通信チャネルを初期化し、CLIコマンド torch.distributed.run
を利用してワーカーノード間で分散トレーニングを実行します。 TorchDistributorを使用した分散トレーニングの詳細については、こちらをご覧ください。
Ray
Ray MLは、ワークフローや アプリケーションのスケーリングのための並列コンピュート処理に特化したオープンソースフレームワークAI 。「Ray on Databricks とは」を参照してください。