Ray 发展现状及趋势

360影视 国产动漫 2025-05-28 09:00 4

摘要:Ray 诞生于伯克利的研究项目,其起源可追溯至人工智能的萌芽时期。彼时,AI 训练领域涌现出两大关键需求:其一,下一代 AI 应用需要在动态交互环境中持续进化,通过人机或机机交互实现能力迭代升级,这与当今通过持续训练优化 AI 模型性能的理念一脉相承;其二,新

导读本文将分享 #Ray 的发展现状与趋势。

主要包括以下几大部分:

1. Ray 的起源和价值

2. Ray AI 生态能力建设

3. Ray 在蚂蚁的发展现状

4. Ray 开源及社区发展趋势

5. 问答环节

分享嘉宾|吕峰军(明城) 蚂蚁集团 开源布道师

编辑整理|菊

内容校对|李瑶

出品社区|DataFun

01

Ray 诞生于伯克利的研究项目,其起源可追溯至人工智能的萌芽时期。彼时,AI 训练领域涌现出两大关键需求:其一,下一代 AI 应用需要在动态交互环境中持续进化,通过人机或机机交互实现能力迭代升级,这与当今通过持续训练优化 AI 模型性能的理念一脉相承;其二,新一代 AI 应用对系统架构的灵活性与运行效率提出了前所未有的挑战,要求基础设施能够支持更复杂的任务调度与资源管理。

由于存在不同架构的 NPU、CPU,在同一平台、同一架构下训练同一模型的传统模式已无法满足需求,模型训练、数据清洗等工作都需要基于分布式架构或不同平台进行,异构计算成为必然趋势。在此背景下,数据的分布式协同问题亟待解决。

回顾 2016 - 2017 年,分布式计算框架众多,像 Apache Spark 等已被广泛应用。但 Ray 另辟蹊径,确定了两个独特的发展方向。其一为融合方案,借助通用计算框架实现数据处理、模型训练与服务提供;其二是组合方案,基于多套系统进行融合拼接,以此达成调度容灾、灰度部署、数据清洗与迁移等多样化功能。

Ray 秉持两大关键理念。其一,不绑定计算模式,将业务需求或目标作为计算模式的牵引方向;其二,追求极致简化,具体表现为将单机概念拓展至分布式领域,通过抽象复杂内容,类比 Java 中 Spring Boot 利用注解简化开发流程的方式,为用户提供便捷的开发体验。其开发模式由无状态、有状态和有依赖的输出三部分构成,这一模式为开发者构建分布式应用提供了清晰的思路。

Ray 采用基于 Python 的分布式编程模型,通过 @ray.remote 装饰器定义远程任务与 Actor,利用 ray.get 和 ray.put 实现数据与任务的分布式调度,支持在异构计算集群上高效执行并行计算与状态管理。

Ray 框架以 Ray Core 为高性能分布式计算中间层,我们在上面叠加了分布式业务数据处理层。

自 2016 年起,Ray 框架历经近十年的发展,不断迭代演进。早期 Ray 被定义为 “framework”,但该定义存在局限性,因其缺乏平台抽象能力。到 1.0 版本时,Ray 的定义更新为“build”。目前,Ray 推荐的主版本为 2.4,在2.0 版本及以后,其被定义为 “scaling AI and Python applications”,这一转变体现了 Ray 框架的发展方向和功能拓展。

关于 Ray 框架,我们一直思考:“Ray 到底是什么”“Ray 到底能做什么”“Ray 这几年到底做到了什么” 三个核心问题。

Ray 主要面向 AI 领域,且高度依赖数据处理。它构建了一整套涵盖从构建、训练、推理到在线服务的 AI 基础设施(AI Infra)。在 Python 技术栈中,早期 Python 在 AI 领域应用较少,常被视为“胶水语言”或“玩具语言”,缺乏工业化的落地实践。随着 PyTorch 和 Ray 等技术的出现,Python 在 AI 训练和分布式模型部署方面获得了工业级的解决方案。

从大数据计算迈向 AI 计算的进程中,Ray 期望能够实现从大数据集到 AI 计算的跨越,取代 Spark 成为 AI 计算平台的中间层。Ray 的目标不仅仅是成为一个分布式计算框架,更致力于成为分布式应用层的综合解决方案。

与专注于容器编排的 K8s 不同,Ray 更聚焦于 AI 应用领域。形象地说,K8s 类似 PaaS(平台即服务),而 Ray 则类似于 SaaS(软件即服务),两者在功能定位和应用场景上存在显著差异。

与 K8s 对比,研发效率上,Ray 开发周期更短(2 人天,K8s 为 15 人天 );代码量方面,Ray 主要用 Python,代码量少(260 行,K8s 涉及多种语言且代码量多 )。K8s 是云原生方式,多语言、多程序入口,应用、运维部署、配置解耦;Ray 是单语言、单程序入口,应用、运维部署、配置融为一体。

Ray 的核心层(Ray Core)是使用 Ray 的基础,该层较为轻薄,可部署在 AWS、Google Cloud、K8s 等多种环境中,减轻了使用负担。基于 Ray Core 构建的上层组件对于实现 Ray 的功能至关重要,它们在 AI 相关的各个环节,如数据处理、模型训练、调试和服务部署等方面,都提供了对应的解决方案,共同构成了 Ray 丰富的生态系统。

02Ray AI 生态能力建设

1. Ray AI Libraries 概述

Ray AI Libraries 包含 Data、Train、Tune、Serve、RLlib 等多个重要组件,这些组件协同工作,能够极大地简化AI工作负载的扩展过程。同时, Ray Core 为使用纯 Python 构建可扩展应用提供了有力支持,充分发挥了 Python 在 AI 开发中的优势。

2. 各组件功能

Ray Data :具备强大的数据加载和交换能力,支持 Json、CSV、Parquet、NumPy、Pandas、HuggingFace 等多种常见数据格式,还能对接自定义数据源。它拥有基本的分布式操作功能,如映射(map)、过滤(filter)、排序(sort)和重新分区(repartition)。可以与 Ray 的 tasks、actors 和 libraries 实现无缝兼容,在实际应用中,开发者可以使用读取数据,并将数据集轻松传递给 Task 和 Actor 进行处理。Ray Train :专注于模型训练领域,对多种机器学习框架扩展训练进行了抽象,支持主流 ML 框架,提供 3 类 Trainer:Deep Learning Trainers(PyTorch、TensorFlow、Horovod)Tree-based Trainers(Xgboost、LightGBM)Other ML frameworks (HuggingFace、Scikit-Learn、RLlib)

通过配置和参数,开发者能够灵活地进行分布式训练,提高训练效率和模型性能。

Ray Tune :主要用于超参数调优,集成了多种先进的调优算法。在模型开发过程中,超参数的选择对模型性能至关重要,Ray Tune 能够帮助开发者快速找到最优超参数组合,节省大量的时间和计算资源。Ray Serve :支持生成式 AI 的流式响应,为开发者提供了 REST API 服务。它具备自动缩放、流量调度等实用功能,能够根据实际业务负载动态调整资源分配,确保服务的稳定性和高效性。在处理高并发请求时,Ray Serve 可以有效地管理请求队列,合理分配任务到不同的副本节点,提升系统的整体性能。RLlib :在大规模分布式强化学习训练和分布式采样方面表现出色。它内置了丰富的开箱即用 RL 算法,如 PPOTrainer,同时具备高度抽象性,方便开发者进行定制和扩展。开发者可以根据具体的应用场景,自定义环境、训练器、策略等组件,满足复杂的强化学习需求。03Ray 在蚂蚁的发展现状

1. 早期探索

蚂蚁早期在业务场景中进行了深入探索。在这些场景中,传统的数据处理和决策方式逐渐暴露出瓶颈,无法满足业务快速增长的需求。

2017 年,蚂蚁发现 Ray 的平台能力与自身业务发展需求高度契合,于是成立了蚂蚁 Ray 团队。此后,团队致力于构建离在线一体推理架构,成功实现了离线计算和在线推理的落地应用,并逐步将相关技术进行商业化输出,为蚂蚁的业务发展提供了强大的技术支持。

2. 生态架构

蚂蚁 Ray 生态架构以 K8s 为底层支撑,上层部署了 Ray 相关组件。该架构广泛应用于搜索推荐、直播点播、数字金融、基金运筹、金融核心、全图风控、大安全、达摩院、菜鸟、本地生活、外部企业等多个业务领域。

不同业务场景具有各自独特的特性,例如在线服务场景注重自动缩放、流量调度和集群编排;离线推理场景强调异构计算、分布式数据集和 AI 数据处理算子。但它们也存在一些共性,包括跨语言和多语言支持、运行时环境管理、服务发现、数据存储、组件通信以及异构资源管理等。

3. 特性增强

蚂蚁针对 Ray 进行了一系列特性增强工作。

4. 开源贡献

蚂蚁在 Ray 开源社区中扮演着重要角色,是贡献第二大的组织。在 25 名顶级贡献者中,有 8 位来自蚂蚁集团,蚂蚁贡献的代码量占比达到 26.3%。这充分体现了蚂蚁在推动 Ray 技术发展方面的积极作用和重要贡献。

04Ray 开源及社区发展趋势

1. 社区增长趋势

Ray 在开源社区的发展势头强劲,其 star 数增长趋势和速度超越了许多其他项目,如 Apache Spark。截至 2024 年,Ray 的贡献者数量已超过 1000 人,社区呈现出加速上升的良好态势。这表明 Ray 在技术领域受到了越来越多开发者的关注和认可,其生态系统正在不断壮大。

2. 贡献者分布

从地域分布来看,Ray 的贡献者主要集中在美国和中国。其中,中国最大的贡献者为蚂蚁集团。这反映出中美两国在AI技术领域的活跃程度以及对 Ray 项目的高度重视,也显示出 Ray 在全球范围内的影响力不断扩大。

3. 开源 AI 生态位

Ray 在开源 AI 生态中定位于基础平台层,旨在为上层应用提供坚实的支撑。它专注于提供解决方案,而非具体的产品,通过打造稳定、高效的平台,助力开发者更便捷地构建和部署 AI 应用。

4. 国内外企业应用情况

谷歌的 Google Cloud 为用户提供了 Ray 官方部署,方便用户直接使用 Ray 的相关功能。亚马逊的 AWS 提供了迁移方案和丰富的生态附件组件,帮助企业顺利将现有业务迁移到 Ray 平台。Uber 将 Ray 深度融入业务,每月在其 ML 平台(Michelangelo)上有超过 20K 个模型训练作业,并且基于 Ray Tune 进行超参数调优,显著提升了模型训练效率和质量。Pinterest 则拥有大规模的 Ray 集群部署,在数据处理和模型训练方面充分发挥了 Ray 的优势。Samsara 借助 Ray 搭建了现代化的机器学习平台,使每年的机器学习推理总成本降低了 50%。

字节跳动的火山引擎云、华为云、腾讯的微信视频号等都在积极使用 Ray 技术。

字节跳动将 Ray 应用于火山引擎云的托管服务和 AML 基础技术中。华为不仅在云托管服务中采用 Ray,还将其应用于车 BU 的车载视频数 据处理。腾讯则利用 Ray 进行微信视频号的多模 AI 数据处理。

这些案例表明 Ray 在国内企业中也得到了广泛的应用和认可。

Ray 相关技术沉淀逐渐向更多传统行业渗透。

AI 行业技术栈逐渐拥抱 Ray,碎片化技术栈向统一技术栈转变。未来,Ray 将在更多新领域、新场景得到应用,与新兴 AI 技术和应用模式结合,发挥更大作用。

A:蚂蚁未来将继续积极参与 Ray 社区的开发工作,持续向 Ray 上游贡献代码,且贡献速度会快于上游。蚂蚁希望推动 Ray 更加社区化,使其像 K8s 一样中立。目前,对于 Ray 捐献到基金会的问题,虽然尚未有明确结论,但蚂蚁研发团队认为,若 Ray 能在基金会运转,将有助于其更快速地发展,蚂蚁作为 Ray 中文社区重要的贡献者,愿意积极支持这一发展方向。

以上就是本次分享的内容,谢谢大家。

来源:DataFunTalk

相关推荐