AI资讯 / 工程

工程 / 工程

在 Amazon EKS 上用 Ray LLM 容器跨节点部署大模型推理

AWS Machine Learning

AWS 发布面向多节点部署的 Ray LLM 深度学习容器(DLC),允许用户将一个大型语言模型分布在 Amazon EKS 的两个 GPU 节点上运行,同时对外暴露单一 OpenAI 兼容 API 端点。该容器预置了 vLLM 推理引擎、Ray Serve HTTP 服务层、用于节点间 KV 缓存传输的 NIXL 库,以及基于弹性网络适配器(EFA)的高带宽通信栈,所有组件经过统一验证,避免版本漂移问题。核心设计思路是将推理的预填充阶段与解码阶段分别部署在不同 GPU 节点:预填充节点负责并行处理输入提示并构建 KV 缓存,解码节点负责逐 token 生成响应。两个阶段分离后可独立扩展,避免计算密集型的预填充任务阻塞对延迟敏感的解码任务。该方案特别适合 RAG 检索增强生成、文档摘要及智能体应用等场景。

大语言模型推理通常分为两个截然不同的阶段:预填充(Prefill)和解码(Decode)。预填充阶段并行处理整个输入提示,构建键值缓存(KV Cache),属于计算密集型操作;解码阶段则逐 token 生成输出,依赖内存带宽。当两个阶段共享同一 GPU 时,计算资源产生竞争,突发性的预填充任务会干扰对延迟敏感的解码过程,导致整体吞吐量下降。

AWS 多节点 Ray LLM DLC 通过预填充与解码分离(PD Disaggregation)架构解决上述问题。两个阶段分别运行在独立的 GPU 节点上,互不干扰,并可按需独立扩展。预填充节点完成 KV 缓存构建后,通过 NIXL 库将缓存高速传输至解码节点,传输底层依赖 EFA 弹性网络适配器,确保节点间带宽足以支撑缓存迁移而不抵消分离带来的性能收益。

在集群架构层面,整套部署运行在 Amazon EKS 私有子网内,通过 NAT 网关提供出站访问。一个 CPU 系统节点(m7i.xlarge)承载 KubeRay 算子和 Ray 头节点,两个 GPU 工作节点(g6.8xlarge)分别运行预填充和解码服务。所有节点固定在同一可用区,因为 EFA 不支持跨可用区通信。容器镜像从 Amazon ECR 拉取,KubeRay 自动完成头节点与工作节点的连接编排。

Ray LLM DLC 的核心优势在于将完整推理栈打包进一个经过测试的容器镜像,用户无需自行选择兼容的 CUDA 运行时、框架版本和服务层组件,也无需编写自定义处理类或模型归档逻辑。由于 Ray Serve LLM 库内置应用构建器,整个服务应用仅需一段 YAML 配置即可完成声明。核心辅助函数 build_pd_openai_app 接收预填充配置和解码配置,自动完成 KV 缓存传输的连接,并在两者之上暴露统一的 OpenAI 兼容端点。

该方案适用于多种典型生产场景。对于检索增强生成(RAG)应用,长上下文输入的预填充压力可被独立吸收,不影响解码吞吐;文档摘要任务同样受益于预填充节点的独立扩展能力;智能体应用中多轮对话产生的频繁解码请求也可在专属节点上稳定运行。AWS 表示,DLC 的安全补丁在构建时统一应用,后续版本迭代同样保持组件间的兼容性验证,降低生产环境的维护负担。

部署前置条件包括:启用计费的 AWS 账户、目标区域内至少 64 个 vCPU 的 g6.8xlarge 实例配额、已配置凭证的 AWS CLI,以及 kubectl、eksctl、helm 和 envsubst 等工具。完整部署代码已发布在官方配套代码仓库中,用户可直接参考实施。对于已在单节点 Ray Serve DLC 上运行推理服务的团队,迁移至多节点版本主要涉及配置层面的调整,无需重写应用逻辑。

要点

  • AWS 多节点 Ray LLM DLC 将预填充与解码阶段分离至不同 GPU 节点,消除两阶段资源竞争,提升大模型推理吞吐量与延迟表现。
  • 容器预置 vLLM、Ray Serve、NIXL 及 EFA 完整推理栈,所有组件统一验证,用户只需编写 YAML 配置即可完成多节点服务部署,无需手动管理依赖兼容性。
  • 节点间 KV 缓存通过 NIXL 结合 EFA 高带宽网络传输,GPU 节点组须固定在同一可用区以满足 EFA 网络要求。
  • 该架构特别适合 RAG、文档摘要和智能体应用等长上下文或高并发推理场景,预填充与解码节点可按需独立扩展。
查看原始来源

原始标题:Run multi-node inference workloads using Ray LLM Deep Learning Containers

本文由 DataHub 基于公开来源整理,用于信息发现与摘要阅读;具体事实、数据和后续更新以原始来源为准。