欢迎来到 openFuyao 社区
Hey @ds_13571877104 , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。
联系指引
有疑问可以联系 SIG: sig-ai-inference ,
维护者是: @foxbit, @regandy ,
审核者是: @ShiroChen, @piamposer-li, @qinwenzh .


另外,是否也可以考虑允许用户使用已有的bash脚本来拉起容器?例如如下形式的配置文件:
pd:
prefill:
replicas: 1
cardNum: 8
startExec: -|
#!/bin/bash
do_something
vllm serve --some-args
最终渲染成如下pod片段:
spec:
containers:
command:
- /bin/bash
- -c
args: ${startExec}


该issue已在8/6 AI SIG例会上讨论,后续在PR中说明具体改动方案:
- 需充分考虑inferNex用户手册参数列表、推理引擎社区推荐脚本参数内容以及其他推理服务化框架开源社区的实践进行设计
- 需考虑extrargs和结构化参数冲突时的覆盖优先级和覆盖逻辑
- 明确extrargs里面默认给出哪些参数示例,一般来说要求是启动推理引擎的常用参数


helm参数配置优化方案
一 明确调整范围(Prefill、Decode、Agggregate)
| InferNex 参数 | 当前默认值 | 对应 vLLM 参数 | 说明 |
|---|---|---|---|
enablePrefixCaching |
true |
--enable-prefix-caching |
是否启用 Prefix Cache |
tensorParallelSize |
1 |
--tensor-parallel-size |
Tensor Parallel 并行度 |
pipelineParallelSize |
1 |
--pipeline-parallel-size |
Pipeline Parallel 并行度 |
dataParallelSize |
1 |
--data-parallel-size |
全局 Data Parallel 并行度 |
dataParallelSizeLocal |
1 |
--data-parallel-size-local |
当前节点内的 DP Rank 数量 |
dataParallelRpcPort |
12890 |
--data-parallel-rpc-port |
Data Parallel RPC 通信端口 |
maxModelLen |
10000 |
--max-model-len |
模型最大上下文长度 |
maxNumBatchedTokens |
40960 |
--max-num-batched-tokens |
单次调度最大 Token 数量 |
gpuMemoryUtilization |
0.8 |
--gpu-memory-utilization |
vLLM 显存利用率 |
blockSize |
128 |
--block-size |
KV Cache Block 的 Token 数量 |
extraArgs |
--disable-access-log-for-endpoints=/health,/metrics |
直接透传 | Prefill 节点额外的 vLLM CLI 参数 |
二 社区观察
1. llm-d
llm-d 将与部署拓扑和资源相关的参数设计为结构化字段,例如:
parallelism:
tensor: 4
data: 8
dataLocal: 2
workers: 4
仅由 vLLM 使用的模型和引擎调优参数,则配置在容器的 args 中:
containers:
- name: vllm
modelCommand: vllmServe
args:
- --max-model-len=32768
- --gpu-memory-utilization=0.9
- --enable-prefix-caching
llm-d 的参数划分原则可以概括为:
与部署拓扑和资源相关的参数采用结构化配置;模型和引擎调优参数通过容器
args传递。
这一设计与 InferNex 当前计划的参数调整方向基本一致。
2. Dynamo
Dynamo 主要将以下内容结构化:
Kubernetes 组件
资源数量
副本数量
多节点配置
Pod 配置
而 TP、PP、DP 等推理引擎参数通常保留在 Worker CLI args 中,并由部署层校验部分 CLI 参数与 GPU 资源之间的一致性。
InferNex 已经直接使用 TP、PP、global DP 和 local DP 计算:
单 Pod NPU 卡数
LWS Pod 数量
DP 起始 Rank
DP 通信参数
KV Transfer 拓扑
因此,InferNex 继续将这些参数设计为结构化字段更合适;其他仅由 vLLM 消费的参数,则可以通过 extraArgs 透传。
| 参数 | Dynamo 配置方式 | InferNex 当前用途 | InferNex 推荐 |
|---|---|---|---|
| TP | Worker args,部署层校验 GPU 资源 |
参与单 Pod 卡数和 KV 拓扑生成 | 结构化字段 |
| PP | Worker args,部署层校验 GPU 资源 |
参与单 Pod 卡数计算 | 结构化字段 |
| global DP | Worker args |
参与 LWS Pod 数量计算 | 结构化字段 |
| local DP | Worker args 或运行参数 |
参与卡数、Pod 数量和 DP Rank 计算 | 结构化字段 |
| DP RPC Port | Worker 参数 | 用于生成多 DP 通信参数 | 结构化字段 |
--max-model-len |
Worker args |
仅传递给 vLLM | extraArgs |
--max-num-batched-tokens |
Worker args |
计划不再由 Chart 计算或校验 | extraArgs |
--gpu-memory-utilization |
Worker args |
仅传递给 vLLM | extraArgs |
三 建议的结构化参数和 extraArgs
1. vLLM 拓扑结构化参数
原则:参与 Chart 的资源计算、部署拓扑生成或派生参数生成,并最终转换为对应的 vLLM CLI 参数。
以 Prefill 配置为例:
# vLLM 拓扑结构化字段,禁止在 extraArgs 中重复配置
tensorParallelSize: 1
pipelineParallelSize: 1
dataParallelSizeLocal: 1
dataParallelSize: 1
dataParallelRpcPort: 1289
这些参数同时参与 InferNex 的 NPU 资源、LWS Worker 数量、DP Rank 以及 KV Transfer 拓扑等配置,因此应保持单一配置来源。
2. 部署级结构化参数
原则:由 Chart 用于生成 Kubernetes/LWS 部署资源,但不会作为 vLLM CLI 参数直接传入。
例如:
replicas: 1
resources:
requests: {}
limits: {}
3. extraArgs
原则:仅由 vLLM 消费、且不参与 InferNex 资源计算和部署拓扑生成的模型配置及推理引擎调优参数,通过 extraArgs 直接传递给 vllm serve。
默认不主动覆盖 vLLM / vLLM-Ascend 的上游默认值:
# 仅由 vLLM 消费的模型配置和推理引擎调优参数,可通过 extraArgs
# 直接传递给 `vllm serve`。
#
# 未配置的参数使用对应版本 vLLM / vLLM-Ascend 的上游默认值。
#
# 示例:
# extraArgs:
# - --max-model-len 32768
# - --max-num-batched-tokens 8192
# - --max-num-seqs 256
# - --gpu-memory-utilization 0.9
# - --block-size 128
# - --dtype float16
# - --enable-prefix-caching
# - --trust-remote-code
extraArgs: []
4. 其它vllm自动管理参数
部分 vLLM 参数由 Chart 根据结构化配置、Pod 信息或 P/D 拓扑自动生成,用户无需配置,同时禁止通过 extraArgs 覆盖。
--served-model-name:根据模型配置统一生成;--port:根据 Service 端口配置统一生成;--data-parallel-start-rank:根据 LWS Worker Index 和 local DP 动态计算;--data-parallel-address:根据 DP/LWS 拓扑生成;--data-parallel-hybrid-lb:根据 DP 部署模式决定是否启用;--kv-transfer-config:根据 P/D 角色及 KV Transfer 拓扑生成;--kv-events-config:根据 KV Event / cache-indexer 等组件配置生成。
五 参数冲突怎么办?
对于已经由结构化字段配置,或由 Chart 自动生成的 vLLM 参数,禁止在 extraArgs 中重复配置。
例如:
tensorParallelSize: 4
extraArgs:
- --tensor-parallel-size 8
此时不建议设计“结构化字段优先”或“extraArgs 优先”的覆盖规则,而应直接校验报错。
原因是:
- 若
extraArgs优先,可能导致 vLLM 实际启动参数与 Chart 用于 NPU 资源、LWS、DP Rank、KV Transfer 等计算的配置不一致; - 若结构化字段优先,则用户在
extraArgs中填写的参数会被静默忽略,不利于问题定位。
因此建议遵循:
单一参数只允许一个配置来源;检测到冲突时直接报错,不进行静默覆盖。


建议在后续提供如下关键信息:
- 全量用户参数配置表格(分大类,vllm 透传类配置无需全量列出,提供原始上游配置参考即可;其他的说明哪些属于结构化参数,哪些不属于;标明哪些是本次PR涉及变更的参数);次表格后续直接同步到InferNex用户使用指导手册。
- 对于区分结构化非结构化、直接透传等的设计区分原则;
- 对于当中涉及的两类check进行说明:i)对于即在结构化参数中配置,又在extraArg中透传的关联配置,对于可能存在的重复配置的冲突解决;ii) 对于TP\DP等并行策略配置,需要交叉节点实际资源(算力卡)进行校验 -- 可以在后续PR中逐步完善提交。
建议将上述内容在此Issue楼中补充完善后@zhengqinwenZZZ 打上Good First Issue标签,后续拆分2-3个PR逐个解决此Issue中的问题


InferNex Helm 全量用户参数变更及后续工作
目的:明确InferNex目前配置的主要参数项,以及为优化用户配置,后续需要变动的参数范围。
整理基线:InferNex
charts/infernex/values.yaml中的参数
说明:此处罗列的是 InferNex 顶层 Chart 对用户暴露/支持的配置。vLLM-Ascend 自身大量 CLI 参数不逐项展开,统一通过
extraArgs透传。建议可以参考vllm-ascend参数配置文档 vLLM Serve CLI Arguments了解相关详细情况。
相关工作:将针对本Issue分两次PR进行解决。PR1 — Helm 参数分类与配置入口优化;PR2 — Helm 参数合法性与关联校验。具体参数分类设计原则将在PR1中进行明确。关于参数是否可选,用户可以参考以下说明备注,也可以参考配置手册 AI推理集成部署 或对应yaml文件注释说明。后续也将针对本次修改调整用户配置手册,进行相关说明。
若有疑问可以继续在评论区提问关于哪一类的参数存在怎样的配置疑问。
标记说明
| 标记 | 含义 |
|---|---|
S |
结构化参数:InferNex/Helm 需要理解其语义,并用于资源生成、拓扑、组件联动或校验 |
P |
透传参数入口:InferNex 不应维护完整参数语义,主要直接传给上游组件 |
C |
组件配置:属于 InferNex 集成组件自身的结构化配置,但不是 vLLM 启动参数 |
K8s |
Kubernetes/Helm 基础配置,如资源、环境变量、卷、Service 等 |
🔴 |
作为本次参数治理 PR 的重点变更对象 |
🟡 |
后续 PR 增加冲突检查或资源一致性校验 |
— |
本 Issue 当前无需调整 |
接下来将对全量参数进行梳理,其中参数分为几大类:Inference Gateway参数,Global全局参数,Hermes-router参数,Infernex-backend参数,cache-indexer参数,eagle-eye参数,pd-orchestrator 参数。4.4 PD / Aggregated 推理引擎参数为本次issue重点需要考虑优化的部分
1. Inference Gateway 参数
| 参数路径 | 当前示例/默认 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
inferenceGateway.enabled |
true |
C |
— | 是否部署 inference gateway |
inferenceGateway.name |
inference-gateway |
C |
— | Gateway 名称 |
inferenceGateway.className |
istio |
C |
— | GatewayClass |
inferenceGateway.enable_http10 |
false |
C |
— | 是否允许 HTTP/1.0/0.9 客户端 |
inferenceGateway.listeners[].name |
http |
C |
— | listener 名称 |
inferenceGateway.listeners[].port |
80 |
C |
— | listener 端口 |
inferenceGateway.listeners[].protocol |
HTTP |
C |
— | listener 协议 |
inferenceGateway.service.type |
NodePort |
K8s |
— | Gateway Service 类型 |
inferenceGateway.service.nodePorts.http |
30088 |
K8s |
— | HTTP NodePort |
inferenceGateway.istio.enabled |
true |
C |
— | 是否启用 Istio 相关能力 |
2. Global 全局参数
| 参数路径 | 当前示例/默认 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
global.image.pullPolicy |
IfNotPresent |
K8s |
— | 镜像拉取策略 |
global.imagePullSecrets |
[] |
K8s |
— | 私有镜像仓库 Secret |
global.tracingEnabled |
false |
C |
— | 是否启用 tracing(链路追踪) |
global.tracingImage.repository |
cr.openfuyao.cn/openfuyao/eagle-eye-tracing |
K8s |
— | tracing 镜像仓库 |
global.tracingImage.tag |
latest |
K8s |
— | tracing 镜像版本 |
global.env |
列表 | K8s |
— | 所有推理 Pod 共用环境变量 |
global.env[HF_HUB_OFFLINE] |
0 |
K8s |
— | HuggingFace 离线开关 |
global.env[PYTHONHASHSEED] |
0 |
S/K8s |
— | 与 cache-indexer BlockHash 规则存在联动,建议保留统一管理 |
global.env[VLLM_KV_EVENTS_USE_INT_BLOCK_HASHES] |
1 |
S/K8s |
— | 与 cache-indexer BlockHash 归一化保持一致 |
global.modelName |
Qwen/Qwen3-8B |
S |
— | 用于 served-model-name、标签 |
global.modelPath |
"" |
S |
— | 可选,本地模型路径 |
global.autoDownloadModel |
true |
S |
— | 是否自动下载模型 |
global.cachePath |
/home/llm_cache |
S/K8s |
— | 模型及编译缓存目录 |
3. Hermes-router 参数(独立组件)
3.1 开关与 InferenceExtension
| 参数路径 | 当前示例/默认 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
hermes-router.enabled |
true |
C |
— | Hermes-router 总开关 |
hermes-router.inferenceExtension.replicas |
1 |
C/K8s |
— | EPP 副本数 |
hermes-router.inferenceExtension.pluginsConfigFile |
default-plugins.yaml |
C |
— | 插件配置文件 |
hermes-router.inferenceExtension.affinity |
{} |
K8s |
— | Pod affinity |
3.2 Routing
| 参数路径 | 示例 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
routing.deploymentMode |
pd |
C |
— | 路由部署模式 |
routing.profile |
kv-cache-aware |
C |
— | 路由策略 profile |
routing.pd.pdLabelName |
openfuyao.com/pdRole |
C |
— | PD role label |
routing.pd.pdGroupLabelName |
openfuyao.com/pdGroupID |
C |
— | PD group label |
routing.pd.prefillValue |
prefill |
C |
— | Prefill label value |
routing.pd.decodeValue |
decode |
C |
— | Decode label value |
routing.pd.leaderValue |
leader |
C |
— | Leader label value |
routing.tokenizer.model |
Qwen/Qwen3-8B |
C |
— | 路由 tokenizer model |
routing.tokenizer.tokenizerSource |
可选 | C |
— | tokenizer 来源与模型不同时使用 |
routing.kvCacheAware.prefillKVUsageWeight |
1.0 |
C |
— | Prefill KV 使用率权重 |
routing.kvCacheAware.prefillPrefixWeight |
1.0 |
C |
— | Prefill prefix 权重 |
routing.kvCacheAware.prefillQueueWeight |
1.0 |
C |
— | Prefill queue 权重 |
routing.kvCacheAware.prefillInflightWeight |
1.0 |
C |
— | Prefill inflight 权重 |
routing.kvCacheAware.decodeKVUsageWeight |
1.0 |
C |
— | Decode KV 使用率权重 |
routing.kvCacheAware.decodeQueueWeight |
1.0 |
C |
— | Decode queue 权重 |
routing.kvCacheAware.decodeInflightWeight |
1.0 |
C |
— | Decode inflight 权重 |
routing.kvCacheAware.prefillScoreWeight |
1.0 |
C |
— | Prefill 总分权重 |
routing.kvCacheAware.decodeScoreWeight |
1.0 |
C |
— | Decode 总分权重 |
routing.requestTracking.persistence.enabled |
false |
C |
— | 请求记录持久化开关 |
routing.requestTracking.persistence.flushThreshold |
100 |
C |
— | flush 阈值 |
routing.requestTracking.persistence.outputPath |
/tmp/hermes-inflight/completed.jsonl |
C |
— | 输出路径 |
routing.cacheIndexer.address |
http://cache-indexer-service:8080 |
C |
— | cache-indexer 地址 |
3.3 Tokenizer sidecar
| 参数路径 | 示例 | 分类 | 变更标记 |
|---|---|---|---|
inferenceExtension.tokenizer.enabled |
true |
C |
— |
inferenceExtension.tokenizer.socketPath |
/var/run/tokenizer/tokenizer.sock |
C |
— |
inferenceExtension.tokenizer.provider |
huggingface |
C |
— |
inferenceExtension.tokenizer.extraArgs |
[] |
P |
— |
inferenceExtension.tokenizer.extraEnv |
[] |
K8s |
— |
inferenceExtension.tokenizer.volumeMounts |
列表 | K8s |
— |
inferenceExtension.tokenizer.volumes |
列表 | K8s |
— |
3.4 Prediction
| 参数路径 | 示例 | 分类 | 变更标记 |
|---|---|---|---|
prediction.enabled |
false |
C |
— |
prediction.socketPath |
/var/run/hermes/prediction.sock |
C |
— |
prediction.predictionMode |
active |
C |
— |
prediction.timeout |
1s |
C |
— |
prediction.maxBatchSize |
128 |
C |
— |
prediction.ttftWeight |
0.8 |
C |
— |
prediction.tpotWeight |
0.2 |
C |
— |
prediction.kvWeight |
1.0 |
C |
— |
prediction.queueWeight |
1.0 |
C |
— |
prediction.prefixWeight |
1.0 |
C |
— |
prediction.inflightWeight |
1.0 |
C |
— |
prediction.targetModel |
"" |
C |
— |
prediction.modelVersion |
"" |
C |
— |
prediction.env |
列表 | K8s |
— |
prediction.modelVolume.hostPath.path |
/home/llm_cache/hermes-models |
K8s |
— |
prediction.modelVolume.hostPath.type |
Directory |
K8s |
— |
3.5 Pool / Route / Provider
| 参数路径 | 示例 | 分类 | 变更标记 |
|---|---|---|---|
inferencePool.targetPorts[].number |
8000 |
C |
— |
inferencePool.modelServerType |
vllm |
C |
— |
httpRoute.inferenceGatewayName |
inference-gateway |
C |
— |
provider.name |
istio |
C |
— |
provider.istio.destinationRule.trafficPolicy.tls.mode |
SIMPLE |
C |
— |
provider.istio.destinationRule.trafficPolicy.tls.insecureSkipVerify |
true |
C |
— |
provider.istio.retryConfig.enabled |
true |
C |
— |
provider.istio.retryConfig.retryOn |
字符串 | C |
— |
provider.istio.retryConfig.numRetries |
3 |
C |
— |
结论:Hermes-router 参数属于独立组件配置,不属于本次 vLLM 参数结构化/透传治理的核心范围。
4. Infernex-backend 参数
4.1 inference-backend 全局参数
| 参数路径 | 当前示例/默认 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
inference-backend.images.inferenceEngine.repository |
quay.io/ascend/vllm-ascend |
K8s |
— | 推理镜像 |
inference-backend.images.inferenceEngine.tag |
v0.18.0 |
K8s |
— | 镜像版本 |
inference-backend.inferenceDevice |
huawei.com/Ascend910 |
S/K8s |
— | 后续 TP/DP/cardCount 资源校验需要关联实际设备资源 |
inference-backend.volumeMounts.ascend.enable |
true |
K8s |
— | 默认 Ascend volumeMounts 开关 |
inference-backend.volumes.ascend.enable |
true |
K8s |
— | 默认 Ascend volumes 开关 |
4.2 inference-backend.services[] 服务级参数
| 参数路径 | 当前示例 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
services[].name |
qwen3-8b-2p2d-01 |
S |
— | 服务/资源命名基础 |
services[].enabled |
true |
S |
— | 服务启用开关 |
services[].mode |
pd |
S |
— | pd / aggregated,决定资源模板 |
services[].service.port |
8000 |
K8s |
— | 推理服务端口 |
services[].pdGroupID |
qwen3-8b-2p2d-01 |
S |
— | PD 分组和路由联动 |
services[].resources.requests.cpu |
4 |
K8s |
— | CPU request |
services[].resources.requests.memory |
64Gi |
K8s |
— | memory request |
services[].resources.limits.cpu |
8 |
K8s |
— | CPU limit |
services[].resources.limits.memory |
128Gi |
K8s |
— | memory limit |
4.3 KV Transfer / Mooncake 参数
4.3.1 Connector
| 参数路径 | 示例 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
kvTransferConfig.connectorConfig |
YAML 对象 | S/C |
— | InferNex 会自动填充 kv_role、kv_rank、engine_id、tp_size、dp_size 等节点相关字段,不应简单视为普通透传 |
connectorConfig.kv_connector |
MultiConnector |
C |
— | Connector 类型(vLLM 上游 KVTransferConfig.kv_connector) |
connectorConfig.kv_connector_extra_config |
对象 | C/P |
— | Connector 上游私有配置(vLLM KVTransferConfig.kv_connector_extra_config),InferNex 仅透传 |
Connector 的上游配置项较多,可参考以下上游文档:
connector配置
4.3.2 Mooncake
| 参数路径 | 示例 | 分类 | 变更标记 |
|---|---|---|---|
kvTransferConfig.mooncake.use_store |
true |
C |
— |
kvTransferConfig.mooncake.master.rpcPort |
50051 |
C |
— |
kvTransferConfig.mooncake.master.servicePort |
30089 |
C/K8s |
— |
kvTransferConfig.mooncake.master.httpPort |
9003 |
C |
— |
kvTransferConfig.mooncake.master.extraArgs |
列表 | P |
— |
kvTransferConfig.mooncake.config |
YAML 文本 | P/C |
— |
4.4 PD / Aggregated 推理引擎参数
以下配置路径分别存在于:
services[].pd.prefill.*services[].pd.decode.*services[].aggregated.*
为避免重复,统一按 <engine> 表示 pd.prefill、pd.decode 或 aggregated。
| 参数路径 | 当前默认/示例 | 当前性质 | 建议分类 | 变更标记 | 建议 |
|---|---|---|---|---|---|
<engine>.replicas |
1/2 |
Helm/LWS | S |
— | 必须结构化,决定 LWS 并行组数量 |
<engine>.cardCount |
可选,默认推导 | Helm/LWS | S |
🟡 |
必须结构化;后续与 TP/PP/DP Local 及实际设备资源交叉校验 |
<engine>.tensorParallelSize |
1/2 |
Helm + vLLM | S |
🟡 |
必须保留结构化;参与卡数、LWS 和 vLLM 参数注入 |
<engine>.pipelineParallelSize |
1 |
Helm + vLLM | S |
🟡 |
必须保留结构化;当前文档说明 PP 仅支持 1,同时参与卡数推导 |
<engine>.dataParallelSize |
1 |
Helm + vLLM | S |
🟡 |
必须保留结构化;决定逻辑 DP rank 总数和 LWS worker 数 |
<engine>.dataParallelSizeLocal |
1 |
Helm + vLLM | S |
🟡 |
必须保留结构化;决定单节点 DP rank 和卡数 |
<engine>.dataParallelRpcPort |
P:12890 / D:12777 | Helm + vLLM | S |
🟡 |
多 DP 时 chart 自动注入,不能交给用户随意重复透传 |
<engine>.enablePrefixCaching |
P:true / D:false |
vLLM + cache 联动 | S? / P? |
🔴 |
建议迁移到 extraArgs,但其与cache-indexer开启相关,建议保留默认模式在extraArgs中设置 |
<engine>.maxModelLen |
10000 |
vLLM | P |
🔴 |
建议迁移到 extraArgs,InferNex 无需依赖其语义生成拓扑 |
<engine>.maxNumBatchedTokens |
40960 |
vLLM | P |
🔴 |
建议迁移到 extraArgs |
<engine>.gpuMemoryUtilization |
0.8 |
vLLM | P |
🔴 |
建议迁移到 extraArgs |
<engine>.blockSize |
128 |
vLLM | P |
🔴 |
建议迁移到 extraArgs |
<engine>.env |
列表 | K8s | K8s |
— | 保留结构化 |
<engine>.volumeMounts |
列表 | K8s | K8s |
— | 保留结构化 |
<engine>.volumes |
列表 | K8s | K8s |
— | 保留结构化 |
<engine>.extraArgs |
列表 | vLLM CLI | P |
🔴 |
作为普通 vLLM 参数统一透传入口 |
4.4.1 PD ProxyServer
| 参数路径 | 示例 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
pd.proxyServer.enabled |
true |
S/C |
— | ProxyServer 总开关 |
pd.proxyServer.discoveryInterval |
10 |
C |
— | 服务发现间隔(秒) |
pd.proxyServer.accessLog.enabled |
true |
C |
— | 默认开启 HTTP 访问日志;false 时关闭全部访问日志 |
pd.proxyServer.accessLog.excludedEndpoints |
[/health, /metrics] |
C |
— | 过滤对应端点的成功请求(4xx/5xx 仍会记录) |
4.5 补充说明:vLLM / vLLM-Ascend 透传参数
4.5.1 不建议在 InferNex 中全量维护
vLLM 参数数量较多,并随上游版本持续变化。InferNex 不应为所有 vLLM 参数重复维护一套 Helm 结构化字段。
推荐统一使用:
inference-backend:
services:
- pd:
prefill:
extraArgs:
- "--max-model-len 194560"
- "--max-num-batched-tokens 8192"
- "--gpu-memory-utilization 0.96"
- "--block-size 128"
也应支持/兼容上游常见 --flag=value 形式,例如:
extraArgs:
- "--max-model-len=194560"
4.5.2 上游参考
- vLLM
serveCLI 参数:https://docs.vllm.ai/en/stable/cli/serve/ - vLLM-Ascend 不同模型教程:https://docs.vllm.ai/projects/ascend/zh-cn/v0.18.0/tutorials/models/index.html
5. cache-indexer 参数(独立组件)
| 参数路径 | 当前示例 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
cache-indexer.enabled |
true |
C |
— | 组件开关 |
cache-indexer.resources.requests.cpu |
100m |
K8s |
— | CPU request |
cache-indexer.resources.requests.memory |
128Mi |
K8s |
— | memory request |
cache-indexer.resources.limits.cpu |
1 |
K8s |
— | CPU limit |
cache-indexer.resources.limits.memory |
2Gi |
K8s |
— | memory limit |
cache-indexer.blockKey.pythonHashSeed |
0 |
C/S |
— | 与 vLLM Pod 的 PYTHONHASHSEED 一致 |
cache-indexer.blockKey.prefixCachingHashAlgo |
sha256_cbor |
C/S |
— | 与 vLLM --prefix-caching-hash-algo 一致 |
cache-indexer.blockKey.useIntBlockHashes |
true |
C/S |
— | 与 VLLM_KV_EVENTS_USE_INT_BLOCK_HASHES 一致 |
cache-indexer.discovery.refreshInterval |
10s |
C |
— | 服务发现刷新间隔 |
cache-indexer.discovery.vllm.zmqPortName |
zmq-pub |
C |
— | LWS+多DP时需考虑运行时端口偏移问题 |
cache-indexer.discovery.mooncakeMaster.httpPortName |
http |
C |
— | Mooncake Master HTTP 端口名 |
cache-indexer.discovery.mooncakeMaster.httpPort |
9003 |
C |
— | 与 Mooncake Master httpPort 一致 |
cache-indexer.service.name |
cache-indexer-service |
K8s/C |
— | Service 名称 |
cache-indexer.service.port |
8080 |
K8s/C |
— | Service 端口 |
结论:cache-indexer 参数属于独立组件配置,不属于本次 vLLM 参数结构化/透传治理的核心范围。
6. eagle-eye 参数(独立组件)
| 参数路径 | 示例 | 分类 | 变更标记 | 说明 |
|---|---|---|---|---|
eagle-eye.enabled |
true |
C |
— | 组件开关 |
eagle-eye.network-performance-exporter.networkPerformanceExporter.metricsPort |
8222 |
C/K8s |
— | 网络性能指标端口 |
eagle-eye.network-performance-exporter.networkPerformanceExporter.collectInterval |
15 |
C |
— | 指标采集间隔(秒) |
eagle-eye.tracing.enabled |
false |
C |
— | 是否启用 tracing(链路追踪) |
eagle-eye.tracing.jaeger.query.service.type |
NodePort |
K8s |
— | Jaeger Query Service 类型 |
eagle-eye.tracing.jaeger.query.service.nodePort |
30686 |
K8s |
— | Jaeger Query NodePort |
结论:eagle-eye 参数属于独立组件配置,不属于本次 vLLM 参数结构化/透传治理的核心范围。
7. pd-orchestrator 参数(独立组件)
7.1 elastic-scaler
| 参数路径 | 示例 | 分类 | 变更标记 |
|---|---|---|---|
pd-orchestrator.elastic-scaler.enabled |
true |
C |
— |
elastic-scaler.elasticScaler.enabled |
true |
C |
— |
elastic-scaler.name |
elastic-scaler |
C |
— |
elastic-scaler.minReplicas |
1 |
C |
— |
elastic-scaler.maxReplicas |
10 |
C |
— |
elastic-scaler.targetRef.kind |
resourcescalinggroup |
C |
— |
elastic-scaler.targetRef.name |
rsg |
C |
— |
elastic-scaler.targetRef.apiVersion |
autoscaling.openfuyao.com/v1alpha1 |
C |
— |
elastic-scaler.trigger.scalingAlgorithm |
apa |
C |
— |
elastic-scaler.trigger.resource.metricsName |
cpu |
C |
— |
elastic-scaler.trigger.resource.targetType |
Utilization |
C |
— |
elastic-scaler.trigger.resource.targetValue |
70 |
C |
— |
7.2 resourcescalinggroup
| 参数路径 | 示例 | 分类 | 变更标记 |
|---|---|---|---|
resourcescalinggroup.enabled |
true |
C |
— |
resourcescalinggroup.instanceConfig.enabled |
true |
C |
— |
resourcescalinggroup.instanceConfig.name |
rsg |
C |
— |
targetResources[].name |
prefill/decode |
C |
— |
targetResources[].resourceRef.apiVersion |
leaderworkerset.x-k8s.io/v1 |
C |
— |
targetResources[].resourceRef.kind |
LeaderWorkerSet |
C |
— |
targetResources[].resourceRef.name |
服务资源名 | C |
— |
scalingStrategy.type |
GroupReplication |
C |
— |
groupConfig.groupName |
pd |
C |
— |
scaleDown.metric.expr |
vllm:num_requests_running |
C |
— |
scaleDown.metric.type |
Gauge |
C |
— |
scaleDown.metric.window |
2m |
C |
— |
scaleDown.metric.aggregator |
avg |
C |
— |
scaleDown.order |
ascending |
C |
— |
结论:pd-orchestrator 参数属于独立组件配置,不属于本次 vLLM 参数结构化/透传治理的核心范围。


当前配置推理的参数存在两类不同的配置,一类是部分选项通过helm中提供的选项,例如enablePrefixCaching、maxNumBatchedTokens等,另一些则是通过extraArgs来添加,这两类配置之间当前缺乏明确的分界线,也就是到底什么配置是有选项的,什么配置是需要extraArgs的,以及是否存在默认添加的选项,这些配置的规则需要进一步明确