ray-project/raydp
RayDP provides simple APIs for running Spark on Ray and integrating Spark with AI libraries.
何を解決するか
RayDPは、ビッグデータ処理(Spark)とAIモデルトレーニング(PyTorch, TensorFlow)のために個別のクラスターを実行することに伴う運用上の複雑さとレイテンシを排除します。これにより、開発者は単一のPythonプログラム内でエンドツーエンドのデータおよびAIパイプラインを構築でき、外部のグルーコードやAirFlow、KubeFlowのような複雑なワークフローオーケストレーターの必要性をなくします。
仕組み
RayDPは、RayをSparkのリソースマネージャーとして使用し、SparkエグゼキューターをRayアクターとして実行することで、SparkをRay上で動作させることを可能にします。Spark DataFrameをRay Datasetに変換するためのAPIを提供し、メモリ内でのデータ交換を可能にすることで高いパフォーマンスを実現します。さらに、scikit-learnスタイルのEstimator API(TorchEstimatorおよびTFEstimator)を提供し、Ray Trainをラップすることで、Spark DataFrame上での分散トレーニングを直接簡略化します。
対象者
- MLインフラストラクチャチーム: Sparkと他のAIコンポーネントを単一の基盤上で統合する、統一されたMLプラットフォームを構築するため。
- データサイエンティスト: AIライブラリと共にPySparkコードを記述し、ノートPCからクラウドまでシームレスにスケールさせるため。
- データエンジニア: Sparkクラスターを手動でセットアップすることなく、クラウド上でオートスケーリングを備えたオンデマンドのSparkジョブを実行するため。
ハイライト
- 統合された実行: SparkエグゼキューターをRayアクター内で実行し、データ処理とAIトレーニングを一つの環境に集約します。
- メモリ内データ交換: Spark DataFrameとRay Dataset間の高性能な変換。
- 簡略化されたトレーニング: Sparkデータ上の分散PyTorchおよびTensorFlowトレーニングのための、ハイレベルなEstimator API。
- フォールトトレランス: Spark DataFrameをRay Datasetに変換するリカバリ可能なパイプラインをサポートし、エグゼキューターの損失に対する耐性を確保します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト