当前位置: 首页 > news >正文

LeaderWorkerSet 生态全景:vLLM、SGLang、TensorRT-LLM 与 NVIDIA NIM 集成实战

LeaderWorkerSet 生态全景:vLLM、SGLang、TensorRT-LLM 与 NVIDIA NIM 集成实战

【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lws

LeaderWorkerSet(LWS)是一个开源的 Kubernetes 原生 API,用于把「一组 Pod」作为一个复制单元进行部署和管理。它专为大规模 LLM 推理而设计——在 vLLM、SGLang、TensorRT-LLM 甚至 NVIDIA NIM 等主流推理框架的多节点部署中,LeaderWorkerSet 正在成为事实上的编排标准。本文用最简单的方式,带你一次看懂 LWS 生态全景与四大主流框架的集成实战,让「分布式 LLM 推理服务」从复杂变得简单。

为什么大模型推理需要 LeaderWorkerSet?🤔

单个 GPU 装不下 Llama-3.1-405B、DeepSeek-R1 这类超大模型,必须把模型切分到多台机器上并行推理(张量并行 + 流水线并行)。传统方式需要手工管理每台机器上的 Pod、协调它们的启动顺序,非常痛苦。

LeaderWorkerSet 的核心模型是Leader + Worker

  • Leader Pod:每个组有一个 Leader,负责对外提供服务(HTTP 接口);
  • Worker Pod:跟随 Leader 的多个 Worker,与 Leader 协作完成分布式推理;
  • 组(Group):Leader + 所有 Worker 组成一个复制单元,整体扩容、整体重启、整体滚动更新。

更贴心的是,LWS 会自动向每个 Pod 注入三个环境变量,推理框架无需感知 Kubernetes 细节即可组网:

环境变量作用
LWS_LEADER_ADDRESSLeader 的地址(通过 headless service 暴露)
LWS_GROUP_SIZE当前组内的 Pod 总数
LWS_WORKER_INDEX当前 Pod 在组内的索引(0 代表 Leader)

这套设计正是集成 vLLM、SGLang、TensorRT-LLM 的关键钥匙。相关定义可参考源码 api/leaderworkerset/v1/leaderworkerset_types.go 与环境变量文档 site/content/en/docs/reference/labels-annotations-and-environment-variables.md。

实战一:vLLM 分布式推理集成 ✅

vLLM 是目前最流行的开源推理框架,它通过 Ray 管理分布式运行时。LWS 与 vLLM 的配合方式是:Leader 作为 Ray head 节点并运行 API Server,Worker 作为 Ray worker 节点,由 LWS 负责把整组 Pod 拉起。

官方示例(docs/examples/vllm/GPU/lws.yaml)中,每个副本包含 2 个 Pod(pipeline_parallel_size=2),每个 Pod 占 8 张 GPU(tensor_parallel_size=8),部署 2 个副本,即可跑起 Llama-3.1-405B-Instruct 这样的巨型模型:

command: - "python3 -m vllm.entrypoints.openai.api_server --port 8080 --model meta-llama/Llama-3.1-405B-Instruct --tensor-parallel-size 8 --pipeline_parallel_size 2"

部署后,通过kubectl port-forward svc/vllm-leader 8080:8080即可访问 OpenAI 兼容接口。此外,仓库还提供了TPU 版本(docs/examples/vllm/TPU/lws.yaml),支持 GKE 上的 v5e 切片,一条 YAML 同时覆盖 GPU 与 TPU 两种场景。

实战二:SGLang 多节点部署 ✅

SGLang 以其极致的推理速度著称,是 DeepSeek-R1 等模型的高性能选择。LWS 的集成方式同样优雅——SGLang 原生支持张量并行,配合 LWS 注入的环境变量即可零脚本组网。

以 docs/examples/sglang/lws.yaml 为例,只需在启动参数中引用 LWS 注入的变量:

--dist-init-addr $(LWS_LEADER_ADDRESS):20000 --nnodes $(LWS_GROUP_SIZE) --node-rank $(LWS_WORKER_INDEX)

Leader 运行 HTTP Server(端口 40000),所有 Pod 通过--tp 2跨节点张量并行。实测中,这套方案可轻松扩展到 Llama-3.1-405B 甚至 DeepSeek-R1 671B 级别。唯一需要注意的是:张量并行对节点间带宽要求较高,生产环境建议使用高速互联网络。⚠️

实战三:TensorRT-LLM 集成 ✅

TensorRT-LLM 是 NVIDIA 官方的高性能推理引擎,通过MPI管理分布式运行时。LWS 集成 TensorRT-LLM 的步骤稍多但同样清晰:

  1. 构建镜像:使用仓库提供的 Dockerfile 构建 Triton TensorRT-LLM 镜像;
  2. 创建 RBAC:MPI 脚本需要访问 kubectl 判断 Worker 就绪状态,先应用 docs/examples/tensorrt-llm/rbac.yaml;
  3. 部署 LWS:应用 docs/examples/tensorrt-llm/lws.yaml,每个副本 2 个 Pod(流水线并行=2),每 Pod 8 张 GPU(张量并行=8),Leader 通过 ClusterIP Service 暴露 8000 端口。

部署完成后,即可通过 Triton 的/v2/models/ensemble/generate接口发起推理请求,把复杂的 MPI 组网完全交给 LWS 托管。

实战四:NVIDIA NIM 集成 ✅

NVIDIA NIM 是 NVIDIA 推出的企业级模型推理微服务方案。值得注意的是,NVIDIA 官方明确推荐使用 LeaderWorkerSet 来部署多节点 NIM 模型——这是 LWS 生态获得顶级厂商背书的标志。

借助 LWS,NIM 的多节点部署可以直接复用 vLLM/SGLang 类似的 Leader-Worker 模式:Leader 承载 NIM 推理端点,Worker 参与张量并行,整体由 LWS 统一编排生命周期,让企业级推理服务在 Kubernetes 上获得与开源框架一致的一致性体验。

生态扩展:调度、HPA 与更多能力 🌐

除了推理框架集成,LWS 生态还在不断壮大:

  • Gang Scheduling(同组调度):配合 Volcano 调度器(docs/examples/gang-scheduling/),保证一组 Pod 要么全部调度成功、要么全部等待,避免资源浪费:

  • HPA 弹性伸缩:LeaderWorkerSet 支持 HorizontalPodAutoscaler,按副本组为单位自动扩缩容,参考 docs/examples/horizontal-pod-autoscaler.yaml;
  • DisaggregatedSet:面向 Prefill/Decode 分离架构的下一代 API(api/disaggregatedset/v1/),进一步优化长上下文推理成本;
  • 滚动更新与故障恢复:支持RecreateGroupOnPodRestart等重启策略,组内任意 Pod 异常即整组重建,保证分布式状态的一致性。

快速上手:3 步开始 🚀

想亲自体验?克隆官方仓库即可获得全部示例:

git clone https://gitcode.com/gh_mirrors/lws2/lws

然后参考 docs/examples/lws.yaml 部署一个最小示例,再按上面的四大实战逐个替换为 vLLM、SGLang、TensorRT-LLM 或 NIM 的 YAML 文件即可。

总结

LeaderWorkerSet 用「一组 Pod 一个复制单元」的极简抽象,统一了 vLLM、SGLang、TensorRT-LLM 与 NVIDIA NIM 的分布式推理编排方式。无论你是刚接触 Kubernetes 推理的新手,还是负责大规模 LLM 服务的平台工程师,LWS 都能大幅降低多节点部署的复杂度。生态全景已就绪,剩下的,就是动手部署你的第一个分布式推理服务了!🎯

【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lws

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4123627.html

相关文章:

  • 2026小程序制作平台有哪些?主流实用搭建平台全面整理!
  • Tauri Tutorial Markdown 编辑器开发:Monaco Editor + markdown-it 打造 MdHub
  • MediaBrowser 常见问题避坑指南:开发者最常踩的 8 个坑及解决方案
  • storageless完整API速查:Configuration与SessionInterface核心方法详解
  • 雨雾、夜间复杂工况下机旅客实时三维定位与轨迹生成,筑牢机场边检管控第一环
  • JDK-21虚拟线程使用
  • Cortex-M3-STM32F1 开发:(四十六)ADC 实例 4 :单通道 ADC 过采样实例,使用 DMA,两种编程方式
  • 收藏夹里500个“稍后再看“吃灰?这款免费AI视频总结工具帮你3分钟榨干B站课程
  • gruf 健康检查集成:接入官方 gRPC 健康检查协议,让 Ruby 微服务秒过探针
  • S-mall-ssm 订单状态机设计:5种状态如何驱动电商订单的完整生命周期?
  • 你的macOS菜单栏为什么总是乱成一团?这个叫Ice的菜单栏管理工具给出了答案
  • 老Mac免费吃上macOS Sequoia:OpenCore Legacy Patcher从零到上手完整指南
  • 磁盘空间告急怎么办?免费开源Czkawka的14个清理工具,帮你找出重复文件、相似图片和空文件夹
  • 深入源码:THCalendarDatePicker 日历网格布局算法是如何工作的?
  • 老款Mac焕新三步走:用OpenCore Legacy Patcher免费升级最新macOS完整指南
  • DesktopAssistant打包发布实战:生成Windows安装程序与deb包的完整步骤
  • ZCode与DeepSeek集成指南:打造本地AI编程助手
  • Dtims CPB4612-LF 控制板
  • 对比评测:GifHub vs 其他 GitHub GIF 插件,谁才是评论区动图之王?
  • TypeScript-New-Handbook 新手教程:10 分钟理解静态类型检查的核心理念
  • TypeScript-New-Handbook 完全指南:微软官方 TypeScript 新手册,一篇读懂全貌
  • 磁盘清理工具免费推荐:开源 Czkawka,把重复文件与相似图片一次清干净
  • THCalendarDatePicker 手势交互揭秘:滑动切换月份与年份的 5 个实现细节
  • 基于SpringBoot+Vue的个性化音乐平台网站(源码+讲解视频+LW)
  • obs-shaderfilter扩展像素功能解析:轻松实现投影与边框的渲染技巧
  • 【软考信息安全】密码学考点“涮“明白!5张美食思维导图带你一锅端
  • 给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档
  • ECC 智能体钩子系统架构解析:如何为 AI 编码 Agent 装上“会记忆、能拦截、可审计“的行为护栏
  • 洛雪音乐音源怎么装最省心?免费无损音源合集实测导入指南
  • 免费通用设计字体 Morisawa BIZ UDGothic 上手教程:三步搞定下载、安装与排版