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 Actor 运行,使 Spark 可以在 Ray 之上运行。它提供了将 Spark DataFrames 转换为 Ray Datasets 的 API,从而实现高性能的内存内数据交换。此外,它还提供了类似 scikit-learn 的 Estimator API(TorchEstimatorTFEstimator),封装了 Ray Train,以简化直接在 Spark DataFrames 上进行分布式训练。

适用人群

  • 机器学习基础设施团队: 用于构建统一的 ML 平台,在单一基础架构上集成 Spark 和其他 AI 组件。
  • 数据科学家: 可以编写 PySpark 代码并结合 AI 库,无缝地从笔记本电脑扩展到云环境。
  • 数据工程师: 可在云中按需运行 Spark 作业,并实现自动扩缩容,无需手动搭建 Spark 集群。

主要亮点

  • 统一执行: 在 Ray Actor 内运行 Spark 执行器,将数据处理和 AI 训练整合到一个环境中。
  • 内存内数据交换: 高性能地在 Spark DataFrames 和 Ray Datasets 之间进行转换。
  • 简化训练: 提供高级别的 Estimator API,用于在 Spark 数据上进行分布式 PyTorch 和 TensorFlow 训练。
  • 容错性: 支持可恢复的流水线,用于将 Spark DataFrames 转换为 Ray Datasets,确保在执行器丢失时仍能保持韧性。

相关

  • 项目
  • 项目
  • 项目
  • 项目