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 的資源管理器,並以 Ray 執行個體(Ray actors)運行 Spark 執行器,使 Spark 可以在 Ray 上執行。它提供 API 將 Spark DataFrames 轉換為 Ray Datasets,實現資料的記憶體內交換,以達到高效率。此外,它還提供類似 scikit-learn 的 Estimator API(TorchEstimatorTFEstimator),封裝 Ray Train,簡化直接在 Spark DataFrames 上進行分散式訓練的流程。

適用對象

  • 機器學習基礎設施團隊:用於建立整合 Spark 與其他 AI 元件的統一 ML 平台,基於單一基礎架構。
  • 資料科學家:可撰寫 PySpark 程式碼並搭配 AI 套件,從筆電無縫擴展至雲端。
  • 資料工程師:可在雲端按需執行 Spark 作業,並自動擴展,無需手動設定 Spark 叢集。

主要特色

  • 統一執行:在 Ray 執行個體中執行 Spark 執行器,將資料處理與 AI 訓練整合於同一環境。
  • 記憶體內資料交換:高效能地在 Spark DataFrames 與 Ray Datasets 之間轉換。
  • 簡化訓練:提供高階 Estimator API,支援在 Spark 資料上進行分散式 PyTorch 與 TensorFlow 訓練。
  • 容錯能力:支援可恢復的流程,將 Spark DataFrames 轉換為 Ray Datasets,確保執行器損失時仍具韌性。

相關

  • 專案
  • 專案
  • 專案
  • 專案