Ray Data 与其他系统的比较#
Ray Data 在离线推理方面与其他解决方案相比如何?#
批量服务:AWS Batch、GCP Batch
AWS、GCP 和 Azure 等云提供商提供批量服务来为您管理计算基础设施。每种服务都使用相同的流程:您提供代码,服务会在集群中的每个节点上运行您的代码。但是,虽然基础设施管理是必要的,但通常还不够。这些服务存在一些限制,例如缺乏用于优化并行化、高效数据传输和轻松调试的软件库。这些解决方案仅适用于能够编写自己的优化批量推理代码的经验丰富的用户。
Ray Data 不仅抽象了基础设施管理,还抽象了数据集的分片、这些分片上的推理并行化以及从存储到 CPU 到 GPU 的数据传输。
在线推理解决方案:Bento ML、Sagemaker Batch Transform
像 Bento ML、Sagemaker Batch Transform 或 Ray 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 Spark 和 Daft 相同的许多批量处理工作负载,但采用了更适合深度学习推理 GPU 工作负载的流式处理范例。
但是,与 Spark 和 Daft 不同,Ray Data 没有 SQL 接口。
有关 Ray Data 和 Apache Spark 之间更详细的性能比较,请参阅 离线批量推理:Ray、Apache Spark 和 SageMaker 的比较。
Ray Data 在机器学习训练摄取方面与其他解决方案相比如何?#
PyTorch Dataset 和 DataLoader
框架无关:Datasets 框架无关,可以在不同的分布式训练框架之间移植,而 Torch datasets 特定于 Torch。
无内置 I/O 层:Torch datasets 没有用于常见文件格式或与其他框架的内存交换的 I/O 层;用户需要引入其他库并自行实现集成。
通用分布式数据处理:Datasets 更通用:它可以处理通用分布式操作,包括全局每个 epoch 的洗牌,否则需要通过将两个独立系统拼接起来才能实现。Torch datasets 需要进行这种拼接才能处理比基于批次的预处理更复杂的操作,并且本机不支持跨工作分片进行洗牌。有关为什么这种共享基础设施对于第三代机器学习架构很重要的原因,请参阅我们的 博客文章。
开销更低:Datasets 开销更低:它支持进程之间的零拷贝交换,而 Torch datasets 采用多进程管道。
TensorFlow Dataset
框架无关:Datasets 框架无关,可以在不同的分布式训练框架之间移植,而 TensorFlow datasets 特定于 TensorFlow。
统一的单节点和分布式:Datasets 在相同的抽象下统一了单节点和多节点训练。TensorFlow datasets 为分布式数据加载提供了 单独的概念,并阻止代码无缝扩展到更大的集群。
通用分布式数据处理:Datasets 更通用:它可以处理通用分布式操作,包括全局每个 epoch 的洗牌,否则需要通过将两个独立系统拼接起来才能实现。TensorFlow datasets 需要这种拼接才能处理比基本预处理更复杂的操作,并且本机不支持跨工作分片进行完全洗牌;仅支持文件交错。有关为什么这种共享基础设施对于第三代机器学习架构很重要的原因,请参阅我们的 博客文章。
开销更低: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 支持此功能。