Grove编排AI推理实操:30分钟搞定高效部署

2025-11-11AI工具

Image

各位跨境电商的朋友们,大家好!作为一名深耕跨境领域多年的实战专家与资深导师,今天咱们不聊虚的,来点硬核技术干货。大家都知道,AI技术在咱们跨境业务中扮演的角色越来越重要,从智能客服、个性化推荐到供应链优化,哪一个离得开强大的AI算力支撑?

然而,随着AI模型越来越复杂,传统的部署和管理方式已经显得力不从心了。过去,咱们可能只需要跑一个简单的模型,一个容器(Pod)就能搞定。但现在呢?一个AI服务可能由好几个不同功能的模块组成,比如数据预处理、核心推理、结果解码等等。甚至,现在还出现了更高级的“智能体管道”(agentic pipelines),多个AI模型协同工作,完成更复杂的逻辑推理、信息检索或多模态任务。

这种趋势,让咱们的AI部署和运维工作面临了新的挑战:它不再是简单地“复制N个容器”就能解决的问题,而是要“把一群相互协作的组件当作一个完整的智能系统来协调和管理”。这就要求咱们的系统能智能地分配资源、调度容器、了解每个组件的独特需求、按顺序启动它们,甚至还要考虑它们在集群里的物理位置,确保网络传输效率。

说白了,最终目标是实现对整个AI系统的精细化编排和弹性伸缩,而不仅仅是盯着一个个独立的容器。只有这样,咱们的跨境业务才能更顺畅地跑起来,实现更高效的智能化。

为了解决这些痛点,新媒网跨境获悉,英伟达(NVIDIA)最近推出了一个重磅武器——NVIDIA Grove。它作为NVIDIA Dynamo的一个模块化组件,是一个专门为Kubernetes集群上的现代机器学习推理工作负载设计的API接口。Grove目前已经全面开源,大家可以在ai-dynamo/grove的GitHub仓库找到它,这无疑为咱们跨境人构建未来AI应用打下了坚实基础。
数据中心

Grove如何将推理服务“整体化”编排?

Grove的强大之处在于,它能帮你把多节点的推理部署从一个简单的副本,扩展到覆盖整个数据中心、支持成千上万个图形处理器(GPU)的超大规模。通过Grove,你可以在Kubernetes中,把整个推理服务系统(比如预处理、解码、路由等任何组件)定义成一个统一的“自定义资源”(Custom Resource)。

仅仅通过这一个配置,平台就能自动协调分层调度、智能感知拓扑的资源分配、多级别自动伸缩,以及明确的启动顺序。你不再需要费劲地拼凑各种脚本、配置文件或自定义控制器,就能对系统行为实现精确控制。

Grove最初是为了解决多节点、解耦式推理系统的编排难题而生,但它的灵活性足以适应各种实际的推理架构——从传统的单节点聚合推理,到包含多个模型的智能体管道,都能游刃有余。它让开发者能够以简洁、声明式、框架无关的方式,定义复杂的AI栈。

面向相互依赖组件的多级别自动伸缩

现代推理系统需要多层级的自动伸缩能力:比如,当流量高峰来临时,需要单独伸缩某个组件(如预处理工作节点);又或者,一组关联组件(如预处理主节点及其工作节点)需要协同伸缩;再进一步,整个服务副本也需要根据整体容量进行调整。这些层级之间是相互影响的:增加预处理工作节点可能需要更多的解码能力,而新的服务副本则需要保持各组件之间恰当的比例。传统的按容器(Pod)级别自动伸缩的方式,根本无法处理这种复杂的相互依赖关系。

系统级生命周期管理与恢复、滚动更新

系统的恢复和更新,必须针对完整的服务实例进行,而不是单个Kubernetes容器。一个预处理工作节点在重启后,需要能正确地重新连接到它的主节点;滚动更新必须保留网络拓扑结构,以维持低延迟。平台必须将多组件系统视为一个优化的整体操作单元,兼顾性能和可用性。这就像咱们跨境仓库里的物流体系,一个分拣机器人坏了,不能影响整个仓库的正常运转,而且新换上的机器人要能无缝接入。

灵活的分层组调度(Gang Scheduling)

AI工作负载调度器应该支持灵活的组调度,而不仅仅是传统的“全有或全无”的模式。解耦式服务带来了新的挑战:推理系统需要保证核心组件的组合(比如至少一个预处理和解码工作节点),同时又要允许每个组件类型的独立伸缩。挑战在于,预处理和解码组件可能需要根据工作负载模式,以不同的比例进行伸缩。传统的组调度通过强制将所有东西捆绑在一起伸缩,阻碍了这种独立性。系统需要一套策略,既能确保最低限度的可行组件组合,又能实现灵活的伸缩。

拓扑感知调度

组件的物理位置会直接影响性能。例如,在英伟达GB200 NVL72这样的系统上,将相关的预处理和解码容器调度到同一个NVIDIA NVLink域内,能够显著优化KV缓存传输延迟。调度器必须理解物理网络拓扑结构,将相关组件部署在彼此附近,同时将副本分散部署以提高可用性。这就像咱们物流规划,把仓库和配送中心设在最合理的位置,效率自然高。

角色感知编排和明确的启动顺序

不同的组件有不同的职责、配置和启动要求。例如,预处理和解码的主节点执行的启动逻辑与工作节点不同,而工作节点必须在主节点准备就绪后才能启动。平台需要针对特定角色提供配置和依赖项强制执行机制,以确保可靠的初始化。这就像咱们电商团队,美工、运营、客服分工明确,而且客服必须在商品上架、运营推广之后才能提供服务,环环相扣,才能保证整个流程顺畅。

总而言之,新媒网跨境认为,推理团队需要一种简单、声明式的方法来描述他们的系统——包括多个角色、多个节点、清晰的多级别依赖关系——并让系统根据这个描述进行调度、伸缩、自我修复和更新。

Grove的核心要素

高性能推理框架利用Grove的分层API来表达角色特定的逻辑和多级别伸缩,从而在不同的集群环境中实现一致且优化的部署。Grove通过其工作负载API中的三个分层自定义资源来编排多组件AI工作负载。以图1为例,PodClique A代表前端组件,B和C代表预处理主节点和预处理工作节点,D和E代表解码主节点和解码工作节点。
英伟达Grove的关键组件
图1. NVIDIA Grove的关键组件包括PodClique、ScalingGroup和PodCliqueSet,以及它们如何协同工作

PodCliques:代表一组具有特定角色的Kubernetes容器组,比如预处理主节点或工作节点、解码主节点或工作节点,或者一个前端服务。每个PodClique都有独立的配置和伸缩逻辑。

PodCliqueScalingGroups:将紧密耦合的PodCliques捆绑在一起,它们必须一起伸缩,比如预处理主节点和预处理工作节点,它们共同构成了一个模型实例。

PodCliqueSets:定义了整个多组件工作负载,指定了启动顺序、伸缩策略和组调度(gang-scheduling)约束,确保所有组件要么一起启动,要么一起失败。

当需要增加容量进行伸缩时,Grove会创建整个PodGangSet的完整副本,并定义分散部署约束,将这些副本分散到集群中以实现高可用性,同时保持每个副本的组件网络紧密连接,以获得最佳性能。
Grove工作流
图2. Grove工作流

一个启用Grove的Kubernetes集群会融合两个关键组件:Grove操作器(operator)和一个能够理解PodGang资源的调度器,比如KAI调度器(NVIDIA Run:ai平台的一个开源子组件)。

当创建PodCliqueSet资源时,Grove操作器会验证其规范,并自动生成实现它所需的底层Kubernetes对象。这包括构成性的PodCliques、PodCliqueScalingGroups以及相关的容器(pods)、服务(services)、密钥(secrets)和自动伸缩策略。

在此过程中,Grove还会创建PodGang资源,这是调度器API的一部分,它将工作负载定义转化为集群调度器的具体调度约束。每个PodGang都封装了其工作负载的详细要求,包括最小副本保证、优化组件间带宽的网络拓扑偏好以及保持可用性的分散约束。这些共同确保了拓扑感知的部署和集群范围内的有效资源利用。

调度器持续监测PodGang资源,并应用组调度逻辑,确保所有必需的组件要么一起调度,要么在资源可用之前不调度。部署决策会考虑到GPU拓扑感知和集群本地性。

最终结果是多组件AI系统的协调部署,其中预处理服务、解码工作节点和路由组件按照正确的顺序启动,为了性能而紧密地在网络中定位,并作为一个组进行凝聚性恢复。这避免了资源碎片化、不完全部署,并实现了复杂模型服务管道在规模化运行时的稳定高效。

手把手实战:如何使用Dynamo和Grove快速部署AI推理服务?

话不多说,咱们直接上手实战!下面将带领大家,用Dynamo和Grove部署一个带有KV路由器的解耦式推理架构。这个示例将使用Qwen3 0.6B模型,并展示Grove管理分布式推理工作负载的能力,特别是如何分离预处理(prefill)和解码(decode)工作节点。

请注意: 这只是一个基础示例,旨在帮助大家理解核心概念。对于更复杂的部署,请参考ai-dynamo/grove的GitHub仓库。

前期准备

首先,请确保您的Kubernetes集群中具备以下组件:

  • 支持GPU的Kubernetes集群
  • 已配置可访问您集群的kubectl命令行工具
  • 已安装Helm CLI
  • 一个Hugging Face令牌密钥(在代码中引用为hf-token-secret),可以通过以下命令创建:
kubectl create secret generic hf-token-secret \
 --from-literal=HF_TOKEN=<insert_huggingface_token>

请务必注意: 在代码中,请将<insert_huggingface_token>替换为您的实际Hugging Face令牌。跨境业务数据安全无小事,大家务必重视,切勿将此令牌提交到源代码管理中!

第一步:先给咱们的项目开辟一片专属空间

kubectl create namespace vllm-v1-disagg-router

第二步:部署核心组件,让Grove这位“大管家”就位

# 1. 设置环境变量
export NAMESPACE=vllm-v1-disagg-router
export RELEASE_VERSION=0.5.1

# 2. 安装CRDs (自定义资源定义)
helm fetch https://helm.ngc.nvidia.com/nvidia/ai-dynamo/charts/dynamo-crds-${RELEASE_VERSION}.tgz
helm install dynamo-crds dynamo-crds-${RELEASE_VERSION}.tgz --namespace default

# 3. 安装Dynamo操作器和Grove
helm fetch https://helm.ngc.nvidia.com/nvidia/ai-dynamo/charts/dynamo-platform-${RELEASE_VERSION}.tgz
helm install dynamo-platform dynamo-platform-${RELEASE_VERSION}.tgz --namespace ${NAMESPACE} --create-namespace --set "grove.enabled=true"

第三步:检查“大管家”是否已到位并准备就绪

kubectl get crd | grep grove

预期输出(如果一切正常,您会看到以下内容):

podcliques.grove.io
podcliquescalinggroups.grove.io
podcliquesets.grove.io
podgangs.scheduler.grove.io
podgangsets.grove.io

第四步:定义咱们的AI服务蓝图——DynamoGraphDeployment配置

创建一个DynamoGraphDeployment的清单文件,它将定义一个解耦式服务架构,包含一个前端、两个解码工作节点和一个预处理工作节点:

apiVersion: nvidia.com/v1alpha1
kind: DynamoGraphDeployment
metadata:
  name: dynamo-grove
spec:
  services:
    Frontend:
      dynamoNamespace: vllm-v1-disagg-router
      componentType: frontend
      replicas: 1
      extraPodSpec:
        mainContainer:
          image: nvcr.io/nvidia/ai-dynamo/vllm-runtime:0.5.1
          envs:
            - name: DYN_ROUTER_MODE
              value: kv
    VllmDecodeWorker:
      dynamoNamespace: vllm-v1-disagg-router
      envFromSecret: hf-token-secret
      componentType: worker
      replicas: 2
      resources:
        limits:
          gpu: "1"
      extraPodSpec:
        mainContainer:
          image: nvcr.io/nvidia/ai-dynamo/vllm-runtime:0.5.1
          workingDir: /workspace/components/backends/vllm
          command:
            - python3
            - -m
            - dynamo.vllm
          args:
            - --model
            - Qwen/Qwen3-0.6B
    VllmPrefillWorker:
      dynamoNamespace: vllm-v1-disagg-router
      envFromSecret: hf-token-secret
      componentType: worker
      replicas: 1
      resources:
        limits:
          gpu: "1"
      extraPodSpec:
        mainContainer:
          image: nvcr.io/nvidia/ai-dynamo/vllm-runtime:0.5.1
          workingDir: /workspace/components/backends/vllm
          command:
            - python3
            - -m
            - dynamo.vllm
          args:
            - --model
            - Qwen/Qwen3-0.6B
            - --is-prefill-worker

第五步:启动部署,让蓝图变为现实

将上面定义的配置保存为dynamo-grove.yaml文件,然后执行:

kubectl apply -f dynamo-grove.yaml

第六步:验证成果,看看我们的AI服务跑起来了没

检查操作器和Grove的容器(Pod)是否已成功创建:

kubectl get pods -n ${NAMESPACE}

预期输出(您会看到类似下面的内容,表明各组件正在运行):

NAME                                                        READY   STATUS    RESTARTS   AGE
dynamo-grove-0-frontend-w2xxl                               1/1     Running   0          10m
dynamo-grove-0-vllmdecodeworker-57ghl                        1/1     Running   0          10m
dynamo-grove-0-vllmdecodeworker-drgv4                        1/1     Running   0          10m
dynamo-grove-0-vllmprefillworker-27hhn                       1/1     Running   0          10m
dynamo-platform-dynamo-operator-controller-manager-7774744kckrr   2/2     Running   0          10m
dynamo-platform-etcd-0                                      1/1     Running   0          10m
dynamo-platform-nats-0                                      2/2     Running   0          10m

第七步:最终测试,确保一切正常工作

首先,将前端服务端口转发到本地:

kubectl port-forward svc/dynamo-grove-frontend 8000:8000 -n ${NAMESPACE}

然后,测试一下API接口:

curl http://localhost:8000/v1/models

(可选操作)您还可以检查PodClique资源,看看Grove是如何将容器分组并进行副本计数的:

kubectl get podclique dynamo-grove-0-vllmdecodeworker -n vllm-v1-disagg-router -o yaml

准备好探索更多了吗?

NVIDIA Grove已全面开源,你可以在ai-dynamo/grove的GitHub仓库找到它。我们诚挚邀请您在自己的Kubernetes环境中尝试Grove——无论是作为Dynamo的一部分,还是作为一个独立的组件,亦或是与高性能AI推理引擎结合使用。别忘了查阅Grove部署指南,并在GitHub或外媒Discord社区提出问题。如果您有机会去美国亚特兰大的KubeCon 2025大会,也欢迎前往英伟达753号展位,亲身体验Grove的魅力。我们欢迎社区的任何贡献、拉取请求和反馈。

想要了解更多,这些资料值得你细细研读:

  • Grove推理办公时间记录(Inference Office Hour Recording with Grove)
  • NVIDIA/KAI-Scheduler GitHub仓库
  • KAI调度器概念介绍(Introduction to KAI Scheduler Concepts)
  • 如何利用NVIDIA Dynamo简化数据中心规模的AI推理(How to Simplify AI Inference at Data Center Scale with NVIDIA Dynamo)

特别鸣谢

NVIDIA Grove项目特别感谢所有为项目发展做出宝贵贡献的开源开发者、测试人员和社区成员,特别是SAP团队的Madhav Bhargava、Saketh Kalaga和Frank Heine,他们的卓越贡献和支持是项目不可或缺的一部分。开源精神的核心正是协作——感谢各位成为Grove大家庭的一员。


新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。

本文来源:新媒网 https://nmedialink.com/posts/grove-ai-inference-orchestration-30min-deploy.html

评论(0)

暂无评论,快来抢沙发~
英伟达推出NVIDIA Grove,一款为Kubernetes集群上的现代机器学习推理工作负载设计的开源API接口。Grove能将多节点推理部署扩展到覆盖整个数据中心,实现对整个AI系统的精细化编排和弹性伸缩,解决跨境电商AI部署和运维痛点。
发布于 2025-11-11
查看人数 170
人民币汇率走势
CNY
亚马逊热销榜
共 0 SKU 上次更新 NaN:NaN:NaN
类目: 切换分类
暂无数据
暂无数据
关注我们
新媒网跨境发布
本站原创内容版权归作者及NMedia共同所有,未经许可,禁止以任何形式转载。