版本:v25.12

AI推理集成部署

特性介绍

AI推理集成部署(InferNex)是一个专为云原生环境下AI推理服务优化所设计的端到端集成部署方案。该方案基于Kubernetes官方项目Gateway API Inference Extension (GIE) 和主流LLM技术栈构建,通过Helm Chart将智能路由、高性能推理后端、全局KVCache管理及推理可观测体系等核心加速模块无缝集成。它提供从请求接入、动态路由、推理执行到资源管理与监控的完整加速链路,旨在提升推理吞吐量并降低时延,实现一站式的高效AI服务部署体验。

应用场景

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

能力范围

  • 基于KV Aware感知、GPU缓存使用率、请求等待队列长度等多个维度的负载均衡算法,实现端到端的推理请求调度。
  • 支持兼容Gateway API和Gateway API Inference Extension标准的开源网关(如Istio等),集成流量管理、服务发现、安全认证、可观测性、限流熔断等核心能力。
  • 支持用户配置智能路由的路由策略,实现KV-Aware,分桶调度等高级路由功能。
  • 支持聚合模式和xPyD分离模式推理引擎。
  • 支持用户配置推理引擎PD分离模式与xPyD的推理引擎节点数量。
  • 拥有分布式KVCache元数据管理,提供全局推理节点的KVCache感知能力。
  • 适配华为昇腾910B4芯片的推理加速。
  • 支持用户配置推理芯片。
  • 实现从推理请求到底层硬件的全链路指标可观测,覆盖业务运行态、系统运行态与硬件健康态的多层指标采集与观测能力。
    • 业务运行态:请求队列长度、请求延迟、吞吐率等。
    • 系统运行态:CPU、内存、容器运行状态等。
    • 硬件健康态:NPU/GPU 温度、功耗、错误码等。
  • 提供独立的硬件健康诊断模块,周期性采集NPU/GPU温度、功耗、错误码等底层指标,并通过NATS实时上报。诊断模块订阅并分析采集数据,结合设备型号、驱动与固件信息,基于阈值规则与异常指标分析,识别典型故障模式并输出诊断结论与处置建议,实现从数据采集到健康评估的闭环。
  • 提供SLA相关指标(如吞吐率、延迟等),用于支撑推理服务的自动扩缩容决策,实现基于负载与性能的弹性伸缩。
  • 支持以Helm形式在K8s环境一键部署推理集群。

亮点特征

  • 开源网关能力集成: 兼容主流开源网关(如Istio等),集成流量管理、服务发现、安全认证等核心能力。
  • KV-Aware路由策略:相比传统负载均衡,通过感知全局推理节点的KVCache状态实现更智能的请求路由,减少不必要的重复KVCache计算。
  • Prefill-Decode分离架构:支持业界先进的PD分离架构,大幅提升大模型推理吞吐量。
  • PD-Bucket路由策略:PD分离架构下的分桶调度策略,在长短请求、中高并发场景提升推理吞吐量。
  • vLLM Mooncake集成:vLLM v1架构集成Mooncake分布式KVCache管理系统,实现跨实例的KVCache高速传输。
  • 秒级指标推送:集成NATS分布式消息队列系统,实现高效的秒级指标推送。采集模块在获取硬件健康数据后,立即通过NATS将数据推送至诊断模块。该机制确保诊断模块能够快速接收到最新状态信息,进行及时的异常检测和故障分析。
  • 一键部署:通过Helm Chart实现三大组件在K8s环境一键式集成部署。

实现原理

PD聚合模式

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

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

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

组件初始化流程

  • 智能路由:

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

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

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

请求流程

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

PD分离模式

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

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

  • hermes-router:智能路由模块。负责接收用户请求并根据路由策略转发到最优的推理后端服务。
  • cache-indexer:KVCache全局管理器,为路由决策提供数据支持。
  • 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实例之间的KVCache P2P高速传输。

组件初始化流程

  • 智能路由:

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

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

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

请求流程

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

AI推理可观测

实现原理请参见《AI推理鹰眼》

与相关特性的关系

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

相关实例

示例参考:values.yaml

安装

前提条件

硬件要求

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

软件要求

  • Kubernetes v1.33.0及以上版本。

网络要求

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

权限要求

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

开始安装

独立部署

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

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

    bash
    helm pull oci://cr.openfuyao.cn/charts/infernex --version xxx

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

  2. 解压安装包。

    bash
    tar -xzvf infernex-xxx.tgz

    其中xxx需替换为具体项目安装包版本,如0.20.0

  3. 安装部署。

    以release名称infernex为例,执行安装前请确保:

    • 集群已创建命名空间istio-system(Istio Gateway资源必须部署在此命名空间)。
    • 集群已创建values.yamlglobal.namespace配置项指定的命名空间。其他组件(如inference-backend、hermes-router、cache-indexer等)的命名空间可通过values.yaml中的global.namespace配置项进行设置,默认值为ai-inference

    infernex同级目录下执行如下命令:

    bash
    helm install -n istio-system infernex ./infernex
  • 从openFuyao GitCode仓库获取:
  1. 从仓库拉取项目。

    bash
    git clone https://gitcode.com/openFuyao/InferNex.git
  2. 安装部署。

    以release名称infernex为例, helm安装时由于集成开源网关istio,需要指定命名空间istio-system,其他组件的命名空间设定可在values.yaml中的global.namespace进行配置。在InferNex同级目录下执行如下命令:

    bash
    cd InferNex/charts/infernex
    helm dependency build
    helm install -n istio-system infernex .

配置AI推理集成部署

前提条件

  • 已获取InferNex项目文件。
  • InferNex会一键部署Istio网关,需要确保环境没有冲突。
  • InferNex包含的组件在目标命名空间尚未安装部署:hermes-router、Inference Backend、cache-indexer、eagle-eye。

操作步骤

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

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

  2. 配置全局配置

    • global.name:Inferencepool资源的名称,必须与hermes-router.httpRoute.backend.name保持一致, 如果 global.namevllm-qwen-qwen3-8b,则hermes-router.httpRoute.backend.name也必须为 vllm-qwen-qwen3-8b
    • global.namespace: 指定所有应用组件(包括inference-backend、hermes-router、cache-indexer等)部署的目标Kubernetes命名空间,默认值为ai-inference
    • global.image: 定义所有inference-backend服务实例的默认容器镜像配置。
    • global.env: 定义所有inference-backend服务实例的默认环境变量,这些环境变量会被注入到所有vLLM容器中。
    • global.cachePath: 指定主机上存储HuggingFace模型缓存的路径,该路径会通过hostPath方式挂载到所有inference-backend容器的/root/.cache目录。
  3. 配置智能路由参数。

    配置网关参数

    • inferenceGateway.name:Gateway资源的名称,必须与hermes-router.httpRoute.parentRef.name保持一致
    • inferenceGateway.className:Gateway类名称,使用"istio"表示由Istio控制平面管理。
    • inferenceGateway.annotations
      • networking.istio.io/service-type: "NodePort":指定Istio Gateway的Service类型为NodePort,允许通过节点IP和端口访问。若删除该项配置使用默认配置,网关会使用LoadBalancerService Type对外暴露服务。
    • inferenceGateway.listeners:定义监听器配置。
      • name: http:监听器名称。
      • port: 80:监听端口。
      • protocol: HTTP:协议类型。

    配置路由镜像拉取

    • hermes-router.inferenceExtension.image.name:智能路由镜像地址。
    • hermes-router.inferenceExtension.image.hub:智能路由镜像标签。
    • hermes-router.image.tag:智能路由镜像拉取策略。
    • hermes-router.image.pullPolicy:智能路由镜像拉取策略。

    配置路由策略

    • hermes-router.inferenceExtension.pluginsConfigFile: 指定要使用的路由策略配置文件名称,该名称必须与 hermes-router.inferenceExtension.pluginsCustomConfig 中的键名一致。
    • hermes-router.inferenceExtension.pluginsCustomConfig: 定义自定义的路由策略配置内容。目前支持以下路由策略:随机PD Bucket路由、PD Bucket分桶调度路由、PD KV Aware路由、聚合架构KV Aware路由。配置时必须包含路由策略中的插件配置和调度配置,具体配置示例可参考:hermes-router路由策略参考配置,该链接提供了上述所有路由策略的完整参考配置。

    配置InferencePool

    • hermes-router.inferencePool.modelServers.matchLabels: 推理服务标签选择器,用于选择加入InferencePool的 Pod,Pod必须同时满足所有标签,且仅在同一命名空间内匹配,不支持跨命名空间。
    • hermes-router.inferencePool.targetPorts: InferencePool里各个推理服务实际监听的端口号,用于处理推理流量。

    配置HTTPRoute

    • hermes-router.httpRoute.parentRef.name: 指定Gateway的名字,只有当请求通过该Gateway,请求才会被该HTTPRoute的路由规则匹配。
    • hermes-router.httpRoute.backend.name: 指定InferencePool的名字,Gateway会将匹配的请求转发到指定的InferencePool需要和global.name保持一致
    • hermes-router.httpRoute.pathPrefixHTTPRoute的路径前缀匹配规则,只有请求路径符合该前缀的请求才会被路由到后端推理服务。例如:配置为/v1时,只有路径以/v1开头的请求(如/v1/chat/completions)才会被匹配并路由。
  4. 配置推理后端参数。

    • inference-backend.services: 推理服务配置,支持用户配置多个独立的vLLM推理服务。每个服务可独立配置模型、部署模式(聚合模式或PD分离模式)、资源等参数,实现多模型、多架构的混合部署。

    基础配置

    • name: 服务名称,用于生成Deployment、Service等资源名称。
    • enabled: 是否启用该服务实例。
    • mode: 推理后端服务形态,共有aggreagtedpd两种可选,分别表示聚合架构和PD分离架构。
    • service.type: Service类型,默认为ClusterIP。
    • service.port: Service服务端口。
    • model.name: 推理引擎使用的模型地址。
    • openfuyao.model: 模型标识,会转换为标签openfuyao.com/model,用于InferencePool标签匹配, 需要和hermes-router.inferencePool.modelServers.matchLabels 保持一致。
    • openfuyao.engine: 引擎类型,会转换为标签openfuyao.com/vllm,用于智能路由策略发现和过滤服务。
    • openfuyao.pdRole: PD模式角色:aggregated,prefill或者decode,用于智能路由策略发现和过滤服务。
    • openfuyao.pdGroupID: PD模式分组ID,在PD分离架构下需要设置,表示该推理服务下的所有Proxy Server服务,Prefill和Decode推理后端服务均在该分组内,用于智能路由策略发现和过滤服务。

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

    • pd.kvTransferConfig: 推理引擎的kv-transfer-config配置,具体配置可以参考vllm-ascend
    • pd.prefill.replicaAmount: Prefill引擎副本数。
    • pd.prefill.tensorParallelSize: Prefill引擎张量并行度。
    • pd.prefill.dataParallelSize: Prefill引擎数据并行度。
    • pd.prefill.enablePrefixCaching: Prefill引擎是否启用前缀缓存。
    • pd.prefill.maxModelLen: Prefill引擎最大模型长度。
    • pd.prefill.maxNumBatchedTokens: Prefill引擎最大批处理token数。
    • pd.prefill.gpuMemoryUtilization: Prefill引擎GPU显存利用率。
    • pd.prefill.connectorBasePort:Prefill推理引擎实例的KVCache Connector通信端口。
    • pd.decode.replicaAmount: Decode引擎副本数。
    • pd.decode.tensorParallelSize: Decode引擎张量并行度。
    • pd.decode.dataParallelSize: Decode引擎数据并行度。
    • pd.decode.enablePrefixCaching: Decode引擎是否启用前缀缓存。
    • pd.decode.maxModelLen: Decode引擎最大模型长度。
    • pd.decode.maxNumBatchedTokens: Decode引擎最大批处理token数。
    • pd.decode.gpuMemoryUtilization: Decode引擎GPU显存利用率。
    • pd.decode.connectorBasePort:Decode推理引擎实例的KVCache Connector通信端口。
    • pd.proxyServer.port: Proxy Server端口。
    • pd.proxyServer.discoveryInterval: Proxy Server对推理后端服务发现间隔。

    配置聚合模式下推理引擎

    • aggregated.replicas: 聚合模式推理引擎副本数。
    • aggregated.tensorParallelSize: 聚合模式推理引擎张量并行度。
    • aggregated.dataParallelSize: 聚合模式推理引擎数据并行度。
    • aggregated.enablePrefixCaching: 聚合模式推理引擎是否启用前缀缓存。
    • aggregated.maxModelLen: 聚合模式推理引擎最大模型长度。
    • aggregated.maxNumBatchedTokens: 聚合模式推理引擎最大批处理token数。
    • aggregated.gpuMemoryUtilization: 聚合模式推理引擎GPU显存利用率。

    配置推理引擎资源

    • resources.requests.cpu: 聚合模式推理引擎CPU请求资源。
    • resources.requests.memory: 聚合模式推理引擎内存请求资源。
    • resources.limits.cpu: 聚合模式推理引擎CPU限制资源。
    • resources.limits.memory: 聚合模式推理引擎内存限制资源。

    配置推理引擎容器环境变量

  5. 配置KVCache全局管理器参数。

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

    • cache-indexer.app.serviceDiscovery.labelSelector:对推理后端的自动服务发现的K8s Service资源标签。该标签在inference-backend.service.openfuyao配置。示例:若推理后端K8s Service资源标签配置为:

      yaml
      labels:
        openfuyao.com/engine: vllm
        inference-backend: "true"

      则该属性配置为labelSelector: "inference-backend=true,openfuyao.com/engine=vllm"

    • cache-indexer.app.serviceDiscovery.refreshInterval:对推理后端的自动服务发现时间间隔(单位:秒)。

    配置KVCache全局管理器的K8s服务

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

    配置KVCache全局管理器镜像拉取

    • cache-indexer.image.repository:cache-indexer镜像地址。
    • cache-indexer.image.tag:cache-indexer镜像标签。
    • cache-indexer.image.pullPolicy:cache-indexer镜像拉取策略。
  6. 配置AI推理可观测参数。

    配置是否开启硬件健康检测和诊断

    • hardware-monitor-diagnosis.enabled:控制是否启用硬件健康检测和诊断功能。

    配置硬件健康检测镜像拉取

    • hardware-monitor.images.core.repository:hardware-monitor镜像地址。
    • hardware-monitor.images.core.tag:hardware-monitor镜像标签。
    • hardware-monitor.images.core.pullPolicy:hardware-monitor镜像拉取策略。

    配置硬件诊断镜像拉取

    • hardware-diagnosis.images.core.repository:hardware-diagnosis镜像地址。
    • hardware-diagnosis.images.core.tag:hardware-diagnosis镜像标签。
    • hardware-diagnosis.images.core.pullPolicy:hardware-diagnosis镜像拉取策略。

    配置是否开启prometheus监控K8s集群的套件

    • kube-prometheus-stack.enabled:控制是否启用Prometheus监控K8s集群的功能。
  7. 应用配置

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

使用AI推理

前提条件

硬件要求

  • 每个推理节点至少一张推理芯片。
  • 每个推理节点至少16GB内存,4 CPU核。
  • 在PD分离场景Mooncake传输KVCache时,若使用HCCL协议,需要确保hccn.conf已配置设备ip、掩码信息。

软件要求

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

网络要求

  • 能够访问镜像仓库:oci://cr.openfuyao.cn。
  • 在PD分离场景Mooncake传输KVCache时,若使用HCCL协议跨机高速通信传输,需要有HCCL设备或者RDMA设备支持。

背景信息

无。

使用限制

  • 当前仅支持vLLM推理引擎。
  • 当前仅支持Mooncake P2P Connector。
  • 当前仅在Ascend910B4推理芯片验证。
  • 当前仅支持AI推理场景,不支持AI训练场景。

操作步骤

  1. 获取服务访问地址。

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

    bash
    kubectl get svc -n ai-inference

    1.2 记录网关的IP地址与端口。hermes-router服务名称为inference-gateway-istio

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

    2.1 发送非流式推理请求:

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

    2.2 发送流式推理请求:

    bash
    curl -X POST http://[路由服务IP]:[路由服务端口]/v1/chat/completions \
      -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名称infernex和命名空间istio-system为例:

查看部署状态

bash
helm status infernex -n istio-system

卸载系统

bash
helm uninstall infernex -n istio-system

导出配置

bash
helm get values infernex -n istio-system > current-values.yaml

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属性一致。

  3. 使用helm install -n xxx(非istio-system)安装无法正常工作。

    现象描述: 安装完成后,无法找到网关相关的Service资源,或网关无法正常处理流量和请求。

    处理步骤: 由于Istio Gateway资源必须部署在istio-system命名空间中,因此helm安装时必须使用-n istio-system参数指定命名空间。其他组件(如inference-backend、hermes-router、cache-indexer)的命名空间可通过global.namespace配置项进行设置,而Istio相关资源的命名空间由helm的Release.namespace(即-n参数指定的命名空间)确定。正确的安装方式为:helm install -n istio-system infernex ./infernex

  4. 部署完成后请求无法正常工作。

    现象描述: 安装完成后,Istio Envoy代理报错或无法将请求转发到后端服务,但后端推理服务运行状态正常。

    处理步骤: 按以下步骤逐一检查配置:

    1. 检查HTTPRoute资源的parentRef.name是否与Gateway资源的名称一致(需与inferenceGateway.name配置项匹配)。
    2. 检查HTTPRoute资源的backendRef.name是否与InferencePool资源的名称一致(需与hermes-router.inferencePool.nameglobal.name配置项匹配)。
    3. 检查InferencePool资源的modelServers.matchLabels标签选择器是否与推理服务Pod的标签匹配(需与inference-backend.services[].openfuyao配置项生成的标签一致)。
    4. 确认路由组件(hermes-router)与推理服务(inference-backend)部署在同一个命名空间下(通过global.namespace配置项统一设置)。
  5. PD分离模式下Decode服务没有正常使用Mooncake进行传输。

    现象描述: PD分离架构部署后,Decode推理服务异常或性能不佳。

    处理步骤: 检查Decode推理服务的prefix cache配置。在使用Mooncake进行传输的PD分离架构中,Decode推理服务不应启用prefix cache。请确认pd.decode.enablePrefixCaching配置项设置为false,或使用--no-enable-prefix-caching参数启动Decode服务。

  6. PD分离模式下Decode服务一直在计算输出token。

    现象描述: 推理引擎使用vllm-ascend v0.11.0rc3版本,配置使用HCCL进行KVCache传输,PD分离架构部署后,Decode节点一直在计算返回token,输出不会停止。

    处理步骤: 检查是否挂载宿主机的hccn.conf文件,以及确认hccn.conf文件内是否对宿主机的推理设备ip以及掩码配置正确。hccn.conf文件配置设备信息可以参考以下脚本:

    bash
    #!/bin/bash
    for i in {0..7}
    do
      hccn_tool -i $i -ip -s address 192.168.102.$i netmask 255.255.255.0
    done