服务器参数#

本页提供了命令行中用于配置语言模型服务器在部署期间的行为和性能的服务器参数列表。这些参数使用户能够自定义服务器的关键方面,包括模型选择、并行策略、内存管理和优化技术。 您可以通过 python3 -m sglang.launch_server --help 查找所有参数。

常用启动命令#

  • 使用配置文件,创建一个包含服务器参数的 YAML 文件,并通过 --config 指定它。CLI 参数将覆盖配置文件中的值。

    # 创建 config.yaml
    cat > config.yaml << EOF
    model-path: meta-llama/Meta-Llama-3-8B-Instruct
    host: 0.0.0.0
    port: 30000
    tensor-parallel-size: 2
    enable-metrics: true
    log-requests: true
    EOF
    
    # 使用配置文件启动服务器
    python -m sglang.launch_server --config config.yaml
    
  • 启用多 GPU 张量并行,添加 --tp 2。如果报告"这两个设备之间不支持对等访问"的错误,请在服务器启动命令中添加 --enable-p2p-check

    python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --tp 2
    
  • 启用多 GPU 数据并行,添加 --dp 2。如果有足够的内存,数据并行对吞吐量更好。它也可以与张量并行一起使用。以下命令总共使用 4 个 GPU。我们推荐 SGLang Router 用于数据并行。

    python -m sglang_router.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --dp 2 --tp 2
    
  • 如果在服务过程中看到内存不足错误,请尝试通过设置较小的 --mem-fraction-static 值来减少 KV 缓存池的内存使用。默认值是 0.9

    python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --mem-fraction-static 0.7
    
  • 有关调整超参数以获得更好性能的信息,请参见超参数调优

  • 对于 Docker 和 Kubernetes 运行,您需要设置用于进程间通信的共享内存。请参见 Docker 的 --shm-size 和 Kubernetes 清单的 /dev/shm 大小更新。

  • 如果在长提示的前填充过程中看到内存不足错误,请尝试设置较小的分块前填充大小。

    python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --chunked-prefill-size 4096
    
  • 启用 torch.compile 加速,添加 --enable-torch-compile。它能在小批量大小下加速小模型。默认情况下,缓存路径位于 /tmp/torchinductor_root,您可以使用环境变量 TORCHINDUCTOR_CACHE_DIR 进行自定义。更多详情,请参考 PyTorch 官方文档为 torch.compile 启用缓存

  • 启用 torchao 量化,添加 --torchao-config int4wo-128。它也支持其他量化策略 (INT8/FP8)

  • 启用 fp8 权重量化,在 fp16 检查点上添加 --quantization fp8 或直接加载 fp8 检查点,无需指定任何参数。

  • 启用 fp8 kv 缓存量化,添加 --kv-cache-dtype fp8_e5m2

  • 启用确定性推理和批处理不变操作,添加 --enable-deterministic-inference。更多详情请参见确定性推理文档

  • 如果模型的 Hugging Face 分词器中没有聊天模板,您可以指定自定义聊天模板

  • 在多个节点上运行张量并行,添加 --nnodes 2。如果您有两个节点,每个节点有两个 GPU,并且想要运行 TP=4,让 sgl-dev-0 是第一个节点的主机名,50000 是可用端口,您可以使用以下命令。如果遇到死锁,请尝试添加 --disable-cuda-graph

    # 节点 0
    python -m sglang.launch_server \
      --model-path meta-llama/Meta-Llama-3-8B-Instruct \
      --tp 4 \
      --dist-init-addr sgl-dev-0:50000 \
      --nnodes 2 \
      --node-rank 0
    
    # 节点 1
    python -m sglang.launch_server \
      --model-path meta-llama/Meta-Llama-3-8B-Instruct \
      --tp 4 \
      --dist-init-addr sgl-dev-0:50000 \
      --nnodes 2 \
      --node-rank 1
    

请参阅下面的文档和 server_args.py 以了解启动服务器时可以提供的参数。

模型和分词器#

参数

描述

默认值

选项

--model-path
--model

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

None

类型: str

--tokenizer-path

分词器的路径。

None

类型: str

--tokenizer-mode

分词器模式。"auto" 将在可用时使用快速分词器,"slow" 将始终使用慢速分词器。

auto

auto, slow

--tokenizer-worker-num

分词器管理器的工作器数量。

1

类型: int

--skip-tokenizer-init

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

False

bool 标志 (设置以启用)

--load-format

要加载的模型权重的格式。"auto" 将尝试以 safetensors 格式加载权重,如果 safetensors 格式不可用,则回退到 pytorch bin 格式。"pt" 将以 pytorch bin 格式加载权重。"safetensors" 将以 safetensors 格式加载权重。"npcache" 将以 pytorch 格式加载权重并存储 numpy 缓存以加快加载速度。"dummy" 将使用随机值初始化权重,主要用于性能分析。"gguf" 将以 gguf 格式加载权重。"bitsandbytes" 将使用 bitsandbytes 量化加载权重。"layered" 逐层加载权重,以便在加载另一个层之前可以量化一层,以减少峰值内存占用。

auto

auto, pt, safetensors, npcache, dummy, sharded_state, gguf, bitsandbytes, layered, remote, remote_instance

--model-loader-extra-config

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

{}

类型: str

--trust-remote-code

是否允许 Hub 上自定义的、在它们自己的建模文件中定义的模型。

False

bool 标志 (设置以启用)

--context-length

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

None

类型: int

--is-embedding

是否将 CausalLM 用作嵌入模型。

False

bool 标志 (设置以启用)

--enable-multimodal

为所服务的模型启用多模态功能。如果所服务的模型不是多模态的,则不会发生任何操作

None

bool 标志 (设置以启用)

--revision

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

None

类型: str

--model-impl

使用模型的哪个实现。"auto" 将尝试使用 SGLang 实现(如果存在),如果没有 SGLang 实现,则回退到 Transformers 实现。"sglang" 将使用 SGLang 模型实现。*"transformers" 将使用 Transformers 模型实现。

auto

类型: str

HTTP 服务器#

参数

描述

默认值

选项

--host

HTTP 服务器的地址。

127.0.0.1

类型: str

--port

HTTP 服务器的端口。

30000

类型: int

--skip-server-warmup

如果设置,则跳过预热。

False

bool 标志 (设置以启用)

--warmups

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

None

类型: str

--nccl-port

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

None

类型: int

量化和数据类型#

参数

描述

默认值

选项

--dtype

模型权重和激活的数据类型。"auto" 对 FP32 和 FP16 模型使用 FP16 精度,对 BF16 模型使用 BF16 精度。"half" 表示 FP16。推荐用于 AWQ 量化。"float16" 与 "half" 相同。"bfloat16" 用于平衡精度和范围。"float" 是 FP32 精度的简写。"float32" 表示 FP32 精度。

auto

auto, half, float16, bfloat16, float, float32

--quantization

量化方法。

None

awq, fp8, gptq, marlin, gptq_marlin, awq_marlin, bitsandbytes, gguf, modelopt, modelopt_fp4, petit_nvfp4, w8a8_int8, w8a8_fp8, moe_wna16, qoq, w4afp8, mxfp4

--quantization-param-path

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

None

类型: Optional[str]

--modelopt-quant

ModelOpt 量化配置。支持的值:"fp8", "int4_awq", "w4a8_awq", "nvfp4", "nvfp4_awq"。这需要安装 NVIDIA Model Optimizer 库:pip install nvidia-modelopt

None

类型: str

--modelopt-checkpoint-restore-path

恢复先前保存的 ModelOpt 量化检查点的路径。如果提供,将跳过量化过程,并将从此检查点加载模型。

None

类型: str

--modelopt-checkpoint-save-path

量化后保存 ModelOpt 量化检查点的路径。这允许在将来的运行中重用量化模型。

None

类型: str

--kv-cache-dtype

KV 缓存存储的数据类型。"auto" 将使用模型数据类型。"fp8_e5m2" 和 "fp8_e4m3" 支持 CUDA 11.8+。

auto

auto, fp8_e5m2, fp8_e4m3

--enable-fp32-lm-head

如果设置,LM 输出 (logits) 将为 FP32 格式。

False

bool 标志 (设置以启用)

内存和调度#

参数

描述

默认值

选项

--mem-fraction-static

用于静态分配(模型权重和 KV 缓存内存池)的内存比例。如果您看到内存不足错误,请使用较小的值。

None

类型: float

--max-running-requests

最大运行请求数。

None

类型: int

--max-queued-requests

最大排队请求数。使用分离模式时,此选项将被忽略。

None

类型: int

--max-total-tokens

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

None

类型: int

--chunked-prefill-size

分块前填充中一个块的最大令牌数。将其设置为 -1 表示禁用分块前填充。

None

类型: int

--max-prefill-tokens

一个前填充批次中的最大令牌数。实际界限将是此值和模型最大上下文长度中的较大者。

16384

类型: int

--schedule-policy

请求的调度策略。

fcfs

lpm, random, fcfs, dfs-weight, lof, priority

--enable-priority-scheduling

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

False

bool 标志 (设置以启用)

--schedule-low-priority-values-first

如果与 --enable-priority-scheduling 一起指定,调度程序将首先安排优先级整数值较低的请求。

False

bool 标志 (设置以启用)

--priority-scheduling-preemption-threshold

传入请求必须抢占运行请求的最小优先级差异。

10

类型: int

--schedule-conservativeness

调度策略有多保守。较大的值表示更保守的调度。如果您看到请求被频繁撤回,请使用较大的值。

1.0

类型: float

--page-size

一个页面中的令牌数量。

1

类型: int

--hybrid-kvcache-ratio

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

None

Optional[float]

--swa-full-tokens-ratio

SWA 层 KV 令牌 / 完整层 KV 令牌的比例,无论 swa:full 层的数量如何。它应该在 0 和 1 之间。例如,0.5 表示如果每个 swa 层有 50 个令牌,则每个完整层有 100 个令牌。

0.8

类型: float

--disable-hybrid-swa-memory

禁用混合 SWA 内存。

False

bool 标志 (设置以启用)

运行时选项#

参数

描述

默认值

选项

--device

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

None

类型: str

--elastic-ep-backend

选择弹性 EP 的集体通信后端。目前支持 'mooncake'。

None

N/A

--mooncake-ib-device

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

None

N/A

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

张量并行大小。

1

类型: int

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

流水线并行大小。

1

类型: int

--pp-max-micro-batch-size

流水线并行中的最大微批次大小。

None

类型: int

--stream-interval

流式传输的间隔(或缓冲区大小),以令牌长度为单位。较小的值使流式传输更平滑,而较大的值使吞吐量更高

1

类型: int

--stream-output

是否作为不相交段的序列输出。

False

bool 标志 (设置以启用)

--random-seed

随机种子。

None

类型: int

--constrained-json-whitespace-pattern

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

None

类型: str

--constrained-json-disable-any-whitespace

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

False

bool 标志 (设置以启用)

--watchdog-timeout

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

300

类型: float

--dist-timeout

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

None

类型: int

--download-dir

huggingface 的模型下载目录。

None

类型: str

--base-gpu-id

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

0

类型: int

--gpu-id-step

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

1

类型: int

--sleep-on-idle

当 sglang 空闲时减少 CPU 使用率。

False

bool 标志 (设置以启用)

--mm-process-config

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

{}

日志#

参数

描述

默认值

选项

--log-level

所有日志记录器的日志级别。

info

类型: str

--log-level-http

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

None

类型: str

--log-requests

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

False

bool 标志 (设置以启用)

--log-requests-level

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

2

0, 1, 2, 3

--crash-dump-folder

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

None

类型: str

--crash-on-nan

在 nan logprobs 时使服务器崩溃。

False

类型: str

--show-time-cost

显示自定义标记的时间成本。

False

bool 标志 (设置以启用)

--enable-metrics

启用记录 prometheus 指标。

False

bool 标志 (设置以启用)

--enable-metrics-for-all-schedulers

当您希望所有 TP 等级(不仅仅是 TP 0)上的调度程序分别记录请求指标时,启用 --enable-metrics-for-all-schedulers。这在启用 dp_attention 时特别有用,否则所有指标似乎都来自 TP 0。

False

bool 标志 (设置以启用)

--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'}。

None

List[str]

--bucket-time-to-first-token

到第一个令牌的时间桶,指定为浮点数列表。

None

List[float]

--bucket-inter-token-latency

令牌间延迟的桶,指定为浮点数列表。

None

List[float]

--bucket-e2e-request-latency

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

None

List[float]

--collect-tokens-histogram

收集提示/生成令牌直方图。

False

bool 标志 (设置以启用)

--prompt-tokens-buckets

提示令牌的桶规则。支持 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')。

None

List[str]

--generation-tokens-buckets

生成令牌直方图的桶规则。支持 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')。

None

List[str]

--gc-warning-threshold-secs

长时间 GC 警告的阈值。如果 GC 花费的时间超过此值,将记录警告。设置为 0 以禁用。

0.0

类型: float

--decode-log-interval

解码批次的日志记录间隔。

40

类型: int

--enable-request-time-stats-logging

启用每个请求时间统计记录

False

bool 标志 (设置以启用)

--kv-events-config

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

None

类型: str

--enable-trace

启用 opentelemetry 跟踪

False

bool 标志 (设置以启用)

--oltp-traces-endpoint

如果设置了 --enable-trace,配置 opentelemetry 收集器端点。格式::

localhost:4317

类型: str

API 相关#

参数

描述

默认值

选项

--api-key

设置服务器的 API 密钥。它也用于 OpenAI API 兼容服务器。

None

类型: str

--served-model-name

覆盖 OpenAI API 服务器中 v1/models 端点返回的模型名称。

None

类型: str

--weight-version

模型权重的版本标识符。如果未指定,默认为 "default"。

default

类型: str

--chat-template 内置聊天模板名称或聊天模板文件的路径。这仅用于 OpenAI 兼容 API 服务器。

None

类型: str

--completion-template 内置完成模板名称或完成模板文件的路径。这仅用于 OpenAI 兼容 API 服务器。目前仅用于代码补全。

None

类型: str

--file-storage-path

后端文件存储的路径。

sglang_storage

类型: str

--enable-cache-report

在每个 openai 请求的 usage.prompt_tokens_details 中返回缓存令牌数。

False

bool 标志 (设置以启用)

--reasoning-parser

指定推理模型的解析器。支持的解析器:[deepseek-r1, deepseek-v3, glm45, gpt-oss, kimi, qwen3, qwen3-thinking, step3]。

None

deepseek-r1, deepseek-v3, glm45, gpt-oss, kimi, qwen3, qwen3-thinking, step3

--tool-call-parser

指定处理工具调用交互的解析器。支持的解析器:[deepseekv3, deepseekv31, glm, glm45, gpt-oss, kimi_k2, llama3, mistral, pythonic, qwen, qwen25, qwen3_coder, step3]。

None

deepseekv3, deepseekv31, glm, glm45, gpt-oss, kimi_k2, llama3, mistral, pythonic, qwen, qwen25, qwen3_coder, step3

--sampling-defaults 获取默认采样参数的位置。"openai" 使用 SGLang/OpenAI 默认值(temperature=1.0, top_p=1.0 等)。"model" 使用模型的 generation_config.json(如果可用)获取推荐的采样参数。默认为 "model"。

model

openai, model

--tool-server

"demo" 或逗号分隔的工具服务器 URL 列表,用于模型。如果未指定,则不使用任何工具服务器。

None

类型: str

数据并行#

参数

描述

默认值

选项

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

数据并行大小。

1

类型: int

--load-balance-method

数据并行性的负载均衡策略。最小令牌算法只能在应用 DP 注意力时使用。该算法基于 DP 工作器的实时令牌负载进行负载均衡。

round_robin

round_robin, shortest_queue, minimum_tokens

--load-watch-interval

负载监控的间隔(秒)。

0.1

类型: float

--prefill-round-robin-balance

前填充是轮询平衡的。这用于确保解码服务器可以获得正确的 dp 等级。

False

bool 标志 (设置以启用)

多节点分布式服务#

参数

描述

默认值

选项

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

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

None

类型: str

--nnodes

节点数。

1

类型: int

--node-rank

节点等级。

0

类型: int

模型覆盖参数#

参数

描述

默认值

选项

--json-model-override-args

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

{}

类型: str

--preferred-sampling-params

在 /get_model_info 中返回的 json 格式采样设置

None

类型: str

LoRA#

参数

描述

默认值

选项

--enable-lora

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

False

Bool 标志 (设置以启用)

--max-lora-rank

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

None

类型: int

--lora-target-modules

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

None

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

--lora-paths

要加载的 LoRA 适配器列表。每个适配器必须以以下格式之一指定:<PATH> | <NAME>=<PATH> | 带有架构 {"lora_name": str, "lora_path": str, "pinned": bool} 的 JSON。

None

类型: List[str] / JSON 对象

--max-loras-per-batch

一个运行批次的最大适配器数,包括仅基线请求。

8

类型: int

--max-loaded-loras

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

None

类型: 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-backend

为注意力层选择内核。

None

triton, torch_native, flex_attention, nsa, cutlass_mla, fa3, fa4, flashinfer, flashmla, trtllm_mla, trtllm_mha, dual_chunk_flash_attn, aiter, wave, intel_amx, ascend

--prefill-attention-backend

为前填充注意力层选择内核(优先于 --attention-backend)。

None

triton, torch_native, flex_attention, nsa, cutlass_mla, fa3, fa4, flashinfer, flashmla, trtllm_mla, trtllm_mha, dual_chunk_flash_attn, aiter, wave, intel_amx, ascend

--decode-attention-backend

为解码注意力层选择内核(优先于 --attention-backend)。

None

triton, torch_native, flex_attention, nsa, cutlass_mla, fa3, fa4, flashinfer, flashmla, trtllm_mla, trtllm_mha, dual_chunk_flash_attn, aiter, wave, intel_amx, ascend

--sampling-backend

为采样层选择内核。

None

flashinfer, pytorch, ascend

--grammar-backend

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

None

xgrammar, outlines, llguidance, none

--mm-attention-backend

设置多模态注意力后端。

None

sdpa, fa3, triton_attn, ascend_attn, aiter_attn

--nsa-prefill

选择前填充阶段的 NSA 后端(运行 DeepSeek NSA 样式注意力时覆盖 --attention-backend)。

flashmla_sparse

flashmla_sparse, flashmla_decode, fa3, tilelang, aiter

--nsa-decode

运行 DeepSeek NSA 样式注意力时选择解码阶段的 NSA 后端。覆盖解码的 --attention-backend。

flashmla_kv

flashmla_prefill, flashmla_kv, fa3, tilelang, aiter

推理解码#

参数

描述

默认值

选项

--speculative-algorithm

推理算法。

None

EAGLE, EAGLE3, NEXTN, STANDALONE, NGRAM

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

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

None

类型: str

--speculative-draft-model-revision

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

None

类型: str

--speculative-num-steps

推理解码中从草稿模型采样的步数。

None

类型: int

--speculative-eagle-topk

每个步骤中从草稿模型采样的令牌数(在 eagle2 中)。

None

类型: int

--speculative-num-draft-tokens

推理解码中从草稿模型采样的令牌数。

None

类型: int

--speculative-accept-threshold-single

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

1.0

类型: float

--speculative-accept-threshold-acc

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

1.0

类型: float

--speculative-token-map

草稿模型的小词汇表的路径。

None

类型: str

--speculative-attention-mode

推理解码操作(目标验证和草稿扩展)的注意力后端。可以是 "prefill"(默认)或 "decode" 之一。

prefill

prefill, decode

--speculative-moe-runner-backend

EAGLE 推理解码的 MOE 后端,选项请参见 --moe-runner-backend。如果未设置,则与 MOE 运行后端相同。

None

N-gram 推理解码#

参数

描述

默认值

选项

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

n-gram 推理解码中模式匹配的最小窗口大小。

1

类型: int

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

n-gram 推理解码中模式匹配的最大窗口大小。

12

类型: int

--speculative-ngram-min-bfs-breadth

n-gram 推理解码中 BFS(广度优先搜索)的最小广度。

1

类型: int

--speculative-ngram-max-bfs-breadth

n-gram 推理解码中 BFS(广度优先搜索)的最大广度。

10

类型: int

--speculative-ngram-match-type

缓存树的匹配类型。

BFS

BFS, PROB

--speculative-ngram-branch-length

n-gram 推理解码的分支长度。

18

类型: int

--speculative-ngram-capacity

n-gram 推理解码的缓存容量。

10000000

类型: int

专家并行#

参数

描述

默认值

选项

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

专家并行大小。

1

类型: int

--moe-a2a-backend

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

none

none, deepep

--moe-runner-backend

为 MoE 选择运行程序后端。

auto

auto, deep_gemm, triton, triton_kernel, flashinfer_trtllm, flashinfer_cutlass, flashinfer_mxfp4, flashinfer_cutedsl

--flashinfer-mxfp4-moe-precision

选择 flashinfer mxfp4 moe 的计算精度

default

default, bf16

--enable-flashinfer-allreduce-fusion

启用 FlashInfer allreduce 与 Residual RMSNorm 的融合。

False

bool 标志 (设置以启用)

--deepep-mode

选择启用 DeepEP MoE 时的模式,可以是 "normal", "low_latency" 或 "auto"。默认为 "auto",这意味着对于解码批处理为 "low_latency",对于前填充批处理为 "normal"。

auto

normal, low_latency, auto

--ep-num-redundant-experts

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

0

类型: int

--ep-dispatch-algorithm

选择专家并行中冗余专家等级的算法。

None

类型: str

--init-expert-location

EP 专家的初始位置。

trivial

类型: str

--enable-eplb

启用 EPLB 算法

False

bool 标志 (设置以启用)

--eplb-algorithm

选择的 EPLB 算法

auto

类型: str

--eplb-rebalance-num-iterations

自动触发 EPLB 重新平衡的迭代次数。

1000

类型: int

--eplb-rebalance-layers-per-chunk

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

None

类型: int

--eplb-min-rebalancing-utilization-threshold

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

1.0

类型: float

--expert-distribution-recorder-mode

专家分布记录器的模式。

None

类型: str

--expert-distribution-recorder-buffer-size

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

None

类型: int

--enable-expert-distribution-metrics

启用专家平衡性指标的日志记录

False

bool 标志 (设置以启用)

--deepep-config

适合您自己集群的调整过的 DeepEP 配置。它可以包含 JSON 内容的字符串或文件路径。

None

类型: str

--moe-dense-tp-size

MoE 密集 MLP 层的 TP 大小。当较大的 TP 大小时,如果 MLP 层中的权重维度小于 GEMM 支持的最小维度导致的错误,此标志很有用。

None

类型: int

Mamba 缓存#

参数

描述

默认值

选项

--max-mamba-cache-size

mamba 缓存的最大大小。

None

类型: int

--mamba-ssm-dtype

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

float32

float32, bfloat16

--mamba-full-memory-ratio

mamba 状态内存与完整 kv 缓存内存的比率。

0.2

类型: float

多项评分参数#

参数

描述

默认值

选项

--multi-item-scoring-delimiter

多项评分的分隔符令牌 ID。用于将查询和项目合并为单个序列:QueryItem1Item2... 这使得能够高效地批量处理多个项目与单个查询。

None

类型: int

分层缓存#

参数

描述

默认值

选项

--enable-hierarchical-cache

启用分层缓存

False

bool 标志 (设置以启用)

--hicache-ratio

主机 KV 缓存内存池大小与设备池大小的比率。

2.0

类型: float

--hicache-size

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

0

类型: int

--hicache-write-policy

分层缓存的写入策略。

write_through

write_back, write_through, write_through_selective

--radix-eviction-policy

基数树的逐出策略。"lru" 表示最近最少使用,"lfu" 表示最近最少使用。

lru

lru, lfu

--hicache-io-backend

KV 缓存在 CPU 和 GPU 之间传输的 IO 后端

kernel

direct, kernel, kernel_ascend

--hicache-mem-layout

分层缓存的主机内存池布局。

layer_first

layer_first, page_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(后端类名)。

None

file, mooncake, hf3fs, nixl, aibrix, dynamic, eic

--hicache-storage-prefetch-policy

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

best_effort

best_effort, wait_complete, timeout

--hicache-storage-backend-extra-config

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

None

类型: str

LMCache#

参数

描述

默认值

选项

--enable-lmcache

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

False

bool 标志 (设置以启用)

双稀疏#

参数

描述

默认值

选项

--enable-double-sparsity

启用双稀疏注意力

False

bool 标志 (设置以启用)

--ds-channel-config-path

双稀疏通道配置的路径

None

类型: str

--ds-heavy-channel-num

双稀疏注意力中的重通道数

32

类型: int

--ds-heavy-token-num

双稀疏注意力中的重令牌数

256

类型: int

--ds-heavy-channel-type

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

qk

类型: str

--ds-sparse-decode-threshold

双稀疏后端从密集回退切换到稀疏解码内核所需的最小解码序列长度。

4096

类型: int

卸载#

参数

描述

默认值

选项

--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

优化/调试选项#

参数

描述

默认值

选项

--disable-radix-cache

为前缀缓存禁用 RadixAttention。

False

bool 标志 (设置以启用)

--cuda-graph-max-bs

设置 cuda 图的最大批次大小。它将把 cuda 图捕获批次大小扩展到此值。

None

类型: int

--cuda-graph-bs

设置 cuda 图的批次大小列表。

None

List[int]

--disable-cuda-graph

禁用 cuda 图。

False

bool 标志 (设置以启用)

--disable-cuda-graph-padding

当需要填充时禁用 cuda 图。不需要填充时仍使用 cuda 图。

False

bool 标志 (设置以启用)

--enable-profile-cuda-graph

启用 cuda 图捕获的性能分析。

False

bool 标志 (设置以启用)

--enable-cudagraph-gc

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

False

bool 标志 (设置以启用)

--enable-nccl-nvls

在可用时为前填充重请求启用 NCCL NVLS。

False

bool 标志 (设置以启用)

--enable-symm-mem

启用 NCCL 对称内存用于快速集合操作。

False

bool 标志 (设置以启用)

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

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

False

bool 标志 (设置以启用)

--enable-tokenizer-batch-encode

处理多个文本输入时启用批处理分词以提高性能。不要与图像输入、预分词的 input_ids 或 input_embeds 一起使用。

False

bool 标志 (设置以启用)

--disable-outlines-disk-cache

禁用 outlines 的磁盘缓存,以避免可能由文件系统或高并发引起的崩溃。

False

bool 标志 (设置以启用)

--disable-custom-all-reduce

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

False

bool 标志 (设置以启用)

--enable-mscclpp

启用使用 mscclpp 进行小消息的 all-reduce 核心并回退到 NCCL。

False

bool 标志 (设置以启用)

--enable-torch-symm-mem

启用使用 torch symm mem 进行 all-reduce 核心并回退到 NCCL。仅支持 CUDA 设备 SM90 及以上版本。SM90 支持 world size 4、6、8。SM10 支持 world size 6、8。

False

bool 标志 (设置以启用)

--disable-overlap-schedule

禁用重叠调度程序,该调度程序重叠 CPU 调度程序与 GPU 模型工作程序。

False

bool 标志 (设置以启用)

--enable-mixed-chunk

使用分块前填充时在批次中混合前填充和解码。

False

bool 标志 (设置以启用)

--enable-dp-attention

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

False

bool 标志 (设置以启用)

--enable-dp-lm-head

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

False

bool 标志 (设置以启用)

--enable-two-batch-overlap

启用两个微批次重叠。

False

bool 标志 (设置以启用)

--enable-single-batch-overlap

让一个微批次内的计算和通信重叠。

False

bool 标志 (设置以启用)

--tbo-token-distribution-threshold

微批次重叠中两个批次之间的令牌分布阈值,决定是使用两批次重叠还是两块重叠。设置为 0 表示禁用两块重叠。

0.48

类型: float

--enable-torch-compile

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

False

bool 标志 (设置以启用)

--enable-torch-compile-debug-mode

为 torch compile 启用调试模式。

False

bool 标志 (设置以启用)

--enable-piecewise-cuda-graph

使用分段 cuda 图仅优化扩展/前填充。实验性功能。

False

bool 标志 (设置以启用)

--piecewise-cuda-graph-tokens

设置使用分段 cuda 图时的令牌列表。

None

类型: JSON 列表

--torch-compile-max-bs

设置使用 torch compile 时的最大批次大小。

32

类型: int

--piecewise-cuda-graph-max-tokens

设置使用分段 cuda 图时的最大令牌数。

4096

类型: int

--torchao-config

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

``

类型: str

--enable-nan-detection

启用 NaN 检测以用于调试目的。

False

bool 标志 (设置以启用)

--enable-p2p-check

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

False

bool 标志 (设置以启用)

--triton-attention-reduce-in-fp32

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

False

bool 标志 (设置以启用)

--triton-attention-num-kv-splits

闪存解码 Triton 内核中的 KV 分裂数量。在更长上下文场景中,较大的值更好。默认值为 8。

8

类型: int

--triton-attention-split-tile-size

闪存解码 Triton 内核中分割 KV 瓦片的大小。用于确定性推理。

None

类型: int

--num-continuous-decode-steps

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

1

类型: int

--delete-ckpt-after-loading

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

False

bool 标志 (设置以启用)

--enable-memory-saver

允许使用 release_memory_occupation 和 resume_memory_occupation 节省内存

False

bool 标志 (设置以启用)

--enable-weights-cpu-backup

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

False

bool 标志 (设置以启用)

--allow-auto-truncate

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

False

bool 标志 (设置以启用)

--enable-custom-logit-processor

启用用户将自定义 logit 处理器传递给服务器(默认为禁用以增强安全性)

False

bool 标志 (设置以启用)

--flashinfer-mla-disable-ragged

运行 flashinfer mla 时不使用 ragged prefill 包装器

False

bool 标志 (设置以启用)

--disable-shared-experts-fusion

为 deepseek v3/r1 禁用共享专家融合优化。

False

bool 标志 (设置以启用)

--disable-chunked-prefix-cache

为 deepseek 禁用分块前缀缓存功能,这应该为短序列节省开销。

False

bool 标志 (设置以启用)

--disable-fast-image-processor

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

False

bool 标志 (设置以启用)

--keep-mm-feature-on-device

处理后保持多模态特征张量在设备上,以节省 D2H 复制。

False

bool 标志 (设置以启用)

--enable-return-hidden-states

启用返回带有响应的隐藏状态。

False

bool 标志 (设置以启用)

--scheduler-recv-interval

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

1

类型: int

--numa-node

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

None

List[int]

--enable-layerwise-nvtx-marker

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

False

bool 标志 (设置以启用)

--enable-attn-tp-input-scattered

仅在使用张量并行时允许注意力的输入分散,以减少诸如 qkv 潜在值等操作的计算负载。

False

bool 标志 (设置以启用)

--enable-nsa-prefill-context-parallel

DeepSeek v3.2 长序列前填充阶段中使用的上下文并行

False

bool 标志 (设置以启用)

前向钩子#

参数

描述

默认值

选项

--hooks

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

None

类型: JSON 列表

调试张量转储#

参数

描述

默认值

选项

--debug-tensor-dump-output-folder

转储张量的输出文件夹。

None

类型: str

--debug-tensor-dump-input-file

转储张量的输入文件名

None

类型: str

--debug-tensor-dump-inject

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

False

类型: str

--enable-dynamic-batch-tokenizer

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

False

bool 标志 (设置以启用)

--dynamic-batch-tokenizer-batch-size

[仅在设置了 --enable-dynamic-batch-tokenizer 时使用] 动态批处理分词器的最大批次大小。

32

类型: int

--dynamic-batch-tokenizer-batch-timeout

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

0.002

类型: float

PD 分离#

参数

描述

默认值

选项

--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 大小。这仅在前填充服务器上设置。

None

类型: int

--disaggregation-decode-dp

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

None

类型: 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 后端时触发自动设备检测。

None

类型: str

--disaggregation-decode-enable-offload-kvcache

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

False

bool 标志 (设置以启用)

--num-reserved-decode-tokens

当将新请求添加到运行批次时,将有内存保留的解码令牌数。

512

类型: int

--disaggregation-decode-polling-interval

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

1

类型: int

自定义权重加载器#

参数

描述

默认值

选项

--custom-weight-loader

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

None

List[str]

--weight-loader-disable-mmap

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

False

bool 标志 (设置以启用)

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

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

None

类型: str

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

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

None

类型: int

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

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

None

类型: JSON 列表

用于 PD-Multiplexing#

参数

描述

默认值

选项

--enable-pdmux

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

False

bool 标志 (设置以启用)

--pdmux-config-path

PD-Multiplexing 配置文件的路径。

None

类型: str

--sm-group-num

sm 分区组数。

8

类型: int

用于确定性推理#

参数

描述

默认值

选项

--enable-deterministic-inference

启用确定性推理模式与批处理不变操作。

False

bool 标志 (设置以启用)

已弃用参数#

参数

描述

默认值

选项

--enable-ep-moe

注意:--enable-ep-moe 已弃用。请将 --ep-size 设置为与 --tp-size 相同的值。

None

N/A

--enable-deepep-moe

注意:--enable-deepep-moe 已弃用。请将 --moe-a2a-backend 设置为 "deepep"。

None

N/A

--enable-flashinfer-cutlass-moe

注意:--enable-flashinfer-cutlass-moe 已弃用。请将 --moe-runner-backend 设置为 "flashinfer_cutlass"。

None

N/A

--enable-flashinfer-cutedsl-moe

注意:--enable-flashinfer-cutedsl-moe 已弃用。请将 --moe-runner-backend 设置为 "flashinfer_cutedsl"。

None

N/A

--enable-flashinfer-trtllm-moe

注意:--enable-flashinfer-trtllm-moe 已弃用。请将 --moe-runner-backend 设置为 "flashinfer_trtllm"。

None

N/A

--enable-triton-kernel-moe

注意:--enable-triton-kernel-moe 已弃用。请将 --moe-runner-backend 设置为 "triton_kernel"。

None

N/A

--enable-flashinfer-mxfp4-moe

注意:--enable-flashinfer-mxfp4-moe 已弃用。请将 --moe-runner-backend 设置为 "flashinfer_mxfp4"。

None

N/A

配置文件支持#

参数

描述

默认值

选项

--config

从配置文件读取 CLI 选项。必须是包含配置选项的 YAML 文件。

None

类型: str