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(TorchEstimator 和 TFEstimator),封裝 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,確保執行器損失時仍具韌性。
相關
- 專案
- 專案
- 專案
- 專案