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(TorchEstimator 和 TFEstimator),封装了 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,确保在执行器丢失时仍能保持韧性。
相关
- 项目
- 项目
- 项目
- 项目