Skip to main content
Version: v25.09

AI推理集成部署

特性介绍

AI推理集成部署是一个专为云原生环境下AI推理服务优化所设计的端到端集成部署方案。该方案基于Helm Chart将智能路由(hermes-router)、高性能推理后端(Inference Backend)、全局KV Cache管理(cache-indexer)三大AI推理加速模块无缝集成,提供完整的AI推理加速组件的部署链路,从请求接入到推理执行,再到资源管理,实现一站式部署体验。

应用场景

  • 传统聚合推理架构部署:支持基于vLLM的聚合推理模式,适用于中小规模推理场景。
  • Prefill-Decode分离推理架构部署:支持Prefill和Decode阶段分离的xPyD高性能推理架构,适用于大规模推理场景。

能力范围

  • 基于KV Aware感知、GPU缓存使用率、请求等待队列长度三个维度的负载均衡算法,实现端到端的推理请求调度。
  • 支持用户配置智能路由的路由策略。
  • 支持聚合模式和xPyD分离模式推理引擎。
  • 支持用户配置推理引擎PD分离模式与xPyD的推理引擎节点数量。
  • 拥有分布式KV Cache元数据管理,提供全局推理节点的KV Cache感知能力。
  • 适配华为昇腾910B4芯片的推理加速。
  • 支持用户配置推理芯片。
  • 支持以Helm形式在K8s环境一键部署推理集群。

亮点特征

  • KV-Aware路由策略:相比传统负载均衡,通过感知全局推理节点的KV Cache状态实现更智能的请求路由,减少不必要的重复KV Cache计算。
  • Prefill-Decode分离架构:支持业界先进的PD分离架构,大幅提升大模型推理吞吐量。
  • vLLM Mooncake集成:vLLM v1架构集成Mooncake分布式KV Cache管理系统,实现跨实例的KV Cache高速传输。
  • 一键部署:通过Helm Chart实现三大组件在K8s环境一键式集成部署。

实现原理

PD聚合模式

图1 PD聚合模式AI推理集成部署图

PD聚合模式AI推理集成部署架构图

  • hermes-router:智能路由模块。负责接收用户请求并根据路由策略转发到最优的推理后端服务。
  • cache-indexer:KV Cache全局管理器,为路由决策提供数据支持。
  • Inference Backend:推理后端模块,基于vLLM提供高性能大模型推理服务,由1个Proxy Server Service和n个vLLM推理引擎实例组成。
  • Proxy Server Service:推理后端服务的流量入口。
  • vLLM:vLLM推理引擎实例。

组件初始化流程

  • 智能路由:

    1. 智能路由读取配置。
    2. 启动推理后端服务发现模块(周期性更新后端列表)。
    3. 启动推理后端指标收集模块(周期性更新后端负载指标)。
  • 推理后端:

    1. 根据配置启动vLLM推理引擎实例。
    2. vLLM推理引擎实例绑定硬件设备,加载模型。
  • 全局KV Cache管理器:

    1. 根据配置启动cache-indexer实例。
    2. 启动推理引擎实例自动发现模块(周期性更新推理实例列表)。

请求流程

  1. 请求接入:用户请求首先到达hermes-router。
  2. KV Cache查询:hermes-router向cache-indexer查询该请求在集群中的前缀命中信息。
  3. 路由决策:基于KV Cache命中情况、GPU利用率等指标选择最优推理后端服务。
  4. 请求转发:将请求转发到选定的推理后端服务。
  5. 推理执行:vLLM推理引擎执行计算。
  6. 结果返回:vLLM推理引擎生成请求结果后返回hermes-router,随后返回客户端。
  7. 全局KV Cache管理异步更新:Prefill推理引擎在预填充过程中生产KV Event,cache-indexer订阅该KV Event并实时更新全局KV Cache元数据。

PD分离模式

图2 PD分离模式AI推理集成部署图

PD分离模式AI推理集成部署架构图

  • hermes-router:智能路由模块。负责接收用户请求并根据路由策略转发到最优的推理后端服务。
  • cache-indexer:KV Cache全局管理器,为路由决策提供数据支持。
  • Inference Backend:推理后端模块,基于vLLM提供高性能大模型推理服务,由1个Proxy Server Service,1个Proxy Server实例,n个vLLM Prefill推理引擎实例和n个vLLM Decode推理引擎实例组成。
  • Proxy Server Service:推理后端服务的流量入口。
  • Proxy Server:二层路由转发组件。负责每个推理后端服务内的负载均衡路由。
  • vLLM:vLLM推理引擎实例。
  • Mooncake Connector:负责PD实例之间的KV Cache P2P高速传输。

组件初始化流程

  • 智能路由:

    1. 智能路由读取配置。
    2. 启动推理后端服务发现模块(周期性更新后端列表)。
    3. 启动推理后端指标收集模块(周期性更新后端负载指标)。
  • 推理后端:

    1. 根据配置启动vLLM推理引擎实例。
    2. vLLM推理引擎实例绑定硬件设备,加载模型。
    3. Prefill推理引擎实例与Decode推理引擎实例与对方所暴露的KV connector端口建立连接。
    4. Proxy Server组件启动,开始对推理引擎实例自动发现(周期性更新推理引擎实例列表)。
  • 全局KV Cache管理器:

    1. 根据配置启动cache-indexer实例。
    2. 启动推理引擎实例自动发现模块(周期性更新推理实例列表)。

请求流程

  1. 请求接入:用户请求首先到达hermes-router。
  2. KV Cache查询:Router向cache-indexer查询该请求在集群中的前缀命中信息。
  3. 路由决策:基于KV Cache命中情况、GPU利用率等指标选择最优推理后端服务。
  4. 请求转发:将请求转发到选定的推理后端服务。
  5. 二层路由:在推理后端服务内Proxy Server将推理请求根据负载均衡策略二次转发到的负载最小的Prefill推理引擎。
  6. 预填充阶段执行:Prefill推理引擎执行计算并将结果返回Proxy Server。Prefill推理引擎更新KV Cache状态并发出KV Event。
  7. 解码阶段执行:Proxy Server根据负载均衡策略二次转发到的负载最小的Decode推理引擎。Decode推理引擎与先前的Prefill推理引擎建立连接并开始解码。
  8. 结果返回:Decode推理引擎生成请求结果后返回Proxy Server,随后通过Router返回客户端。
  9. 全局KV Cache管理异步更新:Prefill推理引擎在预填充过程中生产的KV Event,cache-indexer订阅该KV Event并实时更新全局KV Cache元数据。

与相关特性的关系

  • 智能路由hermes-router组件依赖推理引擎(如vLLM)提供推理服务及指标接口。
  • KV Cache全局管理器cache-indexer组件依赖推理引擎(如vLLM)提供KV Cache存储、移除事件。

相关实例

示例参考:values.yaml

安装

前提条件

硬件要求

  • 每个推理节点至少一张推理芯片。
  • 每个推理节点至少16GB内存,4CPU核。

软件要求

  • Kubernetes v1.33.0及以上版本。

网络要求

  • 能够访问镜像仓库:oci://cr.openfuyao.cn。

权限要求

  • 用户具备创建RBAC资源的权限。

开始安装

独立部署

本特性有以下两种途径独立部署:

  • 从openFuyao官方镜像仓库获取项目安装包。
  1. 拉取项目安装包。

    helm pull oci://cr.openfuyao.cn/charts/ai-inference-integration:xxx

    其中xxx需替换为具体项目安装包版本,如0.0.0-latest。拉取得到的安装包为压缩包形式。

  2. 解压安装包。

    tar -xzvf ai-inference-integration
  3. 安装部署。

    以release名称a3i和命名空间ai-inference为例,在ai-inference-integration同级目录下执行如下命令:

    helm install -n ai-inference a3i ./ai-inference-integration
  • 从openFuyao GitCode仓库获取:
  1. 从仓库拉取项目。

    git clone https://gitcode.com/openFuyao/ai-inference-integration.git
  2. 安装部署。

    以release名称a3i和命名空间ai-inference为例,在ai-inference-integration同级目录下执行如下命令:

    cd ai-inference-integration/charts/ai-inference-integration
    helm dependency build
    helm install -n ai-inference a3i .

配置AI推理集成部署

前提条件

  • 已获取ai-inference-integration项目文件。
  • ai-inference-integration包含的组件尚未安装部署:hermes-router、Inference Backend、cache-indexer。

操作步骤

  1. 准备values.yaml配置文件。

    用户参考开始安装章节找到values.yaml配置文件。

  2. 配置智能路由参数。

    配置路由策略

    • hermes-router.app.strategy:配置路由策略,支持KV Cache Aware策略和轮询策略。若选择kv-aware策略,请配置hermes-router.app.collector.kvmanager,并将cache-indexer组件开启使用。

    配置路由后端服务发现

    • hermes-router.app.discovery.labelSelector.app:对推理后端的自动服务发现的K8s Service资源标签。该标签在inference-backend.service.label配置。示例:若推理后端K8s Service资源标签配置为vllm,则该属性配置为app:vllm
    • hermes-router.app.discovery.interval:对推理后端的自动服务发现间隔(单位:秒)。

    配置路由后端推理服务指标发现

    • hermes-router.app.collector.type:指标收集类型,当前仅支持vllm
    • hermes-router.app.collector.interval:指标刷新间隔(单位:秒),定期采集后端服务指标。
    • hermes-router.app.collector.timeout:指标收集超时时间(单位:秒)。
    • hermes-router.app.collector.metrics:需要收集的指标列表。例如GPU缓存使用率。vllm:gpu_cache_usage_perc

    配置路由cache-indexer组件发现

    • hermes-router.app.collector.kvmanager.url:KV Cache全局管理器的服务地址。在K8s中可以通过Service名称的方式来代替ip地址,例如url:"http://cache-index-service"。KV Cache全局管理器的Service名称可以在cache-indexer.service.name配置。
    • hermes-router.app.collector.kvmanager.port:KV Cache全局管理器的端口。KV Cache全局管理器的端口可以在cache-indexer.service.port配置。
    • hermes-router.app.collector.kvmanager.matchPath:KV Cache全局管理器的KV Aware接口。
    • hermes-router.app.collector.kvmanager.timeout:访问KV Cache全局管理器的超时时间(单位:秒)。

    配置路由镜像拉取

    • hermes-router.image.repository:智能路由镜像地址。
    • hermes-router.image.tag:智能路由镜像标签。
    • hermes-router.image.pullPolicy:智能路由镜像拉取策略。
  3. 配置推理后端参数。

    配置推理后端基础开关

    • inference-backend.replicaCount:推理后端服务个数。每个推理后端服务包含多个推理引擎实例。
    • inference-backend.isPDAggregated:推理引擎是否采用PD分离架构。当前只支持所有推理引擎都采用PD聚合模式或者PD分离模式,不支持混合部署。

    配置推理后端模型

    • inference-backend.app.model:推理引擎使用的模型地址。

    配置推理后端K8s服务

    • inference-backend.service.label:每个推理后端的K8s Service资源的标签。

    配置聚合模式下推理引擎

    • inference-backend.app.aggregated.replicaAmount:每个推理后端服务中推理引擎实例的个数。
    • inference-backend.app.aggregated.vllmBasePort:推理引擎实例的HTTP API端口。
    • inference-backend.app.aggregated.tensorParallelism:推理引擎实例的张量并行数量。
    • inference-backend.app.aggregated.dataParallelism:推理引擎实例的数据并行数量。

    配置PD分离模式下推理引擎

    • inference-backend.app.disaggregated.kvConnector:推理引擎所使用的KV Connector名称。
    • inference-backend.app.disaggregated.kvConnectorModulePath:推理引擎所使用的KV Connector包路径。
    • inference-backend.app.disaggregated.proxyServer.basePort:每个推理后端服务中的二层路由服务的HTTP API接口。
    • inference-backend.app.disaggregated.proxyServer.discovery.interval:对推理引擎的自动服务发现时间间隔(单位:秒)。
    • inference-backend.app.disaggregated.prefill.replicaAmount:每个推理后端服务中Prefill推理引擎实例的个数。
    • inference-backend.app.disaggregated.prefill.vllmBasePort:Prefill推理引擎实例的HTTP API端口。
    • inference-backend.app.disaggregated.prefill.connectorBasePort:Prefill推理引擎实例的KV Cache Connector通信端口。
    • inference-backend.app.disaggregated.prefill.tensorParallelism:Prefill推理引擎实例的张量并行数量。
    • inference-backend.app.disaggregated.prefill.dataParallelism:Prefill推理引擎实例的数据并行数量。
    • inference-backend.app.disaggregated.decode.replicaAmount:每个推理后端服务中Decode推理引擎实例的个数。
    • inference-backend.app.disaggregated.decode.vllmBasePort:Decode推理引擎实例的HTTP API端口。
    • inference-backend.app.disaggregated.decode.connectorBasePort:Decode推理引擎实例的KV Cache Connector通信端口。
    • inference-backend.app.disaggregated.decode.tensorParallelism:Decode推理引擎实例的张量并行数量。
    • inference-backend.app.disaggregated.decode.dataParallelism:Decode推理引擎实例的数据并行数量。

    配置聚合模式下推理引擎资源

    • inference-backend.resources.aggregated.limits.deviceName:推理引擎的K8s资源限制上限的AI推理芯片名称。具体芯片使用数量为dataParallelism * tensorParallelism。示例:deviceName: "huawei.com/Ascend910"
    • inference-backend.resources.aggregated.requests.deviceName:推理引擎的K8s资源申请的AI推理芯片名称。示例:deviceName: "huawei.com/Ascend910"

    配置PD分离模式下推理引擎

    • inference-backend.resources.disaggregated.prefill.limits.deviceName:Prefill推理引擎的K8s资源限制上限的AI推理芯片名称。示例:deviceName: "huawei.com/Ascend910"
    • inference-backend.resources.disaggregated.prefill.requests.deviceName:Prefill推理引擎的K8s资源申请的AI推理芯片名称。示例:deviceName: "huawei.com/Ascend910"
    • inference-backend.resources.disaggregated.decode.limits.deviceName:Decode推理引擎的K8s资源限制上限的AI推理芯片名称。示例:deviceName: "huawei.com/Ascend910"
    • inference-backend.resources.disaggregated.decode.requests.deviceName:Decode推理引擎的K8s资源申请的AI推理芯片名称。示例:deviceName: "huawei.com/Ascend910"

    配置推理后端镜像拉取

    • inference-backend.aggregated.image.repository:聚合模式推理后端镜像地址。
    • inference-backend.aggregated.image.tag:聚合模式推理后端镜像标签。
    • inference-backend.aggregated.image.pullPolicy:聚合模式推理后端镜像拉取策略。
    • inference-backend.disaggregated.image.repository:分离模式推理后端镜像地址。
    • inference-backend.disaggregated.image.tag:分离模式推理后端镜像标签。
    • inference-backend.disaggregated.image.pullPolicy:分离模式推理后端镜像拉取策略。
  4. 配置KV Cache全局管理器参数。

    配置KV Cache全局管理器的推理后端服务发现

    • cache-indexer.app.serviceDiscovery.labelSelector:对推理后端的自动服务发现的K8s Service资源标签。该标签在inference-backend.service.label配置。示例:若推理后端K8s Service资源标签配置为vllm,则该属性配置为labelSelector: "app=vllm"
    • cache-indexer.app.serviceDiscovery.refreshInterval:对推理后端的自动服务发现时间间隔(单位:秒)。

    配置KV Cache全局管理器的K8s服务

    • cache-indexer.service.name:cache-indexer的K8s Service名称。
    • cache-indexer.service.port:cache-indexer的K8s Service端口。

    配置KV Cache全局管理器镜像拉取

    • cache-indexer.image.repository:cache-indexer镜像地址。
    • cache-indexer.image.tag:cache-indexer镜像标签。
    • cache-indexer.image.pullPolicy:cache-indexer镜像拉取策略。
  5. 应用配置

    用户参考安装章节部署以应用配置。

使用AI推理

前提条件

硬件要求

  • 每个推理节点至少一张推理芯片。
  • 每个推理节点至少16GB内存,4 CPU核。

软件要求

  • Kubernetes v1.33.0及以上版本。
  • 已经安装ai-inference-integration包含的组件:hermes-router、inference-backend、cache-indexer。

网络要求

  • 能够访问镜像仓库:oci://cr.openfuyao.cn。
  • 使用HCCL跨机高速通信传输时需要有RDMA设备支持。

背景信息

无。

使用限制

  • 暂不支持请求认证等网关能力,需避免服务入口暴露给无关用户。
  • 当前仅支持vLLM推理引擎。
  • 当前仅支持Mooncake P2P Connector。
  • 当前仅在Ascend910B4推理芯片验证。
  • 当前仅支持AI推理场景,不支持AI训练场景。

操作步骤

  1. 获取服务访问地址。

    1.1 查看hermes-router服务的访问地址:

    kubectl get svc -n ai-inference

    1.2 记录hermes-router的IP地址与端口。hermes-router服务名称为[helm 安装名称]-hermes-router

  2. 发送推理请求(以curl发送请求为例)。

    2.1 发送非流式推理请求:

    curl -X http://[路由服务IP]:[路由服务端口]/rest/hermes-router/v1beta1/v1/chat/completons \
    -H "Content-Type: application/json" \
    -d '{
    "model": "Qwen/Qwen3-8B",
    "messages": [{"role": "user", "content": "请介绍openFuyao开源社区"}],
    "stream": false
    }'

    2.2 发送流式推理请求:

    curl -X http://[路由服务IP]:[路由服务端口]/rest/hermes-router/v1beta1/v1/chat/completons \
    -H "Content-Type: application/json" \
    -d '{
    "model": "Qwen/Qwen3-8B",
    "messages": [{"role": "user", "content": "请介绍openFuyao开源社区"}],
    "stream": true
    }'
  3. 接收推理结果。

    3.1 非流式响应一次性返回完整结果。

    3.2 流式响应逐块返回以data:开头的JSON对象。

相关操作

以release名称a3i和命名空间ai-inference为例:

查看部署状态

helm status a3i -n ai-inference

更新配置

helm upgrade a3i ./charts/ai-inference-integration \
-n ai-inference \
-f custom-values.yaml

卸载系统

helm uninstall a3i -n ai-inference

导出配置

helm get values a3i -n ai-inference > current-values.yaml

扩展推理实例

helm upgrade a3i ./charts/ai-inference-integration \
-n ai-inference \
--set inference-backend.replicaCount=2

FAQ

  1. hermes-router以及Proxy Server初始阶段有错误信息。

    现象描述: 通过查看Pod日志发现最初hermes-router以及Proxy Server有很多报错的请求信息。

    处理步骤: 正常现象。hermes-router在初始化完毕后会定期向Proxy Server发送推理引擎指标查询请求,因推理引擎实例初始化时加载大模型耗时较长,此时指标查询请求无法被正确响应。等待推理引擎实例启动完毕后该问题不会出现。

  2. hermes-router以及cache-indexer无法发现推理服务。

    现象描述: 通过查看Pod日志发现hermes-router以及cache-indexer自动发现推理服务实例时报错。

    处理步骤: 可能因为服务标签选择器配置错误。hermes-router.app.discovery.labelSelector.appcache-indexer.app.serviceDiscovery.labelSelector属性代表hermes-router以及cache-indexer对推理后端K8s Service资源的服务发现配置,需要与inference-backend.service.label属性一致。