Ray Data 与其他系统的比较#

Ray Data 与其他离线推理解决方案相比如何?#

批量服务:AWS Batch, GCP Batch

AWS、GCP 和 Azure 等云提供商提供批量服务来管理计算基础设施。每个服务都使用相同的流程:您提供代码,服务在集群中的每个节点上运行您的代码。然而,虽然基础设施管理是必要的,但这通常是不够的。这些服务存在限制,例如缺乏用于优化并行化、高效数据传输和轻松调试的软件库。这些解决方案只适合那些可以编写自己的优化批量推理代码的经验丰富的用户。

Ray Data 不仅抽象了基础设施管理,还抽象了数据集的分片、这些分片上的推理并行化以及数据从存储到 CPU 再到 GPU 的传输。

在线推理解决方案:Bento ML, Sagemaker Batch Transform

Bento MLSagemaker Batch TransformRay Serve 等解决方案提供了易于编写高性能推理代码的 API,并且可以抽象基础设施的复杂性。但它们是为在线推理而不是离线批量推理设计的,这是两个具有不同要求的问题。这些解决方案引入了额外的复杂性,如 HTTP,并且不能有效地处理大型数据集,导致像 Bento ML 这样的推理服务提供商需要与 Apache Spark 集成以进行离线推理。

Ray Data 专为离线批量作业而构建,无需启动服务器或发送 HTTP 请求的所有额外复杂性。

有关 Ray Data 和 Sagemaker Batch Transform 之间更详细的性能比较,请参阅离线批量推理:比较 Ray、Apache Spark 和 SageMaker

分布式数据处理框架:Apache Spark 和 Daft

Ray Data 处理许多与 Apache SparkDaft 相同的批量处理工作负载,但其流式范例更适合深度学习推理的 GPU 工作负载。

然而,与 Spark 和 Daft 不同,Ray Data 没有 SQL 接口。

有关 Ray Data 和 Apache Spark 之间更详细的性能比较,请参阅离线批量推理:比较 Ray、Apache Spark 和 SageMaker

Ray Data 与其他 ML 训练数据摄取解决方案相比如何?#

PyTorch Dataset 和 DataLoader
  • 框架无关: Datasets 是框架无关的,并且可以在不同的分布式训练框架之间移植,而 Torch datasets 特定于 Torch。

  • 没有内置 I/O 层: Torch datasets 没有用于常见文件格式或与其他框架进行内存交换的 I/O 层;用户需要引入其他库并自行实现这种集成。

  • 通用分布式数据处理: Datasets 更通用:它可以处理通用的分布式操作,包括全局每 epoch 混洗,否则必须通过组合两个独立的系统来实现。对于除了基于批量预处理之外的任何更复杂的操作,Torch datasets 都需要这种组合,并且不原生支持跨 worker 分片混洗;只支持文件交错。请参阅我们的博客文章,了解为什么这种共享基础设施对于第三代 ML 架构很重要。

  • 较低开销: Datasets 开销较低:它支持进程之间的零拷贝交换,这与基于多进程的 Torch datasets 流水线形成对比。

TensorFlow Dataset
  • 框架无关: Datasets 是框架无关的,并且可以在不同的分布式训练框架之间移植,而 TensorFlow datasets 特定于 TensorFlow。

  • 统一单节点和分布式: Datasets 在同一抽象下统一了单节点和多节点训练。TensorFlow datasets 为分布式数据加载提供了独立的概念,并阻止代码无缝扩展到更大的集群。

  • 通用分布式数据处理: Datasets 更通用:它可以处理通用的分布式操作,包括全局每 epoch 混洗,否则必须通过组合两个独立的系统来实现。对于除了基本预处理之外的任何更复杂的操作,TensorFlow datasets 都需要这种组合,并且不原生支持跨 worker 分片的完全混洗;只支持文件交错。请参阅我们的博客文章,了解为什么这种共享基础设施对于第三代 ML 架构很重要。

  • 较低开销: Datasets 开销较低:它支持进程之间的零拷贝交换,这与基于多进程的 TensorFlow datasets 流水线形成对比。

Petastorm
  • 支持的数据类型: Petastorm 只支持 Parquet 数据,而 Ray Data 支持多种文件格式。

  • 较低开销: Datasets 开销较低:它支持进程之间的零拷贝交换,这与 Petastorm 使用的基于多进程的流水线形成对比。

  • 无数据处理: Petastorm 不暴露任何数据处理 API。

NVTabular
  • 支持的数据类型: NVTabular 只支持表格数据(Parquet, CSV, Avro),而 Ray Data 支持多种其他文件格式。

  • 较低开销: Datasets 开销较低:它支持进程之间的零拷贝交换,这与 NVTabular 使用的基于多进程的流水线形成对比。

  • 异构计算: NVTabular 不支持在数据集转换中混合异构资源(例如,同时进行 CPU 和 GPU 转换),而 Ray Data 支持此功能。