Ascend NPU 支持的特性#

本节描述了 Ascend NPU 支持的基本功能和特性。如果您遇到问题或有任何疑问,请提交 Issue

模型与分词器#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--model-path
--model

模型权重路径。可以是本地文件夹或 Hugging Face 仓库 ID。

类型: str

--tokenizer-path

分词器路径。

类型: str

--tokenizer-mode

分词器模式。‘auto’ 将优先使用快速分词器(如果可用),‘slow’ 将始终使用慢速分词器。

auto

auto, slow

--tokenizer-worker-num

分词器管理器的 worker 数量。

1

类型: int

--skip-tokenizer-init

如果设置,将跳过分词器初始化,并在生成请求中传递 input_ids。

False

布尔标志 (设置即启用)

--trust-remote-code

是否允许在 Hub 上通过其自身的建模文件定义自定义模型。

False

布尔标志 (设置即启用)

--context-length

模型的最大上下文长度。默认为 None(将使用模型 config.json 中的值)。

类型: int

--is-embedding

是否将 CausalLM 用作嵌入模型。

False

布尔标志 (设置即启用)

--enable-multimodal

启用推理模型的多模态功能。如果所服务的模型不是多模态模型,则不会生效。

布尔标志 (设置即启用)

--revision

要使用的特定模型版本。可以是分支名、标签名或 commit ID。如果未指定,将使用默认版本。

类型: str

×

×

--model-impl

使用哪种模型实现。* “auto” 将尝试使用 SGLang 实现(如果存在),否则回退到 Transformers 实现。* “sglang” 将使用 SGLang 模型实现。* “transformers” 将使用 Transformers 模型实现。* “mindspore” 将使用 MindSpore 模型实现。

‘auto’, ‘sglang’, ‘transformers’

×

--model-loader-extra-config

模型加载器的额外配置。这将传递给与所选 load_format 对应的模型加载器。

{}

类型: str

×

×

HTTP 服务器#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--host

HTTP 服务器的主机地址。

127.0.0.1

类型: str

--port

HTTP 服务器的端口号。

30000

类型: int

--skip-server-warmup

如果设置,将跳过预热。

False

布尔标志 (设置即启用)

--warmups

指定在服务器启动前运行的自定义预热函数 (csv)。例如:–warmups=warmup_name1,warmup_name2 将在服务器开始监听请求前运行 warmup.py 中指定的 warmup_name1warmup_name2 函数。

类型: str

--nccl-port

用于 NCCL 分布式环境设置的端口。默认为随机端口。

类型: int

量化与数据类型#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--dtype

模型权重和激活值的数据类型。* “auto” 对 FP32 和 FP16 模型使用 FP16 精度,对 BF16 模型使用 BF16 精度。* “half” 表示 FP16。建议用于 AWQ 量化。* “float16” 与 “half” 相同。* “bfloat16” 用于在精度和范围之间取得平衡。

auto

auto, float16, bfloat16

--quantization

量化方法。

modelslim

--quantization-param-path

包含 KV cache 缩放因子的 JSON 文件路径。当 KV cache 数据类型为 FP8 时,通常应提供此文件。否则,KV cache 缩放因子默认为 1.0,这可能会导致精度问题。

类型: Optional[str]

×

×

--kv-cache-dtype

KV cache 存储的数据类型。“auto” 将使用模型数据类型。“fp8_e5m2” 和 “fp8_e4m3” 仅在 CUDA 11.8+ 上受支持。

auto

auto

内存与调度#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--mem-fraction-static

用于静态分配(模型权重和 KV cache 内存池)的内存比例。如果看到显存溢出 (OOM) 错误,请尝试调小此值。

类型: float

--max-running-requests

最大运行请求数。

类型: int

--prefill-max-requests

Prefill 批次中的最大请求数。如果未指定,则没有限制。

类型: int

--max-queued-requests

最大排队请求数。在使用分离模式 (disaggregation-mode) 时忽略此选项。

类型: int

--max-total-tokens

内存池中的最大 token 总数。如果未指定,将根据内存使用比例自动计算。此选项通常用于开发和调试目的。

类型: int

--chunked-prefill-size

分块 Prefill (chunked prefill) 中每个块的最大 token 数。设置为 -1 表示禁用分块 Prefill。

类型: int

--max-prefill-tokens

Prefill 批次中的最大 token 数。实际限制将是此值与模型最大上下文长度中的最大值。

16384

类型: int

--schedule-policy

请求调度策略。

fcfs

lpm, fcfs

--enable-priority-scheduling

启用优先级调度。默认情况下,具有较高优先级整数值的请求将首先被调度。

False

布尔标志 (设置即启用)

--schedule-low-priority-values-first

如果与 –enable-priority-scheduling 同时指定,调度器将优先调度具有较低优先级整数值的请求。

False

布尔标志 (设置即启用)

--priority-scheduling-preemption-threshold

新请求抢占正在运行请求时所需的最小优先级差值。

10

类型: int

--schedule-conservativeness

调度策略的保守程度。值越大表示调度越保守。如果经常看到请求被撤回,请使用较大的值。

1.0

类型: float

--page-size

每个 Page 中的 token 数量。Ascend NPU 自动设置为 128。

128

类型: int

--hybrid-kvcache-ratio

统一和混合 KV 缓冲区之间的混合比例 [0,1](0.0 = 纯统一:swa_size / full_size = 1)(1.0 = 纯混合:swa_size / full_size = local_attention_size / context_length)

Optional[float]

×

×

--swa-full-tokens-ratio

SWA 层 KV token / 全量层 KV token 的比例,不考虑 swa:full 层的层数。应在 0 到 1 之间。例如,0.5 意味着如果每个 SWA 层有 50 个 token,那么每个全量层有 100 个 token。

0.8

类型: float

×

×

--disable-hybrid-swa-memory

禁用混合 SWA 内存。

False

布尔标志 (设置即启用)

×

×

运行时选项#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--device

使用的设备(‘cuda’, ‘xpu’, ‘hpu’, ‘npu’, ‘cpu’)。如果未指定,默认为自动检测。

类型: str

--tensor-parallel-size
--tp-size

张量并行 (TP) 大小。

1

类型: int

--pipeline-parallel-size
--pp-size

流水线并行 (PP) 大小。

1

类型: int

×

×

--pp-max-micro-batch-size

流水线并行中的最大微批次 (micro batch) 大小。

类型: int

×

×

--stream-interval

流式传输的 token 长度间隔(或缓冲区大小)。较小的值使流式输出更平滑,较大的值使吞吐量更高。

1

类型: int

--stream-output

是否以不相交片段序列的形式输出。

False

布尔标志 (设置即启用)

--random-seed

随机种子。

类型: int

--constrained-json-whitespace-pattern

(仅限 outlines 和 llguidance 后端)JSON 约束输出中允许的语法空格的正则表达式模式。例如,要允许模型生成连续空格,请将模式设置为 [\n\t ]*

类型: str

×

×

--constrained-json-disable-any-whitespace

(仅限 xgrammar 和 llguidance 后端)在 JSON 约束输出中强制使用紧凑表示。

False

布尔标志 (设置即启用)

×

×

--watchdog-timeout

设置看门狗超时时间(秒)。如果前向批次耗时超过此时间,服务器将崩溃以防止挂起。

300

类型: float

--soft-watchdog-timeout

设置软看门狗超时时间(秒)。如果前向批次耗时超过此时间,服务器将转储调试信息。

300

类型: float

--dist-timeout

设置 torch.distributed 初始化的超时时间。

类型: int

×

×

--base-gpu-id

开始分配 GPU 的起始 ID。在同一台机器上运行多个实例时非常有用。

0

类型: int

--gpu-id-step

连续使用的 GPU ID 之间的间隔。例如,设置为 2 将使用 GPU 0, 2, 4, ...

1

类型: int

--sleep-on-idle

当 sglang 空闲时减少 CPU 占用。

False

布尔标志 (设置即启用)

--mm-process-config

用于多模态预处理配置的 JSON 字符串。可以包含键:image, video, audio

{}

×

×

日志#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--log-level

所有 loggers 的日志级别。

info

类型: str

--log-level-http

HTTP 服务器的日志级别。如果未设置,默认重用 –log-level。

类型: str

--log-requests

记录所有请求的元数据、输入和输出。详细程度由 –log-requests-level 决定。

False

布尔标志 (设置即启用)

--log-requests-level

0: 记录元数据(无采样参数)。1: 记录元数据和采样参数。2: 记录元数据、采样参数和部分输入/输出。3: 记录所有输入/输出。

2

0, 1, 2, 3

--crash-dump-folder

转储崩溃前最后 5 分钟请求(如果有)的文件夹路径。如果未指定,则禁用崩溃转储。

类型: str

×

×

--crash-on-nan

当 logprobs 为 nan 时使服务器崩溃。

False

类型: str

×

×

--enable-metrics

启用 prometheus 指标日志。

False

布尔标志 (设置即启用)

×

×

--enable-metrics-for-all-schedulers

当您希望所有 TP 秩(而不只是 TP 0)上的调度器分别记录请求指标时,启用此项。当启用 dp_attention 时,这特别有用,否则所有指标似乎都来自 TP 0。

False

布尔标志 (设置即启用)

×

×

--tokenizer-metrics-custom-labels-header

指定用于传递分词器指标自定义标签的 HTTP 请求头。

x-custom-labels

类型: str

×

×

--tokenizer-metrics-allowed-custom-labels

分词器指标允许的自定义标签。标签通过 HTTP 请求中的 ‘–tokenizer-metrics-custom-labels-header’ 字段中的 dict 指定,例如,如果设置了 ‘–tokenizer-metrics-allowed-custom-labels label1 label2’,则允许 {‘label1’: ‘value1’, ‘label2’: ‘value2’}。

List[str]

×

×

--bucket-time-to-first-token

首个 token 延迟 (TTFT) 的分桶,指定为浮点数列表。

List[float]

×

×

--bucket-inter-token-latency

Token 间隔延迟的分桶,指定为浮点数列表。

List[float]

×

×

--bucket-e2e-request-latency

端到端请求延迟的分桶,指定为浮点数列表。

List[float]

×

×

--collect-tokens-histogram

收集 prompt/生成 token 的直方图。

False

布尔标志 (设置即启用)

×

×

--prompt-tokens-buckets

Prompt token 的分桶规则。支持 3 种规则类型:‘default’ 使用预定义分桶;‘tse ’ 生成两侧指数分布分桶(例如,‘tse 1000 2 8’ 生成分桶 [984.0, 992.0, 996.0, 998.0, 1000.0, 1002.0, 1004.0, 1008.0, 1016.0]);‘custom …’ 使用自定义分桶值(例如,‘custom 10 50 100 500’)。

List[str]

×

×

--generation-tokens-buckets

生成 token 直方图的分桶规则。支持 3 种规则类型:‘default’ 使用预定义分桶;‘tse ’ 生成两侧指数分布分桶(例如,‘tse 1000 2 8’ 生成分桶 [984.0, 992.0, 996.0, 998.0, 1000.0, 1002.0, 1004.0, 1008.0, 1016.0]);‘custom …’ 使用自定义分桶值(例如,‘custom 10 50 100 500’)。

List[str]

×

×

--gc-warning-threshold-secs

长时间垃圾回收 (GC) 的报警阈值。如果 GC 耗时超过此值,将记录警告日志。设置为 0 以禁用。

0.0

类型: float

×

×

--decode-log-interval

Decode 批次的日志记录间隔。

40

类型: int

--enable-request-time-stats-logging

启用每个请求的时间统计日志记录。

False

布尔标志 (设置即启用)

×

×

--kv-events-config

用于 NVIDIA dynamo KV 事件发布的 JSON 格式配置。如果使用此标志,将启用发布。

类型: str

×

×

--enable-trace

启用 opentelemetry 追踪。

False

布尔标志 (设置即启用)

×

×

--oltp-traces-endpoint

如果设置了 –enable-trace,则配置 opentelemetry collector 的端点。格式为:

localhost:4317

类型: str

×

×

数据并行#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--data-parallel-size
--dp-size

数据并行 (DP) 大小。

1

类型: int

--load-balance-method

数据并行的负载均衡策略。“Minimum Token” 算法仅在应用 DP attention 时可用。该算法根据 DP worker 的实时 token 负载执行负载均衡。

round_robin

round_robin, shortest_queue, minimum_tokens

--prefill-round-robin-balance

Prefill 采用轮询 (round robin) 均衡。这用于保证 Decode 服务器可以获取正确的 DP rank。

False

布尔标志 (设置即启用)

多节点分布式服务#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--dist-init-addr
--nccl-init-addr

初始化分布式后端的主机地址(例如,192.168.0.2:25000)。

类型: str

--nnodes

节点数量。

1

类型: int

--node-rank

节点秩 (rank)。

0

类型: int

模型重载参数#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--json-model-override-args

一个 JSON 字符串格式的字典,用于覆盖默认模型配置。

{}

类型: str

--preferred-sampling-params

将在 /get_model_info 中返回的 JSON 格式采样设置。

类型: str

LoRA#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--enable-lora

启用模型的 LoRA 支持。如果提供了 --lora-paths,为了向后兼容,此参数会自动设置为 True

False

布尔标志 (设置即启用)

--max-lora-rank

应支持的最大 LoRA 秩。如果未指定,将根据 --lora-paths 中提供的适配器自动推断。当您期望在服务器启动后动态加载具有更大 LoRA 秩的适配器时,需要此参数。

类型: int

--lora-target-modules

应应用 LoRA 的所有目标模块的并集(例如,q_proj, k_proj, gate_proj)。如果未指定,将从 --lora-paths 中自动推断。也可以设置为 all 以为所有支持的模块启用 LoRA;注意这可能会引入轻微的性能开销。

q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj, qkv_proj, gate_up_proj, all

×

×

--lora-paths

要加载的 LoRA 适配器列表。每个适配器必须以以下格式之一指定:<路径> | <名称>=<路径> | 符合 schema {"lora_name": str, "lora_path": str, "pinned": bool} 的 JSON。

类型: List[str] / JSON 对象

--max-loras-per-batch

正在运行的批次中的最大适配器数量,包括仅基础模型的请求。

8

类型: int

×

×

--max-loaded-loras

如果指定,则限制一次加载到 CPU 内存中的最大 LoRA 适配器数量。必须 ≥ --max-loras-per-batch

类型: int

×

×

--lora-eviction-policy

GPU 内存池满时的 LoRA 适配器逐出策略。

lru

lru, fifo

×

×

--lora-backend

选择多 LoRA 服务的内核后端。

triton

triton, csgmv

×

×

--max-lora-chunk-size

ChunkedSGMV LoRA 后端的最大块大小。仅在 --lora-backendcsgmv 时使用。较大的值可能会提高性能。

16

16, 32, 64, 128

×

×

算子后端 (Attention, Sampling, Grammar, GEMM)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--attention-backend

选择注意力层的算子。

ascend

--prefill-attention-backend

选择 Prefill 注意力层的算子(优先级高于 –attention-backend)。

ascend

--decode-attention-backend

选择 Decode 注意力层的算子(优先级高于 –attention-backend)。

ascend

--sampling-backend

选择采样层的算子后端。

pytorch, ascend

--grammar-backend

选择语法引导解码的后端。

xgrammar

--mm-attention-backend

设置多模态注意力后端。

ascend_attn

--nsa-prefill-backend

选择 Prefill 阶段的 NSA 后端(在运行 DeepSeek NSA 风格注意力时覆盖 --attention-backend)。

flashmla_sparse

flashmla_sparse, flashmla_decode, fa3, tilelang, aiter

×

×

--nsa-decode-backend

在运行 DeepSeek NSA 风格注意力时选择 Decode 阶段的 NSA 后端。覆盖 --attention-backend 用于解码。

flashmla_kv

flashmla_prefill, flashmla_kv, fa3, tilelang, aiter

×

×

--fp8-gemm-backend

选择 Blockwise FP8 GEMM 操作的运行器后端。选项:‘auto’(默认,根据硬件自动选择)、‘deep_gemm’(JIT 编译;在安装 DeepGEMM 的情况下,在 NVIDIA Hopper (SM90) 和 Blackwell (SM100) 上默认启用)、‘flashinfer_trtllm’(最适合 Blackwell 和低延迟)、‘cutlass’(最适合 Hopper/Blackwell GPU 和高吞吐量)、‘triton’(回退方案,广泛兼容)、‘aiter’(仅限 ROCm)。**注意**:这取代了已废弃的环境变量 SGLANG_ENABLE_FLASHINFER_FP8_GEMM 和 SGLANG_SUPPORT_CUTLASS_BLOCK_FP8。

auto

auto, deep_gemm, flashinfer_trtllm, cutlass, triton, aiter

×

×

--disable-flashinfer-autotune

Flashinfer 自动调优默认启用。设置此标志以禁用自动调优。

False

布尔标志 (设置即启用)

×

×

投机采样#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--speculative-algorithm

投机采样算法。

EAGLE, EAGLE3, NEXTN, STANDALONE, NGRAM

--speculative-draft-model-path
--speculative-draft-model

草稿模型 (Draft Model) 权重的路径。可以是本地文件夹或 Hugging Face 仓库 ID。

类型: str

--speculative-draft-model-revision

要使用的特定草稿模型版本。可以是分支名、标签名或 commit ID。如果未指定,将使用默认版本。

类型: str

×

×

--speculative-num-steps

在投机采样中从草稿模型采样的步数。

类型: int

--speculative-eagle-topk

在 eagle2 中每步从草稿模型采样的 token 数量。

类型: int

--speculative-num-draft-tokens

在投机采样中从草稿模型采样的 token 数量。

类型: int

--speculative-accept-threshold-single

如果草稿 token 在目标模型中的概率大于此阈值,则接受该 token。

1.0

类型: float

--speculative-accept-threshold-acc

草稿 token 的接受概率从其目标概率 p 提升到 min(1, p / threshold_acc)。

1.0

类型: float

--speculative-token-map

草稿模型的小词表路径。

类型: str

×

×

--speculative-attention-mode

投机采样操作(目标验证和草稿扩展)的注意力后端。可以是 ‘prefill’(默认)或 ‘decode’ 之一。

prefill

prefill, decode

--speculative-moe-runner-backend

EAGLE 投机采样的 MOE 后端,选项参见 –moe-runner-backend。如果未设置,与 moe runner backend 相同。

--speculative-moe-a2a-backend

EAGLE 投机采样的 MOE A2A 后端,选项参见 –moe-a2a-backend。如果未设置,与 moe a2a backend 相同。

Ngram 投机采样#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--speculative-ngram-min-match-window-size

Ngram 投机采样中模式匹配的最小窗口大小。

1

类型: int

×

×

--speculative-ngram-max-match-window-size

Ngram 投机采样中模式匹配的最大窗口大小。

12

类型: int

×

×

--speculative-ngram-min-bfs-breadth

Ngram 投机采样中 BFS(广度优先搜索)的最小宽度。

1

类型: int

×

×

--speculative-ngram-max-bfs-breadth

Ngram 投机采样中 BFS(广度优先搜索)的最大宽度。

10

类型: int

×

×

--speculative-ngram-match-type

缓存树的匹配类型。

BFS

BFS, PROB

×

×

--speculative-ngram-branch-length

Ngram 投机采样的分支长度。

18

类型: int

×

×

--speculative-ngram-capacity

Ngram 投机采样的缓存容量。

10000000

类型: int

×

×

专家并行#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--expert-parallel-size
--ep-size
--ep

专家并行 (EP) 大小。默认等于 TP 大小。

tp-size

类型: int

×

--moe-a2a-backend

选择专家并行的 all-to-all 通信后端。

none

none, deepep, ascend_fuseep

×

--moe-runner-backend

选择 MoE 的运行器后端。

auto

auto

×

--flashinfer-mxfp4-moe-precision

选择 flashinfer mxfp4 moe 的计算精度。

default

default, bf16

×

×

--enable-flashinfer-allreduce-fusion

启用 FlashInfer 与 Residual RMSNorm 的 allreduce 融合。

False

布尔标志 (设置即启用)

×

×

--deepep-mode

启用 DeepEP MoE 时选择模式,可以是 normal, low_latencyauto。默认为 auto,即对 Decode 批次使用 low_latency,对 Prefill 批次使用 normal

auto

normal, low_latency, auto

×

--ep-num-redundant-experts

在专家并行中分配的冗余专家数量。

0

类型: int

×

×

--ep-dispatch-algorithm

在专家并行中为冗余专家选择秩 (rank) 的算法。

类型: str

×

×

--init-expert-location

EP 专家的初始位置。

trivial

类型: str

×

×

--enable-eplb

启用 EPLB 算法。

False

布尔标志 (设置即启用)

×

×

--eplb-algorithm

选定的 EPLB 算法。

auto

类型: str

×

×

--eplb-rebalance-layers-per-chunk

每次前向传递要重新平衡的层数。

类型: int

×

×

--eplb-min-rebalancing-utilization-threshold

触发 EPLB 重新平衡的 GPU 平均利用率最小阈值。必须在 [0.0, 1.0] 范围内。

1.0

类型: float

×

×

--expert-distribution-recorder-mode

专家分布记录器的模式。

类型: str

×

×

--expert-distribution-recorder-buffer-size

专家分布记录器的循环缓冲区大小。设置为 -1 表示无限缓冲区。

类型: int

×

×

--enable-expert-distribution-metrics

启用专家均衡性指标日志记录。

False

布尔标志 (设置即启用)

×

×

--deepep-config

适用于您集群的已调优 DeepEP 配置。可以是 JSON 内容字符串或文件路径。

类型: str

×

×

--moe-dense-tp-size

MoE 密集 MLP 层的 TP 大小。当 TP 大比较大,导致 MLP 层权重的维度小于 GEMM 支持的最小维度而报错时,此标志非常有用。

类型: int

--elastic-ep-backend

为弹性 EP 选择集合通信后端。目前支持 ‘mooncake’。

×

×

--mooncake-ib-device

Mooncake 后端的 InfiniBand 设备,接受多个以逗号分隔的设备。默认为 None,启用 Mooncake 后端时将触发自动设备检测。

×

×

Mamba 缓存#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--max-mamba-cache-size

Mamba 缓存的最大大小。

类型: int

×

×

--mamba-ssm-dtype

Mamba 缓存中 SSM 状态的数据类型。

float32

float32, bfloat16

×

×

--mamba-full-memory-ratio

Mamba 状态内存与全量 KV cache 内存的比例。

0.2

类型: float

×

×

--mamba-scheduler-strategy

Mamba 调度器使用的策略。auto 目前默认为 no_buffer。1. no_buffer 由于不分配额外的 mamba 状态缓冲区,不支持重叠 (overlap) 调度。分支点缓存支持是可行的但尚未实现。2. extra_buffer 通过分配额外的 mamba 状态缓冲区来跟踪 mamba 状态以便缓存,从而支持重叠调度。2a. 对于非 KV cache 受限的情况,extra_buffer 绝对更好;对于 KV cache 受限的情况,取舍取决于启用重叠带来的好处是否超过最大运行请求数减少带来的损失。2b. 在 Radix cache 分支点的 mamba 缓存优于非分支点,但需要内核支持。

auto

auto, no_buffer, extra_buffer

×

×

--mamba-track-interval

在 Decode 期间跟踪 mamba 状态的间隔(以 token 为单位)。仅在 --mamba-scheduler-strategyextra_buffer 时使用。如果设置,必须能被 page_size 整除,且在使用投机采样时必须 >= speculative_num_draft_tokens。

256

类型: int

×

×

多项评分参数#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--multi-item-scoring-delimiter

用于多项评分的分隔符 token ID。用于将查询 (Query) 和项 (Items) 合并为单个序列:QueryItem1Item2... 从而实现针对单个查询的高效多项批量处理。

类型: int

×

×

层级缓存#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--enable-hierarchical-cache

启用层级缓存。

False

布尔标志 (设置即启用)

--hicache-ratio

主机 (Host) KV cache 内存池大小与设备 (Device) 内存池大小的比例。

2.0

类型: float

--hicache-size

主机 KV cache 内存池的大小(以 GB 为单位),如果设置,将覆盖 hicache_ratio。

0

类型: int

--hicache-write-policy

层级缓存的写入策略。

write_through

write_back, write_through, write_through_selective

--radix-eviction-policy

Radix 树的逐出策略。‘lru’ 代表最近最少使用,‘lfu’ 代表最不经常使用。

lru

lru, lfu

--hicache-io-backend

CPU 和 GPU 之间进行 KV cache 传输的 IO 后端。

kernel

kernel_ascend

--hicache-mem-layout

用于分级缓存的主机内存池布局。

layer_first

page_first_direct, page_first_kv_split

--hicache-storage-backend

分级 KV 缓存的存储后端。内置后端:file, mooncake, hf3fs, nixl, aibrix。对于动态后端,使用 –hicache-storage-backend-extra-config 来指定:backend_name(自定义名称)、module_path(Python 模块路径)、class_name(后端类名)。

file

--hicache-storage-prefetch-policy

控制何时停止从存储后端预取。

best_effort

best_effort, wait_complete, timeout

×

×

--hicache-storage-backend-extra-config

包含存储后端额外配置的 JSON 字符串格式字典。

类型: str

×

×

LMCache#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--enable-lmcache

使用 LMCache 作为替代的分级缓存解决方案

False

布尔标志 (设置即启用)

×

×

双重稀疏 (Double Sparsity)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--enable-double-sparsity

启用双重稀疏注意力机制

False

布尔标志 (设置即启用)

×

×

--ds-channel-config-path

双重稀疏通道配置的路径

类型: str

×

×

--ds-heavy-channel-num

双重稀疏注意力中的重通道(heavy channels)数量

32

类型: int

×

×

--ds-heavy-token-num

双重稀疏注意力中的重标记(heavy tokens)数量

256

类型: int

×

×

--ds-heavy-channel-type

双重稀疏注意力中的重通道类型

qk

类型: str

×

×

--ds-sparse-decode-threshold

在双重稀疏后端从稠密回退(dense fallback)切换到稀疏解码内核之前所需的最小解码序列长度。

4096

类型: int

×

×

卸载 (Offloading)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--cpu-offload-gb

为 CPU 卸载预留多少 GB 的 RAM。

0

类型: int

--offload-group-size

卸载时每个组的层数。

-1

类型: int

×

×

--offload-num-in-group

一个组内要卸载的层数。

1

类型: int

×

×

--offload-prefetch-step

卸载时的预取步数。

1

类型: int

×

×

--offload-mode

卸载模式。

cpu

类型: str

×

×

优化/调试选项#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--disable-radix-cache

禁用用于前缀缓存的 RadixAttention。

False

布尔标志 (设置即启用)

--cuda-graph-max-bs

设置 CUDA 图的最大 batch size。它会将 CUDA 图捕获的 batch size 扩展到此值。

类型: int

×

--cuda-graph-bs

设置 CUDA 图的 batch size 列表。

List[int]

×

--disable-cuda-graph

禁用 CUDA 图。

False

布尔标志 (设置即启用)

--disable-cuda-graph-padding

在需要填充(padding)时禁用 CUDA 图。在不需要填充时仍使用 CUDA 图。

False

布尔标志 (设置即启用)

×

--enable-profile-cuda-graph

启用 CUDA 图捕获的性能分析(profiling)。

False

布尔标志 (设置即启用)

×

×

--enable-cudagraph-gc

在 CUDA 图捕获期间启用垃圾回收。如果禁用(默认),GC 将在捕获期间冻结以加快过程。

False

布尔标志 (设置即启用)

×

×

--enable-nccl-nvls

在可用时,为 prefill heavy 请求启用 NCCL NVLS。

False

布尔标志 (设置即启用)

×

×

--enable-symm-mem

启用 NCCL 对称内存以实现快速集合通信。

False

布尔标志 (设置即启用)

×

×

--disable-flashinfer-cutlass-moe-fp4-allgather

禁用 flashinfer cutlass moe 在 all-gather 前的量化。

False

布尔标志 (设置即启用)

×

×

--enable-tokenizer-batch-encode

启用分词器批量编码,以提高处理多个文本输入时的性能。请勿与图像输入、预分词的 input_ids 或 input_embeds 一起使用。

False

布尔标志 (设置即启用)

--disable-outlines-disk-cache

禁用 outlines 的磁盘缓存,以避免可能出现的与文件系统或高并发相关的崩溃。

False

布尔标志 (设置即启用)

--disable-custom-all-reduce

禁用自定义 all-reduce 内核并回退到 NCCL。

False

布尔标志 (设置即启用)

×

×

--enable-mscclpp

启用将 mscclpp 用于 small messages 的 all-reduce 内核,并回退到 NCCL。

False

布尔标志 (设置即启用)

×

×

--enable-torch-symm-mem

启用将 torch symm mem 用于 all-reduce 内核,并回退到 NCCL。仅支持 CUDA 设备 SM90 及以上。SM90 支持 world size 4, 6, 8。SM10 支持 world size 6, 8。

False

布尔标志 (设置即启用)

×

×

--disable-overlap-schedule

禁用重叠调度器,该调度器将 CPU 调度器与 GPU 模型 worker 重叠运行。

False

布尔标志 (设置即启用)

--enable-mixed-chunk

使用分块预取(chunked prefill)时,允许在一个 batch 中混合预取(prefill)和解码(decode)。

False

布尔标志 (设置即启用)

--enable-dp-attention

为注意力机制启用数据并行(DP),为 FFN 启用张量并行(TP)。DP 大小应等于 TP 大小。目前支持 DeepSeek-V2 和 Qwen 2/3 MoE 模型。

False

布尔标志 (设置即启用)

--enable-dp-lm-head

在注意力 TP 组中启用词汇并行,以避免跨 DP 组的 all-gather,优化 DP 注意力下的性能。

False

布尔标志 (设置即启用)

--enable-two-batch-overlap

启用两个微批次(micro batches)重叠。

False

布尔标志 (设置即启用)

×

×

--enable-single-batch-overlap

使计算和通信在一个微批次内重叠。

False

布尔标志 (设置即启用)

×

×

--tbo-token-distribution-threshold

微批次重叠(micro-batch-overlap)中两个 batch 之间 token 分布的阈值,决定是进行 two-batch-overlap 还是 two-chunk-overlap。设置为 0 表示禁用 two-chunk-overlap。

0.48

类型: float

×

×

--enable-torch-compile

使用 torch.compile 优化模型。实验性功能。

False

布尔标志 (设置即启用)

--enable-torch-compile-debug-mode

启用 torch compile 的调试模式。

False

布尔标志 (设置即启用)

--enable-piecewise-cuda-graph

仅针对 extend/prefill 使用分段 CUDA 图(piecewise cuda graph)优化模型。实验性功能。

False

布尔标志 (设置即启用)

×

×

--piecewise-cuda-graph-tokens

设置使用分段 CUDA 图时的 token 列表。

类型:JSON 列表

×

×

--torch-compile-max-bs

设置使用 torch compile 时的最大 batch size。

32

类型: int

×

×

--piecewise-cuda-graph-max-tokens

设置使用分段 CUDA 图时的最大 token 数。

4096

类型: int

×

--torchao-config

使用 torchao 优化模型。实验性功能。当前可选项为:int8dq, int8wo, int4wo-<group_size>, fp8wo, fp8dq-per_tensor, fp8dq-per_row

``

类型: str

×

×

--enable-nan-detection

启用 NaN 检测以用于调试。

False

布尔标志 (设置即启用)

×

×

--enable-p2p-check

启用 GPU 访问的 P2P 检查,否则默认允许 P2P 访问。

False

布尔标志 (设置即启用)

×

×

--triton-attention-reduce-in-fp32

将中间注意力结果转换为 fp32,以避免可能发生的与 fp16 相关的崩溃。这仅影响 Triton 注意力内核。

False

布尔标志 (设置即启用)

×

×

--triton-attention-num-kv-splits

Flash decoding Triton 内核中的 KV 分割数量。在长上下文场景中,较大的值更好。默认值为 8。

8

类型: int

×

×

--triton-attention-split-tile-size

Flash decoding Triton 内核中分割 KV block 的大小。用于确定性推理。

类型: int

×

×

--num-continuous-decode-steps

运行多个连续解码步骤以减少调度开销。这可能会增加吞吐量,但也可能增加首个 token 延迟(TTFT)。默认值为 1,表示一次只运行一个解码步骤。

1

类型: int

×

×

--delete-ckpt-after-loading

加载模型后删除模型检查点。

False

布尔标志 (设置即启用)

×

×

--enable-memory-saver

允许使用 release_memory_occupation 和 resume_memory_occupation 来节省内存

False

布尔标志 (设置即启用)

×

×

--enable-weights-cpu-backup

在执行 release_weights_occupation 和 resume_weights_occupation 期间将模型权重保存到 CPU 内存

False

布尔标志 (设置即启用)

×

×

--allow-auto-truncate

允许自动截断超过最大输入长度的请求,而不是返回错误。

False

布尔标志 (设置即启用)

×

×

--enable-custom-logit-processor

允许用户向服务器传递自定义 logit 处理器(出于安全考虑,默认禁用)

False

布尔标志 (设置即启用)

×

×

--flashinfer-mla-disable-ragged

运行 flashinfer mla 时不使用 ragged prefill wrapper

False

布尔标志 (设置即启用)

×

×

--disable-shared-experts-fusion

为 deepseek v3/r1 禁用共享专家融合(shared experts fusion)优化。

False

布尔标志 (设置即启用)

×

×

--disable-chunked-prefix-cache

为 deepseek 禁用分块前缀缓存功能,这应该会减少短序列的开销。

False

布尔标志 (设置即启用)

×

×

--disable-fast-image-processor

采用基础图像处理器而非快速图像处理器。

False

布尔标志 (设置即启用)

×

×

--keep-mm-feature-on-device

处理后将多模态特征张量保留在设备上,以节省 D2H 拷贝。

False

布尔标志 (设置即启用)

×

×

--enable-return-hidden-states

启用在响应中返回隐藏状态(hidden states)。

False

布尔标志 (设置即启用)

--scheduler-recv-interval

调度器中轮询请求的间隔。可以设置为 >1 以减少此类开销。

1

类型: int

×

×

--numa-node

为子进程设置 NUMA 节点。第 i 个元素对应第 i 个子进程。

List[int]

×

×

--enable-layerwise-nvtx-marker

为模型启用逐层 NVTX 分析注释。这会为每一层添加 NVTX 标记,以便使用 Nsight Systems 进行详细的逐层性能分析。

False

布尔标志 (设置即启用)

×

×

--enable-attn-tp-input-scattered

仅使用张量并行时允许注意力机制的输入是分散的,以减少 qkv latent 等操作的计算负载。

False

布尔标志 (设置即启用)

×

×

--enable-nsa-prefill-context-parallel

用于 DeepSeek v3.2 长序列预取阶段的上下文并行。

False

布尔标志 (设置即启用)

×

×

前向钩子 (Forward hooks)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--forward-hooks

JSON 格式的前向钩子规范列表。每个元素必须包括 target_modules(与 model.named_modules() 名称匹配的 glob 模式列表)和 hook_factory(指向工厂的 Python 导入路径,例如 my_package.hooks:make_hook)。可选的 name 字段用于日志记录,可选的 config 对象作为 dict 传递给工厂。

类型:JSON 列表

×

×

调试张量转储 (Debug tensor dumps)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--debug-tensor-dump-input-file

用于转储张量的输入文件名

类型: str

×

×

--debug-tensor-dump-inject

将来自 jax 的输出注入作为每一层的输入。

False

类型: str

×

×

--enable-dynamic-batch-tokenizer

启用异步动态批量分词器,以提高多个请求并发到达时的性能。

False

布尔标志 (设置即启用)

--dynamic-batch-tokenizer-batch-size

[仅在设置了 –enable-dynamic-batch-tokenizer 时使用] 动态批量分词器的最大 batch size。

32

类型: int

--dynamic-batch-tokenizer-batch-timeout

[仅在设置了 –enable-dynamic-batch-tokenizer 时使用] 批量分词请求的超时时间(秒)。

0.002

类型: float

PD 分离 (PD disaggregation)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--disaggregation-mode

仅用于 PD 分离。 “prefill” 用于仅预取服务器,“decode” 用于仅解码服务器。如果未指定,则不是 PD 分离模式

null

null, prefill, decode

--disaggregation-transfer-backend

用于分离传输的后端。默认为 mooncake。

mooncake

mooncake, nixl, ascend, fake

--disaggregation-bootstrap-port

预取服务器上的引导服务器端口。默认为 8998。

8998

类型: int

--disaggregation-decode-tp

解码 TP 大小。如果未设置,则匹配当前引擎的 TP 大小。这仅在预取服务器上设置。

类型: int

×

×

--disaggregation-decode-dp

解码 DP 大小。如果未设置,则匹配当前引擎的 DP 大小。这仅在预取服务器上设置。

类型: int

×

×

--disaggregation-prefill-pp

预取 PP 大小。如果未设置,则默认为 1。这仅在解码服务器上设置。

1

类型: int

×

×

--disaggregation-ib-device

用于分离传输的 InfiniBand 设备,接受单个设备(例如 –disaggregation-ib-device mlx5_0)或多个逗号分隔的设备(例如 –disaggregation-ib-device mlx5_0,mlx5_1)。默认为 None,当启用 mooncake 后端时会触发自动设备检测。

类型: str

×

×

--disaggregation-decode-enable-offload-kvcache

在解码服务器上启用异步 KV 缓存卸载(PD 模式)。

False

布尔标志 (设置即启用)

×

×

--num-reserved-decode-tokens

向运行中的 batch 添加新请求时,将预留内存的解码 token 数量。

512

类型: int

--disaggregation-decode-polling-interval

解码服务器中轮询请求的间隔。可以设置为 >1 以减少此类开销。

1

类型: int

自定义权重加载器 (Custom weight loader)#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--custom-weight-loader

用于更新模型的自定义数据加载器。应设置有效的导入路径,例如 my_package.weight_load_func

List[str]

×

×

--weight-loader-disable-mmap

使用 safetensors 加载权重时禁用 mmap。

False

布尔标志 (设置即启用)

--remote-instance-weight-loader-seed-instance-ip

从远程实例加载权重时的种子实例 IP。

类型: str

×

×

--remote-instance-weight-loader-seed-instance-service-port

从远程实例加载权重时的种子实例服务端口。

类型: int

×

×

--remote-instance-weight-loader-send-weights-group-ports

从远程实例加载权重时的通信组端口。

类型:JSON 列表

×

×

用于 PD-Multiplexing#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--enable-pdmux

启用 PD-Multiplexing,PD 在 greenctx 流上运行。

False

布尔标志 (设置即启用)

×

×

--pdmux-config-path

PD-Multiplexing 配置文件路径。

类型: str

×

×

--sm-group-num

SM 分区组的数量。

8

类型: int

×

×

用于确定性推理#

参数

描述

默认值

选项

A2 支持情况

A3 支持情况

--enable-deterministic-inference

启用具有 batch 不变操作的确定性推理模式。

False

布尔标志 (设置即启用)

×

×