Ray for ML Infrastructure#
提示
如果您正在使用 Ray 构建 ML 平台,我们非常希望听到您的声音!请填写 这个简短的表单 来参与其中。
Ray 及其 AI 库为希望简化 ML 平台的团队提供了一个统一的计算运行时。Ray 的库,如 Ray Train、Ray Data 和 Ray Serve,可用于组合端到端的 ML 工作流,提供数据预处理的功能和 API 作为训练的一部分,并实现从训练到服务的过渡。
为什么选择 Ray for ML Infrastructure?#
Ray 的 AI 库通过提供无缝、统一和开放的可扩展 ML 体验,简化了机器学习框架、平台和工具的生态系统。
1. 无缝的开发到生产:Ray 的 AI 库减少了从开发到生产的摩擦。使用 Ray 及其库,相同的 Python 代码可以无缝地从笔记本电脑扩展到大型集群。
2. 统一的 ML API 和运行时:Ray 的 API 允许通过最少的代码更改在流行的框架(如 XGBoost、PyTorch 和 Hugging Face)之间进行切换。从训练到服务的任何内容都在单个运行时(Ray + KubeRay)上运行。
3. 开放且可扩展:Ray 是完全开源的,可以在任何集群、云或 Kubernetes 上运行。在可扩展的开发人员 API 之上构建自定义组件和集成。
基于 Ray 构建的示例 ML 平台#
Merlin 是 Shopify 基于 Ray 构建的 ML 平台。它能够快速迭代和 扩展分布式应用程序,例如产品分类和推荐。
Shopify 的 Merlin 架构基于 Ray 构建。#
Spotify 将 Ray 用于高级应用,包括个性化推荐首页播客内容,以及个性化 Spotify Radio 的歌曲排序。
Ray 生态系统如何赋能 Spotify 的 ML 科学家和工程师。#
以下亮点介绍了利用 Ray 统一 API 构建更简单、更灵活的 ML 平台的公司。
为 ML 平台部署 Ray#
本页介绍您如何在自己的基础架构中使用或部署 Ray。主要有两种部署模式——按需选择和在现有平台内集成。
核心思想是 Ray 可以**补充**您现有的基础架构和集成工具。
设计原则#
Ray 及其库处理 AI 应用和服务的重量级计算方面。
Ray 依赖于外部集成(例如,Tecton、MLFlow、W&B)进行存储和跟踪。
工作流编排器(例如,AirFlow)是一个可选组件,可用于调度定期作业、为作业启动新的 Ray 集群以及运行非 Ray 计算步骤。
可以使用 Ray 任务来处理单个 Ray 应用内的任务图的轻量级编排。
Ray 库可以独立使用,也可以在现有 ML 平台内使用,或者用于构建 Ray 原生 ML 平台。
按需选择您自己的库#
您可以按需选择您想使用的 Ray AI 库。
这适用于您是一名 ML 工程师,希望为特定的 AI 应用或服务用例独立使用 Ray 库,而无需与现有 ML 平台集成。
例如,Alice 想使用 RLlib 为她的工作项目训练模型。Bob 想使用 Ray Serve 来部署他的模型管道。在这两种情况下,Alice 和 Bob 都可以独立使用这些库,无需任何协调。
这种情况描述了今天 Ray 库的大部分用法。
在上图中
仅使用了一个库——表明您可以按需选择,并且不需要替换您所有的 ML 基础架构即可使用 Ray。
您可以使用 Ray 的多种部署模式 中的一种来启动和管理 Ray 集群及 Ray 应用。
Ray AI 库可以从外部存储系统(如 Amazon S3 / Google Cloud Storage)读取数据,并将结果存储在那里。
现有 ML 平台集成#
您可能已经拥有一个现有的机器学习平台,但想使用 Ray 的 ML 库的某个子集。例如,ML 工程师想在其组织购买的 ML 平台(例如 SageMaker、Vertex)内使用 Ray。
Ray 可以通过与现有的管道/工作流编排器、存储和跟踪服务集成,来补充现有的机器学习平台,而无需替换您整个 ML 平台。
在上图中
像 AirFlow、Oozie、SageMaker Pipelines 等工作流编排器负责调度和创建 Ray 集群以及运行 Ray 应用和服务。Ray 应用可能是更大型的编排工作流的一部分(例如,Spark ETL,然后是 Ray 上的训练)。
任务图的轻量级编排可以完全在 Ray 内部处理。外部工作流编排器将很好地集成,但仅在运行非 Ray 步骤时才需要。
也可以为交互式使用(例如,Jupyter notebooks、Google Colab、Databricks Notebooks 等)创建 Ray 集群。
Ray Train、Data 和 Serve 提供与 Feast 等特征存储的集成,用于训练和部署。
Ray Train 和 Tune 提供与 MLFlow 和 Weights & Biases 等跟踪服务的集成。