Ascend NPU 支持的特性#
本节描述了 Ascend NPU 支持的基本功能和特性。如果您遇到问题或有任何疑问,请提交 Issue。
模型与分词器#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
模型权重路径。可以是本地文件夹或 Hugging Face 仓库 ID。 |
|
类型: str |
√ |
√ |
|
分词器路径。 |
|
类型: str |
√ |
√ |
|
分词器模式。‘auto’ 将优先使用快速分词器(如果可用),‘slow’ 将始终使用慢速分词器。 |
|
|
√ |
√ |
|
分词器管理器的 worker 数量。 |
|
类型: int |
√ |
√ |
|
如果设置,将跳过分词器初始化,并在生成请求中传递 input_ids。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
是否允许在 Hub 上通过其自身的建模文件定义自定义模型。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
模型的最大上下文长度。默认为 None(将使用模型 config.json 中的值)。 |
|
类型: int |
√ |
√ |
|
是否将 CausalLM 用作嵌入模型。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
启用推理模型的多模态功能。如果所服务的模型不是多模态模型,则不会生效。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
要使用的特定模型版本。可以是分支名、标签名或 commit ID。如果未指定,将使用默认版本。 |
|
类型: str |
× |
× |
|
使用哪种模型实现。* “auto” 将尝试使用 SGLang 实现(如果存在),否则回退到 Transformers 实现。* “sglang” 将使用 SGLang 模型实现。* “transformers” 将使用 Transformers 模型实现。* “mindspore” 将使用 MindSpore 模型实现。 |
|
‘auto’, ‘sglang’, ‘transformers’ |
× |
√ |
|
模型加载器的额外配置。这将传递给与所选 load_format 对应的模型加载器。 |
{} |
类型: str |
× |
× |
HTTP 服务器#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
HTTP 服务器的主机地址。 |
|
类型: str |
√ |
√ |
|
HTTP 服务器的端口号。 |
|
类型: int |
√ |
√ |
|
如果设置,将跳过预热。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
指定在服务器启动前运行的自定义预热函数 (csv)。例如:–warmups=warmup_name1,warmup_name2 将在服务器开始监听请求前运行 warmup.py 中指定的 |
|
类型: str |
√ |
√ |
|
用于 NCCL 分布式环境设置的端口。默认为随机端口。 |
|
类型: int |
√ |
√ |
量化与数据类型#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
模型权重和激活值的数据类型。* “auto” 对 FP32 和 FP16 模型使用 FP16 精度,对 BF16 模型使用 BF16 精度。* “half” 表示 FP16。建议用于 AWQ 量化。* “float16” 与 “half” 相同。* “bfloat16” 用于在精度和范围之间取得平衡。 |
|
|
√ |
√ |
|
量化方法。 |
|
|
√ |
√ |
|
包含 KV cache 缩放因子的 JSON 文件路径。当 KV cache 数据类型为 FP8 时,通常应提供此文件。否则,KV cache 缩放因子默认为 1.0,这可能会导致精度问题。 |
|
类型: Optional[str] |
× |
× |
|
KV cache 存储的数据类型。“auto” 将使用模型数据类型。“fp8_e5m2” 和 “fp8_e4m3” 仅在 CUDA 11.8+ 上受支持。 |
|
|
√ |
√ |
内存与调度#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
用于静态分配(模型权重和 KV cache 内存池)的内存比例。如果看到显存溢出 (OOM) 错误,请尝试调小此值。 |
|
类型: float |
√ |
√ |
|
最大运行请求数。 |
|
类型: int |
√ |
√ |
|
Prefill 批次中的最大请求数。如果未指定,则没有限制。 |
|
类型: int |
√ |
√ |
|
最大排队请求数。在使用分离模式 (disaggregation-mode) 时忽略此选项。 |
|
类型: int |
√ |
√ |
|
内存池中的最大 token 总数。如果未指定,将根据内存使用比例自动计算。此选项通常用于开发和调试目的。 |
|
类型: int |
√ |
√ |
|
分块 Prefill (chunked prefill) 中每个块的最大 token 数。设置为 -1 表示禁用分块 Prefill。 |
|
类型: int |
√ |
√ |
|
Prefill 批次中的最大 token 数。实际限制将是此值与模型最大上下文长度中的最大值。 |
|
类型: int |
√ |
√ |
|
请求调度策略。 |
|
|
√ |
√ |
|
启用优先级调度。默认情况下,具有较高优先级整数值的请求将首先被调度。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
如果与 –enable-priority-scheduling 同时指定,调度器将优先调度具有较低优先级整数值的请求。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
新请求抢占正在运行请求时所需的最小优先级差值。 |
|
类型: int |
√ |
√ |
|
调度策略的保守程度。值越大表示调度越保守。如果经常看到请求被撤回,请使用较大的值。 |
|
类型: float |
√ |
√ |
|
每个 Page 中的 token 数量。Ascend NPU 自动设置为 128。 |
|
类型: int |
√ |
√ |
|
统一和混合 KV 缓冲区之间的混合比例 [0,1](0.0 = 纯统一:swa_size / full_size = 1)(1.0 = 纯混合:swa_size / full_size = local_attention_size / context_length) |
|
Optional[float] |
× |
× |
|
SWA 层 KV token / 全量层 KV token 的比例,不考虑 swa:full 层的层数。应在 0 到 1 之间。例如,0.5 意味着如果每个 SWA 层有 50 个 token,那么每个全量层有 100 个 token。 |
|
类型: float |
× |
× |
|
禁用混合 SWA 内存。 |
|
布尔标志 (设置即启用) |
× |
× |
运行时选项#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
使用的设备(‘cuda’, ‘xpu’, ‘hpu’, ‘npu’, ‘cpu’)。如果未指定,默认为自动检测。 |
|
类型: str |
√ |
√ |
|
张量并行 (TP) 大小。 |
|
类型: int |
√ |
√ |
|
流水线并行 (PP) 大小。 |
|
类型: int |
× |
× |
|
流水线并行中的最大微批次 (micro batch) 大小。 |
|
类型: int |
× |
× |
|
流式传输的 token 长度间隔(或缓冲区大小)。较小的值使流式输出更平滑,较大的值使吞吐量更高。 |
|
类型: int |
√ |
√ |
|
是否以不相交片段序列的形式输出。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
随机种子。 |
|
类型: int |
√ |
√ |
|
(仅限 outlines 和 llguidance 后端)JSON 约束输出中允许的语法空格的正则表达式模式。例如,要允许模型生成连续空格,请将模式设置为 [\n\t ]* |
|
类型: str |
× |
× |
|
(仅限 xgrammar 和 llguidance 后端)在 JSON 约束输出中强制使用紧凑表示。 |
|
布尔标志 (设置即启用) |
× |
× |
|
设置看门狗超时时间(秒)。如果前向批次耗时超过此时间,服务器将崩溃以防止挂起。 |
|
类型: float |
√ |
√ |
|
设置软看门狗超时时间(秒)。如果前向批次耗时超过此时间,服务器将转储调试信息。 |
|
类型: float |
√ |
√ |
|
设置 torch.distributed 初始化的超时时间。 |
|
类型: int |
× |
× |
|
开始分配 GPU 的起始 ID。在同一台机器上运行多个实例时非常有用。 |
|
类型: int |
√ |
√ |
|
连续使用的 GPU ID 之间的间隔。例如,设置为 2 将使用 GPU 0, 2, 4, ... |
|
类型: int |
√ |
√ |
|
当 sglang 空闲时减少 CPU 占用。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
用于多模态预处理配置的 JSON 字符串。可以包含键: |
|
× |
× |
日志#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
所有 loggers 的日志级别。 |
|
类型: str |
√ |
√ |
|
HTTP 服务器的日志级别。如果未设置,默认重用 –log-level。 |
|
类型: str |
√ |
√ |
|
记录所有请求的元数据、输入和输出。详细程度由 –log-requests-level 决定。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
0: 记录元数据(无采样参数)。1: 记录元数据和采样参数。2: 记录元数据、采样参数和部分输入/输出。3: 记录所有输入/输出。 |
|
|
√ |
√ |
|
转储崩溃前最后 5 分钟请求(如果有)的文件夹路径。如果未指定,则禁用崩溃转储。 |
|
类型: str |
× |
× |
|
当 logprobs 为 nan 时使服务器崩溃。 |
|
类型: str |
× |
× |
|
启用 prometheus 指标日志。 |
|
布尔标志 (设置即启用) |
× |
× |
|
当您希望所有 TP 秩(而不只是 TP 0)上的调度器分别记录请求指标时,启用此项。当启用 dp_attention 时,这特别有用,否则所有指标似乎都来自 TP 0。 |
|
布尔标志 (设置即启用) |
× |
× |
|
指定用于传递分词器指标自定义标签的 HTTP 请求头。 |
|
类型: str |
× |
× |
|
分词器指标允许的自定义标签。标签通过 HTTP 请求中的 ‘–tokenizer-metrics-custom-labels-header’ 字段中的 dict 指定,例如,如果设置了 ‘–tokenizer-metrics-allowed-custom-labels label1 label2’,则允许 {‘label1’: ‘value1’, ‘label2’: ‘value2’}。 |
|
List[str] |
× |
× |
|
首个 token 延迟 (TTFT) 的分桶,指定为浮点数列表。 |
|
List[float] |
× |
× |
|
Token 间隔延迟的分桶,指定为浮点数列表。 |
|
List[float] |
× |
× |
|
端到端请求延迟的分桶,指定为浮点数列表。 |
|
List[float] |
× |
× |
|
收集 prompt/生成 token 的直方图。 |
|
布尔标志 (设置即启用) |
× |
× |
|
Prompt token 的分桶规则。支持 3 种规则类型:‘default’ 使用预定义分桶;‘tse |
|
List[str] |
× |
× |
|
生成 token 直方图的分桶规则。支持 3 种规则类型:‘default’ 使用预定义分桶;‘tse |
|
List[str] |
× |
× |
|
长时间垃圾回收 (GC) 的报警阈值。如果 GC 耗时超过此值,将记录警告日志。设置为 0 以禁用。 |
|
类型: float |
× |
× |
|
Decode 批次的日志记录间隔。 |
|
类型: int |
√ |
√ |
|
启用每个请求的时间统计日志记录。 |
|
布尔标志 (设置即启用) |
× |
× |
|
用于 NVIDIA dynamo KV 事件发布的 JSON 格式配置。如果使用此标志,将启用发布。 |
|
类型: str |
× |
× |
|
启用 opentelemetry 追踪。 |
|
布尔标志 (设置即启用) |
× |
× |
|
如果设置了 –enable-trace,则配置 opentelemetry collector 的端点。格式为 |
|
类型: str |
× |
× |
数据并行#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
数据并行 (DP) 大小。 |
|
类型: int |
√ |
√ |
|
数据并行的负载均衡策略。“Minimum Token” 算法仅在应用 DP attention 时可用。该算法根据 DP worker 的实时 token 负载执行负载均衡。 |
|
|
√ |
√ |
|
Prefill 采用轮询 (round robin) 均衡。这用于保证 Decode 服务器可以获取正确的 DP rank。 |
|
布尔标志 (设置即启用) |
√ |
√ |
多节点分布式服务#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
初始化分布式后端的主机地址(例如, |
|
类型: str |
√ |
√ |
|
节点数量。 |
|
类型: int |
√ |
√ |
|
节点秩 (rank)。 |
|
类型: int |
√ |
√ |
模型重载参数#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
一个 JSON 字符串格式的字典,用于覆盖默认模型配置。 |
|
类型: str |
√ |
√ |
|
将在 /get_model_info 中返回的 JSON 格式采样设置。 |
|
类型: str |
√ |
√ |
LoRA#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
启用模型的 LoRA 支持。如果提供了 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
应支持的最大 LoRA 秩。如果未指定,将根据 |
|
类型: int |
√ |
√ |
|
应应用 LoRA 的所有目标模块的并集(例如, |
|
|
× |
× |
|
要加载的 LoRA 适配器列表。每个适配器必须以以下格式之一指定: |
|
类型: List[str] / JSON 对象 |
√ |
√ |
|
正在运行的批次中的最大适配器数量,包括仅基础模型的请求。 |
|
类型: int |
× |
× |
|
如果指定,则限制一次加载到 CPU 内存中的最大 LoRA 适配器数量。必须 ≥ |
|
类型: int |
× |
× |
|
GPU 内存池满时的 LoRA 适配器逐出策略。 |
|
|
× |
× |
|
选择多 LoRA 服务的内核后端。 |
|
|
× |
× |
|
ChunkedSGMV LoRA 后端的最大块大小。仅在 |
|
|
× |
× |
算子后端 (Attention, Sampling, Grammar, GEMM)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
选择注意力层的算子。 |
|
|
√ |
√ |
|
选择 Prefill 注意力层的算子(优先级高于 –attention-backend)。 |
|
|
√ |
√ |
|
选择 Decode 注意力层的算子(优先级高于 –attention-backend)。 |
|
|
√ |
√ |
|
选择采样层的算子后端。 |
|
|
√ |
√ |
|
选择语法引导解码的后端。 |
|
|
√ |
√ |
|
设置多模态注意力后端。 |
|
|
√ |
√ |
|
选择 Prefill 阶段的 NSA 后端(在运行 DeepSeek NSA 风格注意力时覆盖 |
|
|
× |
× |
|
在运行 DeepSeek NSA 风格注意力时选择 Decode 阶段的 NSA 后端。覆盖 |
|
|
× |
× |
|
选择 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。 |
|
|
× |
× |
|
Flashinfer 自动调优默认启用。设置此标志以禁用自动调优。 |
|
布尔标志 (设置即启用) |
× |
× |
投机采样#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
投机采样算法。 |
|
|
√ |
√ |
|
草稿模型 (Draft Model) 权重的路径。可以是本地文件夹或 Hugging Face 仓库 ID。 |
|
类型: str |
√ |
√ |
|
要使用的特定草稿模型版本。可以是分支名、标签名或 commit ID。如果未指定,将使用默认版本。 |
|
类型: str |
× |
× |
|
在投机采样中从草稿模型采样的步数。 |
|
类型: int |
√ |
√ |
|
在 eagle2 中每步从草稿模型采样的 token 数量。 |
|
类型: int |
√ |
√ |
|
在投机采样中从草稿模型采样的 token 数量。 |
|
类型: int |
√ |
√ |
|
如果草稿 token 在目标模型中的概率大于此阈值,则接受该 token。 |
|
类型: float |
√ |
√ |
|
草稿 token 的接受概率从其目标概率 p 提升到 min(1, p / threshold_acc)。 |
|
类型: float |
√ |
√ |
|
草稿模型的小词表路径。 |
|
类型: str |
× |
× |
|
投机采样操作(目标验证和草稿扩展)的注意力后端。可以是 ‘prefill’(默认)或 ‘decode’ 之一。 |
|
|
√ |
√ |
|
EAGLE 投机采样的 MOE 后端,选项参见 –moe-runner-backend。如果未设置,与 moe runner backend 相同。 |
|
√ |
√ |
|
|
EAGLE 投机采样的 MOE A2A 后端,选项参见 –moe-a2a-backend。如果未设置,与 moe a2a backend 相同。 |
|
√ |
√ |
Ngram 投机采样#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
Ngram 投机采样中模式匹配的最小窗口大小。 |
|
类型: int |
× |
× |
|
Ngram 投机采样中模式匹配的最大窗口大小。 |
|
类型: int |
× |
× |
|
Ngram 投机采样中 BFS(广度优先搜索)的最小宽度。 |
|
类型: int |
× |
× |
|
Ngram 投机采样中 BFS(广度优先搜索)的最大宽度。 |
|
类型: int |
× |
× |
|
缓存树的匹配类型。 |
|
|
× |
× |
|
Ngram 投机采样的分支长度。 |
|
类型: int |
× |
× |
|
Ngram 投机采样的缓存容量。 |
|
类型: int |
× |
× |
专家并行#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
专家并行 (EP) 大小。默认等于 TP 大小。 |
|
类型: int |
× |
√ |
|
选择专家并行的 all-to-all 通信后端。 |
|
|
× |
√ |
|
选择 MoE 的运行器后端。 |
|
|
× |
√ |
|
选择 flashinfer mxfp4 moe 的计算精度。 |
|
|
× |
× |
|
启用 FlashInfer 与 Residual RMSNorm 的 allreduce 融合。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用 DeepEP MoE 时选择模式,可以是 |
|
|
× |
√ |
|
在专家并行中分配的冗余专家数量。 |
|
类型: int |
× |
× |
|
在专家并行中为冗余专家选择秩 (rank) 的算法。 |
|
类型: str |
× |
× |
|
EP 专家的初始位置。 |
|
类型: str |
× |
× |
|
启用 EPLB 算法。 |
|
布尔标志 (设置即启用) |
× |
× |
|
选定的 EPLB 算法。 |
|
类型: str |
× |
× |
|
每次前向传递要重新平衡的层数。 |
|
类型: int |
× |
× |
|
触发 EPLB 重新平衡的 GPU 平均利用率最小阈值。必须在 [0.0, 1.0] 范围内。 |
|
类型: float |
× |
× |
|
专家分布记录器的模式。 |
|
类型: str |
× |
× |
|
专家分布记录器的循环缓冲区大小。设置为 -1 表示无限缓冲区。 |
|
类型: int |
× |
× |
|
启用专家均衡性指标日志记录。 |
|
布尔标志 (设置即启用) |
× |
× |
|
适用于您集群的已调优 DeepEP 配置。可以是 JSON 内容字符串或文件路径。 |
|
类型: str |
× |
× |
|
MoE 密集 MLP 层的 TP 大小。当 TP 大比较大,导致 MLP 层权重的维度小于 GEMM 支持的最小维度而报错时,此标志非常有用。 |
|
类型: int |
√ |
√ |
|
为弹性 EP 选择集合通信后端。目前支持 ‘mooncake’。 |
无 |
无 |
× |
× |
|
Mooncake 后端的 InfiniBand 设备,接受多个以逗号分隔的设备。默认为 None,启用 Mooncake 后端时将触发自动设备检测。 |
无 |
无 |
× |
× |
Mamba 缓存#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
Mamba 缓存的最大大小。 |
|
类型: int |
× |
× |
|
Mamba 缓存中 SSM 状态的数据类型。 |
|
|
× |
× |
|
Mamba 状态内存与全量 KV cache 内存的比例。 |
|
类型: float |
× |
× |
|
Mamba 调度器使用的策略。 |
|
|
× |
× |
|
在 Decode 期间跟踪 mamba 状态的间隔(以 token 为单位)。仅在 |
|
类型: int |
× |
× |
多项评分参数#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
用于多项评分的分隔符 token ID。用于将查询 (Query) 和项 (Items) 合并为单个序列:Query |
|
类型: int |
× |
× |
层级缓存#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
启用层级缓存。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
主机 (Host) KV cache 内存池大小与设备 (Device) 内存池大小的比例。 |
|
类型: float |
√ |
√ |
|
主机 KV cache 内存池的大小(以 GB 为单位),如果设置,将覆盖 hicache_ratio。 |
|
类型: int |
√ |
√ |
|
层级缓存的写入策略。 |
|
|
√ |
√ |
|
Radix 树的逐出策略。‘lru’ 代表最近最少使用,‘lfu’ 代表最不经常使用。 |
|
|
√ |
√ |
|
CPU 和 GPU 之间进行 KV cache 传输的 IO 后端。 |
|
|
√ |
√ |
|
用于分级缓存的主机内存池布局。 |
|
|
√ |
√ |
|
分级 KV 缓存的存储后端。内置后端:file, mooncake, hf3fs, nixl, aibrix。对于动态后端,使用 –hicache-storage-backend-extra-config 来指定:backend_name(自定义名称)、module_path(Python 模块路径)、class_name(后端类名)。 |
|
|
√ |
√ |
|
控制何时停止从存储后端预取。 |
|
|
× |
× |
|
包含存储后端额外配置的 JSON 字符串格式字典。 |
|
类型: str |
× |
× |
LMCache#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
使用 LMCache 作为替代的分级缓存解决方案 |
|
布尔标志 (设置即启用) |
× |
× |
双重稀疏 (Double Sparsity)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
启用双重稀疏注意力机制 |
|
布尔标志 (设置即启用) |
× |
× |
|
双重稀疏通道配置的路径 |
|
类型: str |
× |
× |
|
双重稀疏注意力中的重通道(heavy channels)数量 |
|
类型: int |
× |
× |
|
双重稀疏注意力中的重标记(heavy tokens)数量 |
|
类型: int |
× |
× |
|
双重稀疏注意力中的重通道类型 |
|
类型: str |
× |
× |
|
在双重稀疏后端从稠密回退(dense fallback)切换到稀疏解码内核之前所需的最小解码序列长度。 |
|
类型: int |
× |
× |
卸载 (Offloading)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
为 CPU 卸载预留多少 GB 的 RAM。 |
|
类型: int |
√ |
√ |
|
卸载时每个组的层数。 |
|
类型: int |
× |
× |
|
一个组内要卸载的层数。 |
|
类型: int |
× |
× |
|
卸载时的预取步数。 |
|
类型: int |
× |
× |
|
卸载模式。 |
|
类型: str |
× |
× |
优化/调试选项#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
禁用用于前缀缓存的 RadixAttention。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
设置 CUDA 图的最大 batch size。它会将 CUDA 图捕获的 batch size 扩展到此值。 |
|
类型: int |
× |
√ |
|
设置 CUDA 图的 batch size 列表。 |
|
List[int] |
× |
√ |
|
禁用 CUDA 图。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
在需要填充(padding)时禁用 CUDA 图。在不需要填充时仍使用 CUDA 图。 |
|
布尔标志 (设置即启用) |
× |
√ |
|
启用 CUDA 图捕获的性能分析(profiling)。 |
|
布尔标志 (设置即启用) |
× |
× |
|
在 CUDA 图捕获期间启用垃圾回收。如果禁用(默认),GC 将在捕获期间冻结以加快过程。 |
|
布尔标志 (设置即启用) |
× |
× |
|
在可用时,为 prefill heavy 请求启用 NCCL NVLS。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用 NCCL 对称内存以实现快速集合通信。 |
|
布尔标志 (设置即启用) |
× |
× |
|
禁用 flashinfer cutlass moe 在 all-gather 前的量化。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用分词器批量编码,以提高处理多个文本输入时的性能。请勿与图像输入、预分词的 input_ids 或 input_embeds 一起使用。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
禁用 outlines 的磁盘缓存,以避免可能出现的与文件系统或高并发相关的崩溃。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
禁用自定义 all-reduce 内核并回退到 NCCL。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用将 mscclpp 用于 small messages 的 all-reduce 内核,并回退到 NCCL。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用将 torch symm mem 用于 all-reduce 内核,并回退到 NCCL。仅支持 CUDA 设备 SM90 及以上。SM90 支持 world size 4, 6, 8。SM10 支持 world size 6, 8。 |
|
布尔标志 (设置即启用) |
× |
× |
|
禁用重叠调度器,该调度器将 CPU 调度器与 GPU 模型 worker 重叠运行。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
使用分块预取(chunked prefill)时,允许在一个 batch 中混合预取(prefill)和解码(decode)。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
为注意力机制启用数据并行(DP),为 FFN 启用张量并行(TP)。DP 大小应等于 TP 大小。目前支持 DeepSeek-V2 和 Qwen 2/3 MoE 模型。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
在注意力 TP 组中启用词汇并行,以避免跨 DP 组的 all-gather,优化 DP 注意力下的性能。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
启用两个微批次(micro batches)重叠。 |
|
布尔标志 (设置即启用) |
× |
× |
|
使计算和通信在一个微批次内重叠。 |
|
布尔标志 (设置即启用) |
× |
× |
|
微批次重叠(micro-batch-overlap)中两个 batch 之间 token 分布的阈值,决定是进行 two-batch-overlap 还是 two-chunk-overlap。设置为 0 表示禁用 two-chunk-overlap。 |
|
类型: float |
× |
× |
|
使用 torch.compile 优化模型。实验性功能。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
启用 torch compile 的调试模式。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
仅针对 extend/prefill 使用分段 CUDA 图(piecewise cuda graph)优化模型。实验性功能。 |
|
布尔标志 (设置即启用) |
× |
× |
|
设置使用分段 CUDA 图时的 token 列表。 |
|
类型:JSON 列表 |
× |
× |
|
设置使用 torch compile 时的最大 batch size。 |
|
类型: int |
× |
× |
|
设置使用分段 CUDA 图时的最大 token 数。 |
|
类型: int |
× |
√ |
|
使用 torchao 优化模型。实验性功能。当前可选项为:int8dq, int8wo, int4wo-<group_size>, fp8wo, fp8dq-per_tensor, fp8dq-per_row |
`` |
类型: str |
× |
× |
|
启用 NaN 检测以用于调试。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用 GPU 访问的 P2P 检查,否则默认允许 P2P 访问。 |
|
布尔标志 (设置即启用) |
× |
× |
|
将中间注意力结果转换为 fp32,以避免可能发生的与 fp16 相关的崩溃。这仅影响 Triton 注意力内核。 |
|
布尔标志 (设置即启用) |
× |
× |
|
Flash decoding Triton 内核中的 KV 分割数量。在长上下文场景中,较大的值更好。默认值为 8。 |
|
类型: int |
× |
× |
|
Flash decoding Triton 内核中分割 KV block 的大小。用于确定性推理。 |
|
类型: int |
× |
× |
|
运行多个连续解码步骤以减少调度开销。这可能会增加吞吐量,但也可能增加首个 token 延迟(TTFT)。默认值为 1,表示一次只运行一个解码步骤。 |
|
类型: int |
× |
× |
|
加载模型后删除模型检查点。 |
|
布尔标志 (设置即启用) |
× |
× |
|
允许使用 release_memory_occupation 和 resume_memory_occupation 来节省内存 |
|
布尔标志 (设置即启用) |
× |
× |
|
在执行 release_weights_occupation 和 resume_weights_occupation 期间将模型权重保存到 CPU 内存 |
|
布尔标志 (设置即启用) |
× |
× |
|
允许自动截断超过最大输入长度的请求,而不是返回错误。 |
|
布尔标志 (设置即启用) |
× |
× |
|
允许用户向服务器传递自定义 logit 处理器(出于安全考虑,默认禁用) |
|
布尔标志 (设置即启用) |
× |
× |
|
运行 flashinfer mla 时不使用 ragged prefill wrapper |
|
布尔标志 (设置即启用) |
× |
× |
|
为 deepseek v3/r1 禁用共享专家融合(shared experts fusion)优化。 |
|
布尔标志 (设置即启用) |
× |
× |
|
为 deepseek 禁用分块前缀缓存功能,这应该会减少短序列的开销。 |
|
布尔标志 (设置即启用) |
× |
× |
|
采用基础图像处理器而非快速图像处理器。 |
|
布尔标志 (设置即启用) |
× |
× |
|
处理后将多模态特征张量保留在设备上,以节省 D2H 拷贝。 |
|
布尔标志 (设置即启用) |
× |
× |
|
启用在响应中返回隐藏状态(hidden states)。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
调度器中轮询请求的间隔。可以设置为 >1 以减少此类开销。 |
|
类型: int |
× |
× |
|
为子进程设置 NUMA 节点。第 i 个元素对应第 i 个子进程。 |
|
List[int] |
× |
× |
|
为模型启用逐层 NVTX 分析注释。这会为每一层添加 NVTX 标记,以便使用 Nsight Systems 进行详细的逐层性能分析。 |
|
布尔标志 (设置即启用) |
× |
× |
|
仅使用张量并行时允许注意力机制的输入是分散的,以减少 qkv latent 等操作的计算负载。 |
|
布尔标志 (设置即启用) |
× |
× |
|
用于 DeepSeek v3.2 长序列预取阶段的上下文并行。 |
|
布尔标志 (设置即启用) |
× |
× |
前向钩子 (Forward hooks)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
JSON 格式的前向钩子规范列表。每个元素必须包括 |
|
类型:JSON 列表 |
× |
× |
调试张量转储 (Debug tensor dumps)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
用于转储张量的输入文件名 |
|
类型: str |
× |
× |
|
将来自 jax 的输出注入作为每一层的输入。 |
|
类型: str |
× |
× |
|
启用异步动态批量分词器,以提高多个请求并发到达时的性能。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
[仅在设置了 –enable-dynamic-batch-tokenizer 时使用] 动态批量分词器的最大 batch size。 |
|
类型: int |
√ |
√ |
|
[仅在设置了 –enable-dynamic-batch-tokenizer 时使用] 批量分词请求的超时时间(秒)。 |
|
类型: float |
√ |
√ |
PD 分离 (PD disaggregation)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
仅用于 PD 分离。 “prefill” 用于仅预取服务器,“decode” 用于仅解码服务器。如果未指定,则不是 PD 分离模式 |
|
|
√ |
√ |
|
用于分离传输的后端。默认为 mooncake。 |
|
|
√ |
√ |
|
预取服务器上的引导服务器端口。默认为 8998。 |
|
类型: int |
√ |
√ |
|
解码 TP 大小。如果未设置,则匹配当前引擎的 TP 大小。这仅在预取服务器上设置。 |
|
类型: int |
× |
× |
|
解码 DP 大小。如果未设置,则匹配当前引擎的 DP 大小。这仅在预取服务器上设置。 |
|
类型: int |
× |
× |
|
预取 PP 大小。如果未设置,则默认为 1。这仅在解码服务器上设置。 |
|
类型: int |
× |
× |
|
用于分离传输的 InfiniBand 设备,接受单个设备(例如 –disaggregation-ib-device mlx5_0)或多个逗号分隔的设备(例如 –disaggregation-ib-device mlx5_0,mlx5_1)。默认为 None,当启用 mooncake 后端时会触发自动设备检测。 |
|
类型: str |
× |
× |
|
在解码服务器上启用异步 KV 缓存卸载(PD 模式)。 |
|
布尔标志 (设置即启用) |
× |
× |
|
向运行中的 batch 添加新请求时,将预留内存的解码 token 数量。 |
|
类型: int |
√ |
√ |
|
解码服务器中轮询请求的间隔。可以设置为 >1 以减少此类开销。 |
|
类型: int |
√ |
√ |
自定义权重加载器 (Custom weight loader)#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
用于更新模型的自定义数据加载器。应设置有效的导入路径,例如 my_package.weight_load_func |
|
List[str] |
× |
× |
|
使用 safetensors 加载权重时禁用 mmap。 |
|
布尔标志 (设置即启用) |
√ |
√ |
|
从远程实例加载权重时的种子实例 IP。 |
|
类型: str |
× |
× |
|
从远程实例加载权重时的种子实例服务端口。 |
|
类型: int |
× |
× |
|
从远程实例加载权重时的通信组端口。 |
|
类型:JSON 列表 |
× |
× |
用于 PD-Multiplexing#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
启用 PD-Multiplexing,PD 在 greenctx 流上运行。 |
|
布尔标志 (设置即启用) |
× |
× |
|
PD-Multiplexing 配置文件路径。 |
|
类型: str |
× |
× |
|
SM 分区组的数量。 |
|
类型: int |
× |
× |
用于确定性推理#
参数 |
描述 |
默认值 |
选项 |
A2 支持情况 |
A3 支持情况 |
|---|---|---|---|---|---|
|
启用具有 batch 不变操作的确定性推理模式。 |
|
布尔标志 (设置即启用) |
× |
× |