【保姆级教程】从零开始构建大模型基础设施:Kubernetes+Ray+PyTorch+vLLM实战指南!
简介
文章介绍了AI计算领域的流行开源技术栈Kubernetes+Ray+PyTorch+vLLM,详细解析了其三层架构:训练与推理框架、分布式计算引擎和容器编排器。通过Pinterest、Uber、Roblox等公司的实际案例,展示了该技术栈在模型训练、推理和后训练等场景的应用,强调了其在处理大规模AI工作负载时的优势,以及如何满足扩展性、迭代速度和未来适应性等核心需求。
https://www.anyscale.com/blog/ai-compute-open-source-stack-kubernetes-ray-pytorch-vllm 译文
在构建Ray的过程中,我们与数百个AI团队和平台团队合作,帮助他们将AI模型投入生产环境。随着AI工作负载从传统机器学习演进到深度学习再到生成式AI,运行和扩展这些工作负载的软件栈复杂性显著增加。
行业通常会标准化通用技术栈。在基础设施产品领域,这些标准往往是开源的。正如Spark取代Hadoop成为大数据分析的主流,Kubernetes已成为容器编排的标准,而PyTorch主导了深度学习领域。
经过十余年的发展,许多团队逐渐采用相同的解决方案。本文基于与Ray用户的实际经验,描述了一个新兴技术栈的快照。
我们将分解每一层技术,并通过Pinterest、Uber、Roblox以及五个流行的开源后训练框架的案例加以说明。
0****1
背景
正确的技术栈需要将团队的AI工作负载连接到底层计算资源(尤其是GPU)。构建这些软件栈的团队通常需要解决几个共同需求:
- 三大核心工作负载:支持模型训练、模型服务和批量推理(尤其是多模态数据处理)。在训练中,预训练和后训练正逐渐分化为两种不同的工作负载,各自有独特的技术栈需求。
- 大规模扩展:AI计算密集且数据密集,平台和AI团队需要应对数量级增长的数据量。支持扩展意味着解决可靠性和成本效率的挑战。
- 迭代速度:顶级AI团队关注每位开发者每月的实验次数。性能和扩展性有时与快速迭代冲突。最坏情况下,新想法可能与现有优化基础设施不兼容。
- 未来适应性:没人希望因最新模型、框架或计算资源而重构代码。切换H100按需节点应只需参数调整而非代码重写。
0****2
软件栈
AI计算的常见技术栈:Kubernetes + Ray + PyTorch + vLLM
该技术栈由三层组成,每层承担明确的职责:
- 训练与推理框架:在GPU上高效运行模型,包括模型优化、并行策略、模型定义和自动微分。
- 分布式计算引擎:在任务内调度作业、移动数据、处理故障、自动扩展工作负载、管理进程生命周期。
- 容器编排器:分配节点、调度整个作业、启动容器、管理多租户资源共享。

图 1: Kubernetes + Ray + PyTorch + vLLM: a popular software stack for AI compute.
0****3
运行示例:视频处理
为更具体地说明各层技术栈的应用,我们以自动化视频审核这一实际工作负载为例。该工作负载的阶段包括:
- 视频解码与标准化(CPU)
- 计算机视觉与音频任务(GPU)
- LLM推理(GPU)

0****4
第1层:训练与推理框架
核心职责:在GPU上高效运行模型
- 模型编译与模型级性能优化
- 加速器内存管理
- 并行策略(模型并行、数据并行等)
- 模型定义与自动分化
GPU和其他加速器是AI计算的核心,因此模型必须充分利用它们。
运行示例
在视频处理案例中,所有计算机视觉任务、音频任务及其他分类任务均由PyTorch等深度学习框架执行。而vLLM等LLM推理引擎会在多个GPU上运行LLM推理。
这一层的核心是深度学习框架。PyTorch 是当前的主流框架,Jax 是TPU场景的热门替代方案。经过十年的洗牌(Theano、Torch、Caffe、Chainer、MXNet、TensorFlow等框架被淘汰后),当前框架已趋于稳定。
围绕PyTorch,存在专门用于模型并行(将模型分片到多个硬件加速器上)的框架。这些框架可分为两个维度:
-
用途:专为训练设计(如PyTorch FSDP、DeepSpeed)、专为推理设计(如vLLM、SGLang、TensorRT-LLM),或两者兼顾;
-
通用性:通用型(适用于任意模型)或专为Transformer设计。由于Transformer的重要性与复杂性,它们值得拥有专用框架。
PyTorch FSDP 和 DeepSpeed 是通用模型并行框架,主要用于训练。Nvidia Megatron 是专为Transformer优化的模型并行训练框架,专用性可带来更好的分片策略优化(如不同权重采用不同分片策略)。
另一类框架(如 vLLM、SGLang 和 Nvidia TensorRT-LLM)专注于Transformer推理优化,采用以下关键技术:
- continuous batching
- paged attention
- speculative decoding
- chunked prefill
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

0****5
第2层:分布式计算引擎
核心职责:分布式计算
- 任务调度与执行
- 进程创建,进程生命周期管理以及进程协调通信(RPCs)
- 数据处理(数据摄入与传输)
- 工作负载感知的故障处理与自动扩展
运行示例
在视频处理案例中,Ray等分布式计算引擎负责:
- 跨容器和节点调度不同处理阶段(Stage)
- 管理各阶段(Stage)分配的计算资源并进行自动扩展
- 在各阶段间传输数据
- 从硬件或应用故障中恢复(通过重新执行丢失的工作)
计算引擎将训练和推理代码视为另一个任务。例如,Ray可能在更广泛的数据处理流水线中调度vLLM任务,执行批量LLM推理。
Ray和Spark是最流行的两个分布式计算引擎。Ray是Python原生且具备GPU感知能力,适合模型训练、模型服务和多模态数据处理。Spark做为统一分析引擎,擅长CPU上的大规模SQL和DataFrame操作。
值得注意的是,故障处理与自动扩缩容通过容器编排层做了职责划分。
- 故障处理:分布式计算引擎感知工作负载,负责确保AI工作负载在失败后继续平滑执行(可能重启失败进程、重新执行中断任务或在剩余可用计算资源上重新配置),容器编排器层不感知工作负载,仅负责将问题GPU(或其他组件)从底层集群中移除。
- 自动扩展:分布式计算引擎负责工作负载感知的自动扩缩容,确保AI工作负载从容器编排器中按需请求资源,在资源不再需要时释放,并根据可用计算资源重新配置自身。容器编排器,负责从底层云提供商获取所需计算资源,分配给不同AI工作负载,并在适当情况下回收资源。
06
第3层:容器编排器
核心职责:计算资源分配。
- 工作负载级调度和多租户
- 用户多租户,包括资源隔离和配额
- 容器创建和生命周期管理
- 计算自动扩缩
运行示例
在视频处理案例中,Kubernetes等容器编排器负责:
- 获取计算资源并将其分配给数据处理任务
- 协调多个并发作业的竞争资源需求
- 创建和管理运行任务的容器
工作负载并非孤立存在。通常在公司内,多个用户可能同时运行多个作业,这些作业共享一个计算资源池。
容器编排层的核心职责是通过一个共享计算资源池来调度工作负载和服务多用户。调度粒度非常重要:容器编排器(compute orchestrator)负责调度整个作业,分布式计算引擎(distributed compute engine)负责调度构成单个作业的任务与进程。容器编排层负责创建容器并管理其生命周期,并且它还负责与云提供商交互,选择实例类型并分配计算资源。
在容器编排Kubernetes是最主流的框架,SLURM也是一个比较流行的替代方案,它比较适合研究人员,专为离线工作负载(训练和批量处理)优化。Kubernetes也能处理如训练和批量处理等离线任务,不过它最初是为微服务和在线工作负载而设计,话说,虽然许多团队最初使用 SLURM,但目前趋势是逐步转向Kubernetes进行标准化。
关于这一层,一个微妙的点是目标用户。Kubernetes 的目标用户主要是平台工程师,他们负责运维集群,通过 YAML 配置基础设施,管理多租户和资源共享,并在整个组织内标准化策略。而Ray、PyTorch 和 vLLM 的目标用户是机器学习开发者,他们编写 Python 代码并使用 PyTorch 和 Hugging Face,这些人可能会觉得 Docker 和 Kubernetes 令人望而生畏,但比较擅长调试推理任务工作流中复杂的数值错误或性能瓶颈问题。这些层单独来看都并不能同时满足这两类用户,但结合起来,它们可以同时满足这两类用户的需求。
0****7
案例研究
一些公司详细撰写了关于其AI计算技术栈的文章。
Pinterest 撰写了一篇令人印象深刻的三篇博客系列,涵盖其AI基础设施:
- 第1部分:训练阶段的最后一步数据处理,探讨了开发速度瓶颈,尤其是围绕机器学习数据集迭代的问题。https://medium.com/pinterest-engineering/last-mile-data-processing-with-ray-629affbf34ff
- 第2部分:管理 Ray,描述了Pinterest采用 Ray 最佳实践并管理生产环境中 Ray 工作负载的年度历程。内容涵盖从 Kubernetes 交互到身份验证、日志记录、指标到成本优化的所有挑战。https://medium.com/pinterest-engineering/ray-infrastructure-at-pinterest-0248efe4fd52
- 第3部分:批量推理,说明了如何通过结合 Ray、vLLM 和 PyTorch,升级其上一代批量推理解决方案。https://medium.com/pinterest-engineering/ray-batch-inference-at-pinterest-part-3-4faeb652e385
他们的技术栈完美体现了 Kubernetes + Ray + PyTorch + vLLM 的组合。

图2:Components of Pinterest’s software stack for managing AI compute.
Uber
Uber 在 ML 平台领域具有重要影响力,并详细撰写了其 AI 基础设施演进历程:
技术栈演进
- 2017 年:推出 Michelangelo(开创性的 ML 平台),详细描述了从数据管理、模型训练、模型部署到预测监控的完整技术栈。
- 同期:开源了 Horovod(早期分布式训练框架),后续扩展了 Horovod 与 Ray 结合深度学习、XGBoost 与 Ray 结合经典 ML 的规模化实践。
- 批量推理时代,早期他们写过基于 PySpark 的批量推理方案,最新架构是基于 Ray + vLLM 的架构(2024 年披露)。
- 在这篇博文中,他们描述了在本地和云端环境中优化训练和服务基础设施成本和可靠性所采取的步骤。
- 2024 年,他们分享了 Michelangelo 的演进历史,以及它如何从预测型机器学习 (ML) 过渡到生成式人工智能 (Generative AI)。
- 他们介绍了基于 PyTorch、Ray Train、Hugging Face Transformers 和 DeepSpeed 的 LLM 训练技术栈。
- 2024 年,Uber 将其机器学习工作负载迁移到 Kubernetes,并在最近将此次迁移分为两部分进行描述。
- 第一部分介绍了他们为实现此次迁移而采用的开源技术栈以及他们在此过程中必须解决的挑战。
- 第二部分则重点介绍了他们基于 Kubernetes 的作业管理平台,以及他们对 Kubernetes 进行的一些增强。
Uber 已显著改进其机器学习平台,并在其技术栈中使用了多种不同的开源技术。Kubernetes + Ray + PyTorch + vLLM 组合在其当前的技术栈中扮演着重要角色,并且其周围还有许多其他工具。值得注意的是,Uber 大量使用了 Spark。

图 3:Components of Uber’s software stack for managing AI compute.
Roblox
Roblox 也撰写了关于其机器学习平台演进的文章。他们描述了演进的三个阶段。
(https://corp.roblox.com/newsroom/2024/09/running-ai-inference-at-scale-in-the-hybrid-cloud)
- 第一阶段以 Kubeflow 和 Spark 为中心,用于数据处理和训练,以 KServe 和 Triton 为中心,用于在线服务。
- 第二阶段专注于扩展训练规模,以支持更大的数据集和更强大的模型,并优化训练和推理的性能和效率,此阶段引入了 Ray 和 Flink。
- 第三阶段处理 LLM 场景并将 vLLM 作为平台的核心部分。
他们的技术栈包含上述所有核心组件,以及 Spark、Flink、Kubeflow、kServe、Triton 和许多其他工具。

图 4:Components of Roblox’s software stack for managing AI compute
后训练框架
最后一个案例研究并非针对特定公司,而是通过一个重要的新兴 AI 工作负载「后训练」来阐述该技术栈。
后训练目前以强化学习为中心,因其复杂性而引人注目。与常规训练相比,后训练结合了模型训练和模型推理。推理是为了生成额外的训练数据。模型推理通常与模拟器或代理环境交互(例如,如果您正在训练模型进行软件工程,则可能正在运行和扩展容器化的编码环境)。奖励模型对生成数据的质量进行评分。模型权重需要从算法的训练部分传输到推理部分,而rollouts 需要从生成部分传输回训练部分。因此,存在许多移动部件,分布式系统挑战更加艰巨。
下表描述了用于实现五种最流行的开源后训练框架。这些框架通常是通过将分布式计算引擎层(主要是 Ray)的技术与训练和推理框架层的技术相结合来实现的。它们旨在跨多个容器编排器(Kubernetes 和 SLURM)运行。SLURM 尤其适合部署这些框架,因为目前研究人员是进行后期训练的主要人员。
请注意,由于此类工作负载需要训练和推理,因此我们在此表中将训练框架与推理框架分开。

**图 5:Technologies used for building the most popular open source post-training frameworks. Ray, PyTorch, and vLLM are universally used in the implementation. These frameworks are typically deployed on top of Kubernetes and SLURM.
¹ 除了本博文中给出的例子之外,其他还包括 Spotify、字节跳动、腾讯、Canva、Coinbase、Instacart、Niantic、Netflix、Runway、Reddit、Cohere、蚂蚁集团、Samsara、eBay、Handshake、Workday、Zoox、Airbnb、Nubank、Attentive 和 Apple。)**
AI大模型学习路线
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

更多推荐


所有评论(0)