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に変換するリカバリ可能なパイプラインをサポートし、エグゼキューターの損失に対する耐性を確保します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト