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