服务器参数#
本页提供了在命令行中使用的服务器参数列表,用于在部署期间配置语言模型服务器的行为和性能。这些参数允许用户自定义服务器的关键方面,包括模型选择、并行策略、内存管理和优化技术。您可以通过 python3 -m sglang.launch_server --help 查看所有参数。
常用启动命令#
要使用配置文件,请创建一个包含服务器参数的 YAML 文件,并使用
--config指定。CLI 参数将覆盖配置文件中的值。# Create 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 # Launch server with config file python -m sglang.launch_server --config config.yaml
要启用多 GPU 张量并行,请添加
--tp 2。如果报告错误“peer access is not supported between these two devices”,请在服务器启动命令中添加--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
如果您在服务期间看到显存溢出(OOM)错误,请尝试通过设置较小的
--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大小更新。如果您在长提示词的预填充阶段看到显存溢出错误,请尝试设置较小的分块预填充(chunked prefill)大小。
python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --chunked-prefill-size 4096
要启用
torch.compile加速,请添加--enable-torch-compile。它能加速小模型在小 Batch Size 下的运行。默认情况下,缓存路径位于/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。# Node 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 # Node 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,以了解更多启动服务器时可以提供的参数。
模型与分词器#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
模型权重路径。可以是本地文件夹或 Hugging Face 仓库 ID。 |
|
类型:str |
|
分词器路径。 |
|
类型:str |
|
分词器模式。“auto” 将在可用时使用快速分词器,“slow” 将始终使用慢速分词器。 |
|
|
|
分词器管理器的进程数量。 |
|
类型:int |
|
如果设置,将跳过分词器初始化并在生成请求中传递 input_ids。 |
|
布尔标志 (设置即启用) |
|
要加载的模型权重格式。“auto” 将尝试加载 safetensors 格式,如果不可用则回退到 pytorch bin 格式。“pt” 将以 pytorch bin 格式加载权重。“safetensors” 将以 safetensors 格式加载权重。“npcache” 将以 pytorch 格式加载权重并存储 numpy 缓存以加快加载速度。“dummy” 将使用随机值初始化权重,主要用于性能分析。“gguf” 将以 gguf 格式加载权重。“bitsandbytes” 将使用 bitsandbytes 量化加载权重。“layered” 逐层加载权重,以便在加载下一层之前对当前层进行量化,从而减小峰值内存占用。 |
|
|
|
模型加载器的额外配置。这将传递给与所选 load_format 对应的模型加载器。 |
|
类型:str |
|
是否允许加载在 Hub 上定义了自己建模文件的自定义模型。 |
|
布尔标志 (设置即启用) |
|
模型的最大上下文长度。默认为 None(将使用模型 config.json 中的值)。 |
|
类型:int |
|
是否将 CausalLM 用作嵌入(Embedding)模型。 |
|
布尔标志 (设置即启用) |
|
为所服务的模型启用多模态功能。如果所服务的模型不是多模态模型,则不会产生影响。 |
|
布尔标志 (设置即启用) |
|
限制每个请求的多模态输入数量。例如:‘{“image”: 1, “video”: 1, “audio”: 1}’ |
|
类型:JSON / Dict |
|
要使用的特定模型版本。可以是分支名、标签名或提交 ID。如果不指定,将使用默认版本。 |
|
类型:str |
|
使用哪种模型实现。* “auto” 将尝试使用 SGLang 实现(如果存在),否则回退到 Transformers 实现。* “sglang” 将使用 SGLang 模型实现。* “transformers” 将使用 Transformers 模型实现。 |
|
类型:str |
HTTP 服务器#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
HTTP 服务器的主机地址。 |
|
类型:str |
|
HTTP 服务器的端口号。 |
|
类型:int |
|
如果设置,将跳过预热。 |
|
布尔标志 (设置即启用) |
|
指定在服务器启动前运行的自定义预热函数 (csv)。例如:--warmups=warmup_name1,warmup_name2 将在服务器开始监听请求前运行 warmup.py 中指定的 |
|
类型:str |
|
用于 NCCL 分布式环境设置的端口。默认为随机端口。 |
|
类型:int |
量化与数据类型#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
模型权重和激活的数据类型。* “auto” 将对 FP32 和 FP16 模型使用 FP16 精度,对 BF16 模型使用 BF16 精度。* “half” 用于 FP16。推荐用于 AWQ 量化。* “float16” 与 “half” 相同。* “bfloat16” 用于在精度和范围之间取得平衡。* “float” 是 FP32 精度的简写。* “float32” 表示 FP32 精度。 |
|
|
|
量化方法。 |
|
|
|
包含 KV 缓存缩放因子的 JSON 文件路径。当 KV 缓存数据类型为 FP8 时,通常应提供此项。否则,KV 缓存缩放因子默认为 1.0,这可能会导致精度问题。 |
|
类型:Optional[str] |
|
ModelOpt 量化配置。支持的值:‘fp8’, ‘int4_awq’, ‘w4a8_awq’, ‘nvfp4’, ‘nvfp4_awq’。这需要安装 NVIDIA Model Optimizer 库:pip install nvidia-modelopt |
|
类型:str |
|
用于恢复先前保存的 ModelOpt 量化检查点的路径。如果提供,将跳过量化过程并从该检查点加载模型。 |
|
类型:str |
|
量化后保存 ModelOpt 量化检查点的路径。这允许在将来的运行中重用已量化的模型。 |
|
类型:str |
|
KV 缓存存储的数据类型。“auto” 将使用模型数据类型。“fp8_e5m2” 和 “fp8_e4m3” 支持 CUDA 11.8+。 |
|
|
|
如果设置,LM head 的输出 (logits) 将采用 FP32 格式。 |
|
布尔标志 (设置即启用) |
内存与调度#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
用于静态分配(模型权重和 KV 缓存内存池)的显存比例。如果您看到显存溢出错误,请使用较小的值。 |
|
类型:float |
|
最大运行中的请求数。 |
|
类型:int |
|
最大排队中的请求数。使用 disaggregation-mode(分离模式)时,此选项将被忽略。 |
|
类型:int |
|
内存池中的最大 Token 数量。如果未指定,将根据内存使用比例自动计算。此选项通常用于开发和调试。 |
|
类型:int |
|
分块预填充中每个块的最大 Token 数量。设置为 -1 表示禁用分块预填充。 |
|
类型:int |
|
预填充批次中的最大 Token 数量。实际边界将取此值与模型最大上下文长度中的较大者。 |
|
类型:int |
|
请求的调度策略。 |
|
|
|
启用优先级调度。默认情况下,具有较高优先级整数值的请求将优先调度。 |
|
布尔标志 (设置即启用) |
|
如果与 –enable-priority-scheduling 一起指定,调度程序将优先调度优先级整数值较低的请求。 |
|
布尔标志 (设置即启用) |
|
新请求抢占正在运行请求时所需的最小优先级差值。 |
|
类型:int |
|
调度策略的保守程度。值越大表示调度越保守。如果您发现请求经常被撤回,请使用较大的值。 |
|
类型:float |
|
每个页面中的 Token 数量。 |
|
类型:int |
|
统一 KV 缓冲区和混合 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 内存。 |
|
布尔标志 (设置即启用) |
运行时选项#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
要使用的设备(‘cuda’, ‘xpu’, ‘hpu’, ‘npu’, ‘cpu’)。如果不指定,则默认为自动检测。 |
|
类型:str |
|
为弹性专家并行 (EP) 选择集合通信后端。目前支持 ‘mooncake’。 |
无 |
无 |
|
Mooncake 后端的 InfiniBand 设备,接受多个逗号分隔的设备。默认为 None,启用 Mooncake 后端时将触发自动设备检测。 |
无 |
无 |
|
张量并行大小。 |
|
类型:int |
|
流水线并行大小。 |
|
类型:int |
|
流水线并行中的最大微批次 (micro batch) 大小。 |
|
类型:int |
|
流式输出的间隔(或缓冲区大小),以 Token 长度为单位。较小的值使流式输出更流畅,较大的值使吞吐量更高。 |
|
类型:int |
|
是否以不相交片段序列的形式输出。 |
|
布尔标志 (设置即启用) |
|
随机种子。 |
|
类型:int |
|
(仅限 outlines 和 llguidance 后端)JSON 约束输出中允许的语法空格正则表达式。例如,要允许模型生成连续空格,可将模式设置为 [\n\t ]* |
|
类型:str |
|
(仅限 xgrammar 和 llguidance 后端)在 JSON 约束输出中强制执行紧凑表示。 |
|
布尔标志 (设置即启用) |
|
设置看门狗超时时间(秒)。如果前向批次耗时超过此值,服务器将崩溃以防止挂起。 |
|
类型:float |
|
设置 torch.distributed 初始化的超时时间。 |
|
类型:int |
|
Hugging Face 的模型下载目录。 |
|
类型:str |
|
开始分配 GPU 的起始 GPU ID。在同一台机器上运行多个实例时很有用。 |
|
类型:int |
|
连续 GPU ID 之间的间隔。例如,设置为 2 将使用 GPU 0, 2, 4... |
|
类型:int |
|
当 sglang 空闲时减少 CPU 使用率。 |
|
布尔标志 (设置即启用) |
|
多模态预处理配置的 JSON 字符串。可以包含键: |
|
日志#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
所有日志记录器的日志级别。 |
|
类型: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’ 字段的字典指定,例如:如果设置了 ‘–tokenizer-metrics-allowed-custom-labels label1 label2’,则允许 {‘label1’: ‘value1’, ‘label2’: ‘value2’}。 |
|
List[str] |
|
首字响应时间 (TTFT) 的分桶,指定为浮点数列表。 |
|
List[float] |
|
Token 间延迟 (ITL) 的分桶,指定为浮点数列表。 |
|
List[float] |
|
端到端请求延迟的分桶,指定为浮点数列表。 |
|
List[float] |
|
收集 Prompt/Generation Token 数量的直方图。 |
|
布尔标志 (设置即启用) |
|
Prompt Token 的分桶规则。支持 3 种规则类型:‘default’ 使用预定义的分桶;‘tse’ |
|
List[str] |
|
生成 Token 数量直方图的分桶规则。支持 3 种规则类型:‘default’ 使用预定义分桶;‘tse’ |
|
List[str] |
|
长 GC(垃圾回收)警告阈值。如果 GC 耗时超过此值,将记录警告。设置为 0 以禁用。 |
|
类型:float |
|
解码批次的日志记录间隔。 |
|
类型:int |
|
启用单个请求的时间统计日志记录。 |
|
布尔标志 (设置即启用) |
|
用于 NVIDIA dynamo KV 事件发布的 JSON 格式配置。如果使用此标志,将启用发布。 |
|
类型:str |
|
启用 opentelemetry 追踪。 |
|
布尔标志 (设置即启用) |
|
如果设置了 –enable-trace,配置 opentelemetry 收集器端点。格式为 |
|
类型:str |
数据并行#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
数据并行大小。 |
|
类型:int |
|
数据并行的负载均衡策略。最小 Token 算法仅在应用 DP attention 时可用。该算法根据 DP 工作线程的实时 Token 负载执行负载均衡。 |
|
|
|
负载监控的时间间隔(秒)。 |
|
类型:float |
|
预填充采用轮询 (round robin) 均衡。这用于保证解码服务器可以获取正确的 DP 排名。 |
|
布尔标志 (设置即启用) |
多节点分布式服务#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
初始化分布式后端的主机地址(例如, |
|
类型:str |
|
节点数量。 |
|
类型:int |
|
节点排名。 |
|
类型:int |
模型覆盖参数#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
用于覆盖默认模型配置的 JSON 字符串格式字典。 |
|
类型:str |
|
JSON 格式的采样设置,将在 /get_model_info 中返回。 |
|
类型:str |
LoRA#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
为模型启用 LoRA 支持。为了向后兼容,如果提供了 |
|
布尔标志 (设置即启用) |
|
应支持的最大 LoRA 秩 (Rank)。如果未指定,将从 |
|
类型:int |
|
应应用 LoRA 的所有目标模块的并集(例如, |
|
|
|
要加载的 LoRA 适配器列表。每个适配器必须指定为以下格式之一: |
|
类型:str 列表 / JSON 对象 |
|
运行批次中的最大适配器数量,包括仅基础模型的请求。 |
|
类型:int |
|
如果指定,则限制一次加载到 CPU 内存中的最大 LoRA 适配器数量。必须 ≥ |
|
类型:int |
|
GPU 内存池满时的 LoRA 适配器逐出策略。 |
|
|
|
为多 LoRA 服务选择算子后端。 |
|
|
|
ChunkedSGMV LoRA 后端的最大分块大小。仅在 |
|
|
算子后端 (Attention, Sampling, Grammar, GEMM)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
为注意力层选择算子。 |
|
|
|
为预填充阶段的注意力层选择算子(优先级高于 –attention-backend)。 |
|
|
|
为解码阶段的注意力层选择算子(优先级高于 –attention-backend)。 |
|
|
|
为采样层选择算子。 |
|
|
|
为语法引导的解码选择后端。 |
|
|
|
设置多模态注意力算子后端。 |
|
|
|
为预填充阶段选择 NSA 后端(在运行 DeepSeek NSA 风格注意力时覆盖 |
|
|
|
在运行 DeepSeek NSA 风格注意力时为解码阶段选择 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 自动调优默认开启。设置此标志以禁用自动调优。 |
|
布尔标志 (设置即启用) |
投机采样 (Speculative decoding)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
投机算法。 |
|
|
|
草稿模型 (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 |
|
草稿模型小词表 (small vocab table) 的路径。 |
|
类型:str |
|
用于投机采样操作(目标验证和草稿扩展)的注意力后端。可以是 ‘prefill’(默认)或 ‘decode’ 之一。 |
|
|
|
用于 EAGLE 投机采样的 MOE 后端,选项见 –moe-runner-backend。如果未设置,则与 moe runner 后端相同。 |
|
|
|
用于 EAGLE 投机采样的 MOE A2A 后端,选项见 –moe-a2a-backend。如果未设置,则与 moe a2a 后端相同。 |
|
Ngram 投机采样#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
ngram 投机采样中模式匹配的最小窗口大小。 |
|
类型:int |
|
ngram 投机采样中模式匹配的最大窗口大小。 |
|
类型:int |
|
ngram 投机采样中 BFS(广度优先搜索)的最小宽度。 |
|
类型:int |
|
ngram 投机采样中 BFS(广度优先搜索)的最大宽度。 |
|
类型:int |
|
缓存树的匹配类型。 |
|
|
|
ngram 投机采样的分支长度。 |
|
类型:int |
|
ngram 投机采样的缓存容量。 |
|
类型:int |
MoE#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
专家并行 (expert parallelism) 大小。 |
|
类型:int |
|
选择专家并行的 all-to-all 通信后端。 |
|
|
|
选择 MoE 的运行后端。 |
|
|
|
选择 flashinfer mxfp4 moe 的计算精度 |
|
|
|
启用 FlashInfer allreduce 与 Residual RMSNorm 的融合。 |
|
布尔标志 (设置即启用) |
|
启用 DeepEP MoE 时选择模式,可以是 |
|
|
|
在专家并行中分配此数量的冗余专家。 |
|
类型:int |
|
在专家并行中为冗余专家选择 rank 的算法。 |
|
类型:str |
|
EP 专家的初始位置。 |
|
类型:str |
|
启用 EPLB 算法 |
|
布尔标志 (设置即启用) |
|
所选的 EPLB 算法 |
|
类型:str |
|
自动触发 EPLB 重新平衡的迭代次数。 |
|
类型:int |
|
每次前向传播要重新平衡的层数。 |
|
类型:int |
|
触发 EPLB 重新平衡的 GPU 平均利用率最小阈值。必须在 [0.0, 1.0] 范围内。 |
|
类型:float |
|
专家分布记录器的模式。 |
|
类型:str |
|
专家分布记录器的循环缓冲区大小。设置为 -1 表示无限缓冲区。 |
|
类型:int |
|
启用专家平衡性指标日志记录 |
|
布尔标志 (设置即启用) |
|
适用于您自己集群的调优后的 DeepEP 配置。可以是 JSON 内容字符串或文件路径。 |
|
类型:str |
|
MoE 密集 MLP 层的 TP 大小。当 TP 大比较大时,如果 MLP 层权重维度小于 GEMM 支持的最小维度而导致错误,此标志非常有用。 |
|
类型:int |
Mamba 缓存#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
mamba 缓存的最大大小。 |
|
类型:int |
|
mamba 缓存中 SSM 状态的数据类型。 |
|
|
|
mamba 状态内存占完整 KV 缓存内存的比例。 |
|
类型:float |
|
mamba 调度器使用的策略。 |
|
|
|
decode 期间跟踪 mamba 状态的间隔(以 token 为单位)。仅当 |
|
类型:int |
多项目评分 (multi-item scoring) 参数#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
多项目评分的分隔符 token ID。用于将查询 (Query) 和项目 (Items) 合并为单个序列:Query |
|
类型:int |
分层缓存 (Hierarchical cache)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
启用分层缓存 |
|
布尔标志 (设置即启用) |
|
主机 (host) KV 缓存内存池大小与设备 (device) 池大小的比例。 |
|
类型:float |
|
主机 KV 缓存内存池的大小(GB),如果设置,将覆盖 hicache_ratio。 |
|
类型:int |
|
分层缓存的写入策略。 |
|
|
|
基数树的逐出策略。‘lru’ 代表最近最少使用,‘lfu’ 代表最不经常使用。 |
|
|
|
CPU 和 GPU 之间 KV 缓存传输的 IO 后端 |
|
|
|
分层缓存的主机内存池布局。 |
|
|
|
分层 KV 缓存的存储后端。内置后端:file, mooncake, hf3fs, nixl, aibrix。对于动态 (dynamic) 后端,使用 –hicache-storage-backend-extra-config 指定:backend_name(自定义名称)、module_path(Python 模块路径)、class_name(后端类名)。 |
|
|
|
控制何时应停止从存储后端预取。 |
|
|
|
JSON 字符串格式的字典,包含存储后端的额外配置。 |
|
类型:str |
LMCache#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
使用 LMCache 作为替代的分层缓存解决方案 |
|
布尔标志 (设置即启用) |
双重稀疏性 (Double Sparsity)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
启用双重稀疏注意力 |
|
布尔标志 (设置即启用) |
|
双重稀疏通道配置的路径 |
|
类型:str |
|
双重稀疏注意力中的重通道 (heavy channels) 数量 |
|
类型:int |
|
双重稀疏注意力中的重 token (heavy tokens) 数量 |
|
类型:int |
|
双重稀疏注意力中的重通道类型 |
|
类型:str |
|
在双重稀疏后端从密集回退 (dense fallback) 切换到稀疏解码内核之前所需的最小解码序列长度。 |
|
类型:int |
卸载 (Offloading)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
为 CPU 卸载预留多少 GB 的 RAM。 |
|
类型:int |
|
卸载中每组的层数。 |
|
类型:int |
|
一个组内要卸载的层数。 |
|
类型:int |
|
卸载中预取的步数。 |
|
类型:int |
|
卸载模式。 |
|
类型:str |
优化/调试选项#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
禁用用于前缀缓存的 RadixAttention。 |
|
布尔标志 (设置即启用) |
|
设置 cuda graph 的最大 batch size。它会将 cuda graph 捕获的 batch size 扩展到此值。 |
|
类型:int |
|
设置 cuda graph 的 batch size 列表。 |
|
List[int] |
|
禁用 cuda graph。 |
|
布尔标志 (设置即启用) |
|
在需要填充 (padding) 时禁用 cuda graph。在不需要填充时仍使用 cuda graph。 |
|
布尔标志 (设置即启用) |
|
启用 cuda graph 捕获的性能分析。 |
|
布尔标志 (设置即启用) |
|
在 CUDA graph 捕获期间启用垃圾回收。如果禁用(默认),则在捕获期间冻结 GC 以加快过程。 |
|
布尔标志 (设置即启用) |
|
在可用时,为 prefill 密集型请求启用 NCCL NVLS。 |
|
布尔标志 (设置即启用) |
|
启用 NCCL 对称内存以实现快速集合通信。 |
|
布尔标志 (设置即启用) |
|
禁用 flashinfer cutlass moe 在 all-gather 之前的量化。 |
|
布尔标志 (设置即启用) |
|
启用批处理分词,以提高处理多个文本输入时的性能。请勿与图像输入、预分词的 input_ids 或 input_embeds 一起使用。 |
|
布尔标志 (设置即启用) |
|
禁用 outlines 的磁盘缓存,以避免与文件系统或高并发相关的潜在崩溃。 |
|
布尔标志 (设置即启用) |
|
禁用自定义 all-reduce 内核并回退到 NCCL。 |
|
布尔标志 (设置即启用) |
|
启用对 all-reduce 内核的小消息使用 mscclpp,并回退到 NCCL。 |
|
布尔标志 (设置即启用) |
|
启用对 all-reduce 内核使用 torch symm mem,并回退到 NCCL。仅支持 CUDA 设备 SM90 及以上。SM90 支持 world size 为 4, 6, 8。SM100 支持 world size 为 6, 8。 |
|
布尔标志 (设置即启用) |
|
禁用重叠调度器,该调度器将 CPU 调度器与 GPU 模型 worker 重叠运行。 |
|
布尔标志 (设置即启用) |
|
在使用分块 prefill (chunked prefill) 时,允许在一个 batch 中混合 prefill 和 decode。 |
|
布尔标志 (设置即启用) |
|
为注意力机制启用数据并行 (DP),为 FFN 启用张量并行 (TP)。DP 大小应等于 TP 大小。目前支持 DeepSeek-V2 和 Qwen 2/3 MoE 模型。 |
|
布尔标志 (设置即启用) |
|
在注意力 TP 组中启用词表并行,以避免跨 DP 组的 all-gather,从而优化 DP 注意力下的性能。 |
|
布尔标志 (设置即启用) |
|
启用两个微批次 (micro batches) 的重叠运行。 |
|
布尔标志 (设置即启用) |
|
使计算和通信在单个微批次内重叠。 |
|
布尔标志 (设置即启用) |
|
微批次重叠中两个批次之间的 token 分布阈值,决定是进行 two-batch-overlap 还是 two-chunk-overlap。设置为 0 表示禁用 two-chunk-overlap。 |
|
类型:float |
|
使用 torch.compile 优化模型。实验性功能。 |
|
布尔标志 (设置即启用) |
|
为 torch compile 启用调试模式。 |
|
布尔标志 (设置即启用) |
|
仅为 extend/prefill 使用分段 cuda graph 优化模型。实验性功能。 |
|
布尔标志 (设置即启用) |
|
设置使用分段 cuda graph 时的 token 列表。 |
|
类型:JSON 列表 |
|
设置使用 torch compile 时的最大 batch size。 |
|
类型:int |
|
设置使用分段 cuda graph 时的最大 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 磁贴 (tile) 的大小。用于确定性推理。 |
|
类型:int |
|
运行多个连续解码步以减少调度开销。这可以潜在提高吞吐量,但也可能增加首个 token 的延迟 (TTFT)。默认值为 1,表示一次仅运行一个解码步。 |
|
类型:int |
|
加载模型后删除模型检查点。 |
|
布尔标志 (设置即启用) |
|
允许使用 release_memory_occupation 和 resume_memory_occupation 来节省内存 |
|
布尔标志 (设置即启用) |
|
在 release_weights_occupation 和 resume_weights_occupation 期间将模型权重保存到 CPU 内存 |
|
布尔标志 (设置即启用) |
|
允许自动截断超过最大输入长度的请求,而不是返回错误。 |
|
布尔标志 (设置即启用) |
|
允许用户向服务器传递自定义 logit 处理器(出于安全考虑,默认禁用) |
|
布尔标志 (设置即启用) |
|
运行 flashinfer mla 时不使用 ragged prefill 包装器 |
|
布尔标志 (设置即启用) |
|
禁用 deepseek v3/r1 的共享专家融合优化。 |
|
布尔标志 (设置即启用) |
|
禁用 deepseek 的分块前缀缓存功能,这应该会减少短序列的开销。 |
|
布尔标志 (设置即启用) |
|
采用基础图像处理器而非快速图像处理器。 |
|
布尔标志 (设置即启用) |
|
处理后将多模态特征张量保留在设备上,以节省 D2H 拷贝。 |
|
布尔标志 (设置即启用) |
|
允许在响应中返回隐藏状态 (hidden states)。 |
|
布尔标志 (设置即启用) |
|
调度器轮询请求的间隔。可以设置为 >1 以减少开销。 |
|
类型:int |
|
设置子进程的 numa 节点。第 i 个元素对应第 i 个子进程。 |
|
List[int] |
|
为模型启用逐层 NVTX 分析注释。这会为每一层添加 NVTX 标记,以便使用 Nsight Systems 进行详细的逐层性能分析。 |
|
布尔标志 (设置即启用) |
|
当仅使用张量并行时,允许注意力的输入是分散的,以减少 qkv latent 等操作的计算负载。 |
|
布尔标志 (设置即启用) |
|
DeepSeek v3.2 长序列预填充阶段使用的上下文并行 |
|
布尔标志 (设置即启用) |
前向钩子 (Forward hooks)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
JSON 格式的前向钩子规范列表。每个元素必须包含 |
|
类型:JSON 列表 |
调试张量转储 (Debug tensor dumps)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
转储张量的输出文件夹。 |
|
类型:str |
|
转储张量的输入文件名 |
|
类型:str |
|
将来自 jax 的输出注入作为每一层的输入。 |
|
类型:str |
|
启用异步动态批处理分词器,以提高多个请求并发到达时的性能。 |
|
布尔标志 (设置即启用) |
|
[仅当设置了 –enable-dynamic-batch-tokenizer 时使用] 动态批处理分词器的最大批次大小。 |
|
类型:int |
|
[仅当设置了 –enable-dynamic-batch-tokenizer 时使用] 批处理分词请求的超时时间(秒)。 |
|
类型:float |
PD 分离 (PD disaggregation)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
仅用于 PD 分离。“prefill”用于仅 prefill 的服务器,“decode”用于仅 decode 的服务器。如果未指定,则不是 PD 分离模式 |
|
|
|
分离传输的后端。默认为 mooncake。 |
|
|
|
prefill 服务器上的 Bootstrap 服务器端口。默认为 8998。 |
|
类型:int |
|
decode tp 大小。如果未设置,则匹配当前引擎的 tp 大小。此参数仅在 prefill 服务器上设置。 |
|
类型:int |
|
decode dp 大小。如果未设置,则匹配当前引擎的 dp 大小。此参数仅在 prefill 服务器上设置。 |
|
类型:int |
|
prefill pp 大小。如果未设置,默认为 1。此参数仅在 decode 服务器上设置。 |
|
类型:int |
|
用于分离传输的 InfiniBand 设备,接受单个设备(例如 –disaggregation-ib-device mlx5_0)或多个以逗号分隔的设备(例如 –disaggregation-ib-device mlx5_0,mlx5_1)。默认为 None,当启用 mooncake 后端时会触发自动设备检测。 |
|
类型:str |
|
在 decode 服务器(PD 模式)上启用异步 KV 缓存卸载。 |
|
布尔标志 (设置即启用) |
|
向运行中的 batch 添加新请求时,将为其预留内存的 decode token 数量。 |
|
类型:int |
|
decode 服务器轮询请求的间隔。可以设置为 >1 以减少开销。 |
|
类型:int |
自定义权重加载器#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
用于更新模型的自定义数据加载器。应设置为有效的导入路径,例如 my_package.weight_load_func |
|
List[str] |
|
使用 safetensors 加载权重时禁用 mmap。 |
|
布尔标志 (设置即启用) |
|
从远程实例加载权重时的种子实例 IP。 |
|
类型:str |
|
从远程实例加载权重时的种子实例服务端口。 |
|
类型:int |
|
从远程实例加载权重时的通信组端口。 |
|
类型:JSON 列表 |
用于 PD 复用 (PD-Multiplexing)#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
启用 PD 复用,PD 运行在 greenctx 流上。 |
|
布尔标志 (设置即启用) |
|
PD 复用配置文件的路径。 |
|
类型:str |
|
SM 分区组的数量。 |
|
类型:int |
用于确定性推理#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
启用带有 batch 不变操作的确定性推理模式。 |
|
布尔标志 (设置即启用) |
已弃用的参数#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
注意:–enable-ep-moe 已弃用。请将 |
|
无 |
|
注意:–enable-deepep-moe 已弃用。请将 |
|
无 |
|
注意:–enable-flashinfer-cutlass-moe 已弃用。请将 |
|
无 |
|
注意:–enable-flashinfer-cutedsl-moe 已弃用。请将 |
|
无 |
|
注意:–enable-flashinfer-trtllm-moe 已弃用。请将 |
|
无 |
|
注意:–enable-triton-kernel-moe 已弃用。请将 |
|
无 |
|
注意:–enable-flashinfer-mxfp4-moe 已弃用。请将 |
|
无 |
配置文件支持#
参数 |
描述 |
默认值 |
选项 |
|---|---|---|---|
|
从配置文件读取 CLI 选项。必须是带有配置选项的 YAML 文件。 |
|
类型:str |