技术指南

Ray 用于分布式人工智能

Ray 是一个开源框架,可以轻松地将 Python 和 AI 工作负载从笔记本电脑扩展到包含数千台机器的集群。

概述

Ray 是一个开源框架,可以轻松地将 Python 和 AI 工作负载从笔记本电脑扩展到包含数千台机器的集群。这很重要,因为它提供了一种简单、统一的方式来分发训练、调优、数据处理和服务,而无需为每个项目重写代码。

Ray for Distributed AI 是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

Ray 的核心思想是以最小的改变将普通的 Python 函数和类转变为分布式单元。标记为远程“任务”的函数在集群中的任何工作线程上异步运行;标记为远程“参与者”的类成为依赖于工作人员的有状态服务。 Ray 返回轻量级 future(对象引用)并处理调度、通过共享对象存储进行数据移动以及容错。在此核心之上是专门构建的库:用于分布式模型训练的 Ray Train、用于超参数搜索的 Ray Tune、用于流数据管道的 Ray Data、用于强化学习的 RLlib 以及用于可扩展模型服务的 Ray Serve。这使得一个集群能够端到端地处理整个机器学习工作流程。

技术洞察

关键原语是任务(无状态、并行函数调用)和参与者(保存加载模型或计数器等内容的有状态工作人员)。当您调用远程任务时,Ray 立即返回 future 并在可用的 CPU/GPU 上安排工作;您调用 ray.get() 来获取结果。具有零拷贝共享内存的分布式内存对象存储可以有效地在工作人员之间移动数组等大型对象,避免重复序列化并使数据量大的 AI 管道快速运行。

掌握分布式 AI 的 Ray

Ray 是一个开源框架,可以轻松地将 Python 和 AI 工作负载从笔记本电脑扩展到包含数千台机器的集群。这很重要,因为它提供了一种简单、统一的方式来分发训练、调优、数据处理和服务,而无需为每个项目重写代码。 Ray for Distributed AI 是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 Ray for Distributed AI 视为一种操作模型,而不是单一功能:定义期望的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,强大的团队使用 Ray 进行分布式 AI,根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

Ray 分布式 AI 的未来

Ray 已成为大规模人工智能的支柱,特别是用于训练和服务大型语言模型。预计 LLM 特定服务(带有 vLLM 的 Ray Serve)、异构 GPU 调度、通过 KubeRay 与数据湖和 Kubernetes 更紧密的集成,以及针对尖峰生成工作负载的更好的自动扩展等方面会出现增长。随着模型的增长,Ray 在协调多节点训练、RLHF 管道以及跨数千个加速器的批量推理方面的作用可能会扩大。

现实世界的实施

运行 Ray Tune 在 GPU 集群中并行搜索数百个超参数组合,以找到最佳模型配置

使用 Ray Train 将深度学习模型的训练分布在多个 GPU 和节点上,只需最少的代码更改

使用 Ray Data 构建批量推理管道,通过跨集群的模型流式传输数百万条记录来获得这些记录

使用 Ray Serve 在单个自动缩放端点后面部署多个模型,以处理可变的生产流量

实施模式

Ray 分布式 AI 实践

运行 Ray Tune 在 GPU 集群中并行搜索数百个超参数组合,以找到最佳模型配置。

运行 Ray Tune 在 GPU 集群中并行搜索数百个超参数组合,以找到最佳模型配置。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。

Ray 分布式 AI 实践

使用 Ray Train 将深度学习模型的训练分布在多个 GPU 和节点上,只需最少的代码更改。

使用 Ray Train 将深度学习模型的训练分布在多个 GPU 和节点上,只需最少的代码更改。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

Ray 分布式 AI 实践

使用 Ray Data 构建批量推理管道,通过跨集群的模型流式传输数百万条记录来获得这些记录。

使用 Ray Data 构建批量推理管道,通过跨集群的模型流式传输数百万条记录,当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

Ray 分布式 AI 实践

使用 Ray Serve 在单个自动缩放端点后面部署多个模型,以处理可变的生产流量。

使用 Ray Serve 在单个自动扩展端点后面部署多个模型来处理可变的生产流量 团队在预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索