为何收录

对科研用户,Ray 主要用在数据规模超出单机内存、但仍希望用 Python 组织流程的场合。例如把样本元数据表与大型测量矩阵按样本编号连接,按实验条件汇总多年的仪器日志,或对多模态语料做批量清洗,这些步骤的瓶颈常在 Join 与 GroupBy 产生的中间数据。2.59.0 的外部 Shuffle 针对的正是这一环节:中间分片可以落到磁盘,不必整块留在内存中,适合内存有限、本地磁盘较充足的课题组服务器或小型集群。Ray Data LLM 转为正式可用,便于在同一条数据管线里对大批文本(如论文摘要)批量调用大语言模型做标注或信息抽取。本地集群默认启用令牌认证,也降低了共用实验室服务器上集群在无认证状态下运行的风险。

准备试用的团队可以先做一次小规模验收(建议,本文未执行):取一份单机内存能处理的数据子集,分别用默认策略和 ShuffleStrategy.SHUFFLE_V2 完成同一个 Join 或 GroupBy,核对两次结果的行数和汇总值是否一致,再记录峰值内存、溢写量和耗时;确认无误后再逐步放大数据量。

局限与注意事项

第一,成熟度有限。当前文档仍把 shuffle_v2 标为 alpha,按键操作的默认策略仍是 HASH_SHUFFLE,需要通过 DataContext 的 shuffle_strategy 或环境变量 RAY_DATA_DEFAULT_SHUFFLE_STRATEGY 主动启用;Join 功能本身也标注为实验性。本文查阅的文档页没有单独说明外部磁盘模式的开关,使用前应查对应版本的 API 文档。第二,覆盖范围有限:shuffle_v2 目前支持聚合、GroupBy、按键重分区和 Join,不支持 sort 与 random_shuffle。第三,落盘不等于没有资源上限。文档提醒,溢写会明显拖慢执行,排队数据过多还可能把磁盘写满;Shuffle 产生大量小分片时,头节点可能内存不足,可把 RAY_max_direct_call_object_size 调低(例如 8192 字节)。Join 的分区数也要权衡,分区过大仍会内存溢出,过小则额外开销增加。第四,升级可能影响现有脚本:本地集群已默认启用令牌认证,2.61 起将覆盖所有集群,远程或多节点连接需要提前分发同一令牌。第五,许可证要分开核对:Ray 主体为 Apache 2.0,部分第三方代码沿用原许可,vLLM 等依赖和通过 LLM 接口加载的模型权重各有条款。本文为资料核验,未安装实测,不含任何实测性能数据。

参考文献

  1. ray-project. ray-project/ray GitHub 仓库(核验于 2026-10-21)

  2. ray-project. Ray-2.59.0 Release,2026-10-02

  3. ray-project. Releases · ray-project/ray(核验于 2026-10-21)

  4. ray-project. Ray LICENSE

  5. Ray Docs. Ray Data internals

  6. Ray Docs. Joining data

  7. Ray Docs. Advanced: Performance Tips and Tuning

  8. 信息由 Scholay 学术一站式平台 整理并发表,如有侵权请反馈下架。

  9. 信息同步发表于恩特学术,智能时代的学者社区