随着AI工作负载在计算和数据方面日益复杂,构建生产就绪的AI系统成为关键挑战。在KubeCon + CloudNativeCon North America 2025会议上,Anyscale的Robert Nishihara分享了如何利用Kubernetes、Ray、PyTorch和vLLM等技术栈来支持这些新型AI工作负载。
Ray是一个开源框架,专为构建和扩展机器学习及Python应用程序而设计。它最初在伯克利大学的一个强化学习研究项目中开发,用于编排分布式工作负载的基础设施。近期,Ray已加入PyTorch基金会,为更广泛的开源AI生态系统做出贡献。
Nishihara指出,AI工作负载的演进主要围绕三个领域:数据处理、模型训练和模型服务。数据处理需要适应AI应用的新型数据类型,从传统的表格数据扩展到多模态数据集(包括图像、视频、音频、文本和传感器数据)。这一演进对于支持推理任务至关重要,而推理是AI驱动应用的核心组成部分。此外,数据存储和计算操作的硬件需要同时支持GPU和标准CPU。他提到,数据处理已从“基于CPU的SQL操作”转向“基于GPU的推理”。
模型训练涉及强化学习(RL)和后训练任务,包括通过模型推理生成新数据。Ray的Actor API可用于Trainer和Generator组件。一个“Actor”本质上是一个有状态的工作器,在实例化时创建新的工作器类,并管理该特定工作器实例上的方法调度。此外,Ray的原生远程直接内存访问(RDMA)支持允许直接传输GPU对象,从而提升性能。
多个开源强化学习框架基于Ray构建。例如,AI驱动的代码编辑器工具Cursor的composer就是建立在Ray之上。Nishihara还提到了其他著名框架,如Verl(字节跳动)、OpenRLHF、ROLL(阿里巴巴)、NeMO-RL(英伟达)和SkyRL(加州大学伯克利分校),这些框架使用训练引擎如Hugging Face、FSDP、DeepSpeed、Megatron,以及服务引擎如Hugging Face、vLLM、SGLang和OpenAI,所有这些都由Ray编排。
他分享了Ray背后的应用架构,指出上下层都存在日益增加的复杂性。需要软件栈来连接顶层的应用和底层的硬件。顶层包括AI工作负载、模型训练和推理框架,如PyTorch、vLLM、Megatron和SGLang。底层则包括计算基底(GPU和CPU)和容器编排器如Kubernetes和Slurm。分布式计算框架如Ray和Spark充当这些顶层和底层组件之间的桥梁,处理数据摄取和数据移动。
Kubernetes和Ray在托管AI应用方面互补,通过进程级隔离扩展容器级隔离,并提供垂直和水平自动缩放。Nishihara指出,虽然推理阶段的需求相比模型训练有增有减,但能够在这些阶段之间转移GPU变得有益,这一能力通过结合使用Ray和Kubernetes实现。
总之,Nishihara强调了AI平台的核心需求,包括支持原生多云体验、跨GPU预留的工作负载优先级、可观察性和工具、模型和数据血缘跟踪以及整体治理。可观察性在容器级别和工作负载及进程级别都至关重要,以监控指标,如对象传输速度。
|