Ray分布式机器学习:利用Ray进行大模型的数据处理、训练、推理和部署
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 Ray的生态

Ray的高级库功能十分强大,本书将深入探讨这些高级库。虽然它们对于数据科学很重要,但我们并不希望给人一种Ray是万金油解决方案的印象。通常,最好和最成功的框架是能与现有解决方案和编程思想进行集成的框架。所以最好专注于自己的核心优势,并利用其他工具填补不足,Ray在这方面做得非常出色。

在本书中,特别是第11章,我们将讨论许多基于Ray的强大的第三方库。Ray生态还与许多现有工具进行了集成。例如,Ray Dataset是Ray的数据加载和计算库。如果你已经使用了Spark[18]或Dask等数据处理引擎,则可以将这些工具与Ray一起使用。具体来说,你可以使用Dask-on-Ray调度器在Ray集群上运行整个Dask生态,或者可以使用Spark on Ray项目(https://oreil.ly/J1D5I)将Spark计算任务与Ray集成。同样,Modin项目(https://oreil.ly/brGPJ)是Pandas DataFrames的分布式即插即用替代方案,它使用Ray(或Dask)作为分布式执行引擎(“Pandas on Ray”)。

Ray并不试图替代所有这些工具,而是在与它们集成的同时,仍然可以访问原生的Ray Dataset库。在第11章中,我们将详细介绍Ray与其他生态工具的关系。

许多Ray库的重要特性之一是它们无缝集成了常用工具作为后端。Ray通常创建常见的接口,而不是创建新标准[19]。这些接口支持以分布式方式运行任务,这是大多数相应的后端所没有或功能欠缺的。例如,Ray RLlib和Train利用了TensorFlow和PyTorch的全部强大功能。而Ray Tune支持几乎所有知名的超参数调优工具,包括Hyperopt、Optuna、Nevergrad、Ax、SigOpt等。这些工具默认情况下都不是分布式的,但Tune通过通用接口将它们统一起来,用于分布式计算任务。