ray
让单机 Python 代码一键扩展为分布式集群,AI 全流程工具链
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让单机 Python 代码一键扩展为分布式集群,AI 全流程工具链
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景: 你训练好了一个 GPT 级别的模型,想要在生产环境中同时服务 10 万用户——单机根本扛不住,分布式写代码又太复杂。Ray 就是来解决这个问题的:它把"如何把任务拆分到多台机器"这件事,变得像写普通 Python 函数一样简单。
Ray 诞生于加州大学伯克利分校(UC Berkeley)的 RISE 实验室,由该实验室的多位顶尖研究员于 2017 年正式对外发布。初衷很简单:当时没有现成工具能让研究者在自己的笔记本上写的 Python 代码,无缝扩展到拥有数千台机器的集群。研究者们要么手写分布式系统代码,要么使用 Hadoop/Spark 这类笨重的通用框架——两者都不适合现代 AI 工作负载。
随着大模型浪潮的到来,Ray 的价值被急剧放大。它的缔造者后来创办了 Anyscale 公司,提供基于 Ray 的商业化托管服务,2023 年已完成 C 轮融资,估值超 10 亿美元。Ray 本身则保持着强劲的社区增长,截至 2025 年初 GitHub 星标数已突破 42,000,成为 AI Infrastructure 领域最受关注的开源项目之一。
Ray 的架构分为两层:Ray Core 是底层分布式运行时,提供三个核心抽象;Ray AI Libraries 是上层一站式 AI 工具链,覆盖从数据处理到模型上线的全流程。
Ray Core 三大抽象:
@ray.remote 装饰器一键标记,Ray 自动处理任务调度、失败重试和结果收集。Ray AI Libraries(五件套):
| 库名 | 定位 | 核心能力 |
|---|---|---|
| Ray Data | 大规模数据处理 | 流式/批处理,数据集可直接送入训练 pipeline |
| Ray Train | 分布式训练 | PyTorch、TensorFlow、XGBoost 分布式 wrapper,支持 Fault Tolerance |
| Ray Tune | 超参数调优 | 搜索算法丰富(Grid/Random/Bayes/PBT),支持多节点大规模并行搜索 |
| Ray RLlib | 强化学习 | 支持 MARL、MultiAgent,覆盖主流 RL 算法和大规模分布式训练 |
| Ray Serve | 模型服务 | 支持多模型复合推理、A/B 测试、动态扩缩容,兼容 LangChain 和 VLLM |
从代码仓库结构可以看出,Ray 是一个高度模块化的巨型项目:
python/ray/ 包含所有核心模块,其中 air/(Ray AI Libraries Runtime)、rllib/(RLlib)、train/、tune/、serve/、data/ 分别对应五大 AI 库src/ 目录包含核心 C++ 扩展(_raylet.pyx),处理 gRPC 通信、对象存储和任务调度等高性能路径docker/ 目录提供完整的多架构镜像支持(CPU/GPU),build-docker.sh 脚本支持本地构建自定义镜像整体代码质量较高:仓库有完善的 CI/CD(GitHub Actions)、完整的单元测试套件、详细的文档体系,Apache-2.0 许可证。
Ray 的上手门槛在分布式框架中属于极低级别:
pip install ray # 基础版
pip install "ray[default]" # 含 Dashboard
pip install "ray[train]" # 含分布式训练
pip install "ray[serve]" # 含模型服务
安装后直接在 Python 脚本中使用 @ray.remote 装饰器即可实现分布式。Ray 内置 Ray Dashboard(http://localhost:8265),提供任务图谱可视化、资源使用率监控、日志聚合和 Actor 状态查看,对调试分布式应用非常有帮助。
Ray 本身对硬件要求不高——Core 模块 2GB 内存即可运行一个单节点 Ray 集群。但 Ray 的真正价值在于横向扩展:
Ray 在 2024-2025 年的 AI 生态中扮演着关键角色:
从 GitHub Topics 也能看出项目定位:large-language-models、llm-inference、distributed、hyperparameter-optimization 等标签精准覆盖了当前 AI 开发的核心需求。
Ray 并非银弹,以下场景需要谨慎评估:
Ray 是当前 AI 基础设施领域最值得关注的开源项目之一。它用最少的代码改动,将单机 Python 程序扩展成分布式集群应用,同时提供从数据处理、训练、调优到上线的完整工具链。对于 AI 研究团队和 AI 应用公司来说,Ray 大幅降低了构建大规模 AI 系统的工程门槛,让团队可以把更多精力放在模型本身而非基础设施上。

图1:Ray 项目 GitHub 官方头像