引擎参数¶
引擎参数控制 vLLM 引擎的行为。
引擎参数类 EngineArgs 和 AsyncEngineArgs 是 vllm.config 中定义的配置类的组合。因此,如果您对开发者文档感兴趣,我们建议查看这些配置类,因为它们是类型、默认值和文档字符串的真实来源。
EngineArgs
¶
--disable-log-stats
¶
禁用日志统计。
默认值:False
--enable-prompt-adapter
¶
[已弃用] 提示适配器已被移除。将此标志设置为 True 或 False 对 vLLM 行为没有影响。
默认值:False
ModelConfig¶
模型配置。
--model
¶
要使用的 Hugging Face 模型的名称或路径。当未指定 served_model_name
时,它也用作指标输出中 model_name
标签的内容。
默认值:Qwen/Qwen3-0.6B
--task
¶
可能选项:auto
, classify
, draft
, embed
, embedding
, generate
, reward
, score
, transcription
使用模型的任务。如果模型支持多个模型运行器,则此参数用于选择要运行的模型运行器。
请注意,模型可能使用相同的模型运行器支持其他任务。
默认值:auto
--tokenizer
¶
要使用的 Hugging Face 分词器的名称或路径。如果未指定,将使用模型名称或路径。
默认值:None
--tokenizer-mode
¶
可能选项:auto
, custom
, mistral
, slow
分词器模式
-
“auto”将使用快速分词器(如果可用)。
-
“slow”将始终使用慢速分词器。
-
“mistral”将始终使用来自
mistral_common
的分词器。 -
“custom”将使用 --tokenizer 选择预注册的分词器。
默认值:auto
--trust-remote-code
, --no-trust-remote-code
¶
下载模型和分词器时,信任远程代码(例如,来自 HuggingFace)。
默认值:False
--dtype
¶
可能选项:auto
, bfloat16
, float
, float16
, float32
, half
模型权重和激活的数据类型
-
“auto”将对 FP32 和 FP16 模型使用 FP16 精度,对 BF16 模型使用 BF16 精度。
-
“half”用于 FP16。推荐用于 AWQ 量化。
-
“float16”与“half”相同。
-
“bfloat16”用于在精度和范围之间取得平衡。
-
“float”是 FP32 精度的简写。
-
“float32”用于 FP32 精度。
默认值:auto
--seed
¶
用于重现性的随机种子。在 V0 中初始化为 None,但在 V1 中初始化为 0。
默认值:None
--hf-config-path
¶
要使用的 Hugging Face 配置的名称或路径。如果未指定,将使用模型名称或路径。
默认值:None
--allowed-local-media-path
¶
允许 API 请求从服务器文件系统指定的目录读取本地图像或视频。这存在安全风险。应仅在受信任的环境中启用。
默认值:``
--revision
¶
要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。
默认值:None
--code-revision
¶
用于 Hugging Face Hub 上模型代码的特定修订版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。
默认值:None
--rope-scaling
¶
RoPE 缩放配置。例如,{"rope_type":"dynamic","factor":2.0}
。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:{}
--rope-theta
¶
RoPE theta。与 rope_scaling
一起使用。在某些情况下,更改 RoPE theta 会提高缩放模型的性能。
默认值:None
--tokenizer-revision
¶
用于 Hugging Face Hub 上分词器的特定修订版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。
默认值:None
--max-model-len
¶
模型上下文长度(提示和输出)。如果未指定,将从模型配置中自动派生。
通过 --max-model-len
传递时,支持以人类可读格式的 k/m/g/K/M/G。示例
-
1k -> 1000
-
1K -> 1024
-
25.6k -> 25,600
默认值:None
--quantization
, -q
¶
用于量化权重的M方法。如果为 None
,我们首先检查模型配置文件中的 quantization_config
属性。如果该属性也为 None
,我们假定模型权重未量化,并使用 dtype
来确定权重的D数据类型。
默认值:None
--enforce-eager
, --no-enforce-eager
¶
是否始终使用 eager-mode PyTorch。如果为 True,我们将禁用 CUDA 图并始终在 eager 模式下执行模型。如果为 False,我们将混合使用 CUDA 图和 eager 执行以实现最大性能和灵活性。
默认值:False
--max-seq-len-to-capture
¶
CUDA 图覆盖的最大序列长度。当序列的上下文长度大于此值时,我们将退回到 eager 模式。此外,对于编码器-解码器模型,如果编码器输入的序列长度大于此值,我们将退回到 eager 模式。
默认值:8192
--max-logprobs
¶
当 SamplingParams
中指定了 logprobs
时,要返回的最大对数概率数量。默认值来自 OpenAI 聊天完成 API 的默认值。
默认值:20
--logprobs-mode
¶
可能选项:processed_logits
, processed_logprobs
, raw_logits
, raw_logprobs
指示 logprobs 和 prompt_logprobs 中返回的内容。支持的模式:1) raw_logprobs, 2) processed_logprobs, 3) raw_logits, 4) processed_logits。Raw 表示应用 logit 处理器(如禁用词)之前的值。Processed 表示应用此类处理器之后的值。
默认值:raw_logprobs
--disable-sliding-window
, --no-disable-sliding-window
¶
是否禁用滑动窗口。如果为 True,我们将禁用模型的滑动窗口功能,限制到滑动窗口大小。如果模型不支持滑动窗口,则忽略此参数。
默认值:False
--disable-cascade-attn
, --no-disable-cascade-attn
¶
禁用 V1 的级联注意力。虽然级联注意力不会改变数学上的正确性,但禁用它可以有助于防止潜在的数值问题。请注意,即使将其设置为 False,级联注意力也只会在启发式算法认为有益时才使用。
默认值:False
--skip-tokenizer-init
, --no-skip-tokenizer-init
¶
跳过分词器和反分词器的初始化。期望输入提供有效的 prompt_token_ids
和 None
作为提示。生成的输出将包含 token ID。
默认值:False
--enable-prompt-embeds
, --no-enable-prompt-embeds
¶
如果为 True
,则通过 prompt_embeds
键启用将文本嵌入作为输入传递。请注意,启用此功能将使图编译所需的时间加倍。
默认值:False
--served-model-name
¶
API 中使用的模型名称。如果提供了多个名称,服务器将响应其中任何一个提供的名称。响应的模型字段中的模型名称将是此列表中的第一个名称。如果未指定,模型名称将与 --model
参数相同。请注意,此名称也将用于 prometheus 指标的 model_name
标签内容中,如果提供了多个名称,则指标标签将采用第一个名称。
默认值:None
--disable-async-output-proc
¶
禁用异步输出处理。这可能导致性能下降。
默认值:False
--config-format
¶
可能选项:auto
, hf
, mistral
要加载的模型配置格式
-
“auto”将尝试以 hf 格式加载配置(如果可用),否则将尝试以 mistral 格式加载。
-
“hf”将以 hf 格式加载配置。
-
“mistral”将以 mistral 格式加载配置。
默认值:auto
--hf-token
¶
用于远程文件的 HTTP bearer 授权令牌。如果为 True
,将使用运行 huggingface-cli login
时生成的令牌(存储在 ~/.huggingface
中)。
默认值:None
--hf-overrides
¶
如果是一个字典,则包含要转发到 Hugging Face 配置的参数。如果是一个可调用对象,则调用它来更新 HuggingFace 配置。
默认值:{}
--override-neuron-config
¶
初始化非默认的 neuron 配置或覆盖特定于 Neuron 设备的默认 neuron 配置,此参数将用于配置无法从 vllm 参数中收集的 neuron 配置。例如 {"cast_logits_dtype": "bfloat16"}
。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:{}
--override-pooler-config
¶
初始化非默认的池化配置或覆盖池化模型的默认池化配置。例如 {"pooling_type": "mean", "normalize": false}
。
默认值:None
--logits-processor-pattern
¶
可选的正则表达式模式,指定可以通过 logits_processors
额外补全参数传递的有效 logits 处理器合格名称。默认为 None
,表示不允许任何处理器。
默认值:None
--generation-config
¶
生成配置的文件夹路径。默认为 "auto"
,生成配置将从模型路径加载。如果设置为 "vllm"
,则不加载生成配置,将使用 vLLM 默认值。如果设置为文件夹路径,则将从指定的文件夹路径加载生成配置。如果在生成配置中指定了 max_new_tokens
,则它会为所有请求设置服务器范围内的输出 token 数量限制。
默认值:auto
--override-generation-config
¶
覆盖或设置生成配置。例如 {"temperature": 0.5}
。如果与 --generation-config auto
一起使用,则覆盖参数将与模型的默认配置合并。如果与 --generation-config vllm
一起使用,则只使用覆盖参数。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:{}
--enable-sleep-mode
, --no-enable-sleep-mode
¶
启用引擎的睡眠模式(仅支持 cuda 平台)。
默认值:False
--model-impl
¶
可能选项:auto
, vllm
, transformers
要使用的模型实现
-
“auto”将尝试使用 vLLM 实现(如果存在),如果没有可用的 vLLM 实现,则退回到 Transformers 实现。
-
“vllm”将使用 vLLM 模型实现。
-
“transformers”将使用 Transformers 模型实现。
默认值:auto
--override-attention-dtype
¶
覆盖注意力的 dtype
默认值:None
LoadConfig¶
加载模型权重的配置。
--load-format
¶
要加载的模型权重格式
-
“auto”将尝试以 safetensors 格式加载权重,如果 safetensors 格式不可用,则退回到 pytorch bin 格式。
-
“pt”将以 pytorch bin 格式加载权重。
-
“safetensors”将以 safetensors 格式加载权重。
-
“npcache”将以 pytorch 格式加载权重,并存储 numpy 缓存以加速加载。
-
“dummy”将用随机值初始化权重,这主要用于性能分析。
-
“tensorizer”将使用 CoreWeave 的 tensorizer 库进行快速权重加载。有关更多信息,请参阅示例部分中的 Tensorize vLLM Model 脚本。
-
“runai_streamer”将使用 Run:ai 模型流式加载器加载 Safetensors 权重。
-
“bitsandbytes”将使用 bitsandbytes 量化加载权重。
-
“sharded_state”将从预分片的检查点文件加载权重,支持高效加载张量并行模型。
-
“gguf”将从 GGUF 格式文件加载权重(详细信息请参阅 https://github.com/ggml-org/ggml/blob/master/docs/gguf.md)。
-
“mistral”将从 Mistral 模型使用的合并 safetensors 文件加载权重。
- 其他自定义值可以通过插件支持。
默认值:auto
--download-dir
¶
下载和加载权重的目录,默认为 Hugging Face 的默认缓存目录。
默认值:None
--model-loader-extra-config
¶
模型加载器的额外配置。这将传递给与所选 load_format 对应的模型加载器。
默认值:{}
--ignore-patterns
¶
加载模型时要忽略的模式列表。默认为 "original/*/",以避免重复加载 llama 的检查点。
默认值:None
--use-tqdm-on-load
, --no-use-tqdm-on-load
¶
加载模型权重时是否启用 tqdm 显示进度条。
默认值:True
--pt-load-map-location
¶
pt_load_map_location: 加载 pytorch 检查点的映射位置,支持只能在特定设备(如 "cuda")上加载的检查点,这等同于 {"": "cuda"}。另一种支持的格式是从不同设备进行映射,例如从 GPU 1 到 GPU 0:{"cuda:1": "cuda:0"}。请注意,从命令行传递时,字典中的字符串需要双引号才能进行 JSON 解析。有关更多详细信息,请参阅 https://pytorch.ac.cn/docs/stable/generated/torch.load.html 中 map_location
的原始文档。
默认值:cpu
DecodingConfig¶
包含引擎解码策略的数据类。
--guided-decoding-backend
¶
可能选项:auto
, guidance
, lm-format-enforcer
, outlines
, xgrammar
默认情况下,将使用哪个引擎进行引导式解码(JSON 模式/正则表达式等)。使用“auto”时,我们将根据请求内容和后端库当前支持的功能做出有倾向性的选择,因此其行为在每个版本中都可能发生变化。
默认值:auto
--guided-decoding-disable-fallback
, --no-guided-decoding-disable-fallback
¶
如果为 True
,vLLM 在出错时将不会回退到不同的后端。
默认值:False
--guided-decoding-disable-any-whitespace
, --no-guided-decoding-disable-any-whitespace
¶
如果为 True
,模型在引导式解码期间将不会生成任何空格。此功能仅支持 xgrammar 和 guidance 后端。
默认值:False
--guided-decoding-disable-additional-properties
, --no-guided-decoding-disable-additional-properties
¶
如果为 True
,则 guidance
后端将不在 JSON 模式中使用 additionalProperties
。此功能仅支持 guidance
后端,用于使其行为与 outlines
和 xgrammar
更好地对齐。
默认值:False
--reasoning-parser
¶
可能选项:deepseek_r1
, glm45
, granite
, hunyuan_a13b
, mistral
, qwen3
根据您使用的模型选择推理解析器。这用于将推理内容解析为 OpenAI API 格式。
默认值:``
ParallelConfig¶
分布式执行的配置。
--distributed-executor-backend
¶
可能选项:external_launcher
, mp
, ray
, uni
, None
用于分布式模型工作者的后端,可以是“ray”或“mp”(多进程)。如果 pipeline_parallel_size 和 tensor_parallel_size 的乘积小于或等于可用 GPU 的数量,则将使用“mp”以在单个主机上保持处理。否则,如果安装了 Ray,则默认为“ray”,否则将失败。请注意,tpu 仅支持 Ray 进行分布式推理。
默认值:None
--pipeline-parallel-size
, -pp
¶
管道并行组的数量。
默认值:1
--tensor-parallel-size
, -tp
¶
张量并行组的数量。
默认值:1
--data-parallel-size
, -dp
¶
数据并行组的数量。MoE 层将根据张量并行大小和数据并行大小的乘积进行分片。
默认值:1
--data-parallel-rank
, -dpn
¶
此实例的数据并行等级。设置后,启用外部负载均衡器模式。
默认值:None
--data-parallel-start-rank
, -dpr
¶
次级节点的数据并行起始等级。
默认值:None
--data-parallel-size-local
, -dpl
¶
在此节点上运行的数据并行副本数量。
默认值:None
--data-parallel-address
, -dpa
¶
数据并行集群头节点的地址。
默认值:None
--data-parallel-rpc-port
, -dpp
¶
数据并行 RPC 通信端口。
默认值:None
--data-parallel-backend
, -dpb
¶
数据并行后端,可以是“mp”或“ray”。
默认值:mp
--data-parallel-hybrid-lb
, --no-data-parallel-hybrid-lb
¶
是否使用“混合”DP LB 模式。仅适用于在线服务且 data_parallel_size > 0 的情况。启用在“每节点”基础上运行 AsyncLLM 和 API 服务器,其中 vLLM 在本地数据并行等级之间进行负载均衡,但外部 LB 在 vLLM 节点/副本之间进行负载均衡。与 --data-parallel-start-rank 结合明确设置。
默认值:False
--enable-expert-parallel
, --no-enable-expert-parallel
¶
对 MoE 层使用专家并行而非张量并行。
默认值:False
--enable-eplb
, --no-enable-eplb
¶
为 MoE 层启用专家并行负载均衡。
默认值:False
--num-redundant-experts
¶
用于专家并行的冗余专家数量。
默认值:0
--eplb-window-size
¶
专家负载记录的窗口大小。
默认值:1000
--eplb-step-interval
¶
在专家并行中重新排列专家的间隔。
请注意,如果此值大于 EPLB 窗口大小,则只有最后 eplb_window_size
步的指标将用于重新排列专家。
默认值:3000
--eplb-log-balancedness
, --no-eplb-log-balancedness
¶
记录专家并行每一步的平衡性。默认情况下此功能是关闭的,因为它会导致通信开销。
默认值:False
--max-parallel-loading-workers
¶
分批顺序加载模型时,并行加载 worker 的最大数量。为避免在使用张量并行和大型模型时出现 RAM OOM。
默认值:None
--ray-workers-use-nsight
, --no-ray-workers-use-nsight
¶
是否使用 nsight 分析 Ray worker,请参阅 https://docs.rayai.org.cn/en/latest/ray-observability/user-guides/profiling.html#profiling-nsight-profiler。
默认值:False
--disable-custom-all-reduce
, --no-disable-custom-all-reduce
¶
禁用自定义 all-reduce 内核并回退到 NCCL。
默认值:False
--worker-cls
¶
要使用的 worker 类的完整名称。如果为“auto”,worker 类将根据平台确定。
默认值:auto
--worker-extension-cls
¶
要使用的 worker 扩展类的完整名称。worker 扩展类由 worker 类动态继承。这用于向 worker 类注入新属性和方法,以便在 collective_rpc 调用中使用。
默认值:``
--enable-multimodal-encoder-data-parallel
, --no-enable-multimodal-encoder-data-parallel
¶
对视觉编码器使用数据并行而不是张量并行。目前仅支持 LLama4。
默认值:False
CacheConfig¶
KV 缓存配置。
--block-size
¶
可能选项:1
, 8
, 16
, 32
, 64
, 128
连续缓存块以 token 数量表示的大小。在 neuron 设备上,此参数被忽略并设置为 --max-model-len
。在 CUDA 设备上,仅支持最大 32 的块大小。在 HPU 设备上,块大小默认为 128。
此配置没有静态默认值。如果用户未指定,它将根据当前平台在 Platform.check_and_update_config()
中设置。
默认值:None
--gpu-memory-utilization
¶
用于模型执行器的 GPU 内存比例,范围从 0 到 1。例如,值为 0.5 意味着 50%% 的 GPU 内存利用率。如果未指定,将使用默认值 0.9。这是每个实例的限制,仅适用于当前的 vLLM 实例。即使您在同一 GPU 上运行另一个 vLLM 实例,这也不受影响。例如,如果您在同一 GPU 上运行两个 vLLM 实例,您可以为每个实例设置 0.5 的 GPU 内存利用率。
默认值:0.9
--swap-space
¶
每 GPU 的 CPU 交换空间大小(GiB)。
默认值:4
--kv-cache-dtype
¶
可能选项:auto
, fp8
, fp8_e4m3
, fp8_e5m2
, fp8_inc
kv 缓存存储的数据类型。如果为“auto”,将使用模型数据类型。CUDA 11.8+ 支持 fp8 (=fp8_e4m3) 和 fp8_e5m2。ROCm (AMD GPU) 支持 fp8 (=fp8_e4m3)。Intel Gaudi (HPU) 支持 fp8(使用 fp8_inc)。
默认值:auto
--num-gpu-blocks-override
¶
要使用的 GPU 块数量。如果指定,这将覆盖分析的 num_gpu_blocks
。如果为 None
则不执行任何操作。用于测试抢占。
默认值:None
--enable-prefix-caching
, --no-enable-prefix-caching
¶
是否启用前缀缓存。V0 默认禁用。V1 默认启用。
默认值:None
--prefix-caching-hash-algo
¶
可能选项:builtin
, sha256
, sha256_cbor_64bit
设置前缀缓存的哈希算法
-
“builtin”是 Python 的内置哈希。
-
“sha256”是抗碰撞的,但具有一定的开销。此选项在哈希前使用 Pickle 进行对象序列化。
-
“sha256_cbor_64bit”提供了一个可重现、跨语言兼容的哈希。它使用规范 CBOR 序列化对象,并使用 SHA-256 进行哈希。结果哈希由 SHA-256 摘要的低 64 位组成。
默认值:builtin
--cpu-offload-gb
¶
每 GPU 卸载到 CPU 的空间大小(以 GiB 为单位)。默认值为 0,表示不卸载。直观上,此参数可以看作是虚拟增加 GPU 内存大小的一种方式。例如,如果您有一个 24 GB 的 GPU 并将其设置为 10,则虚拟上可以将其视为 34 GB 的 GPU。然后您可以加载一个带有 BF16 权重的 13B 模型,该模型至少需要 26GB GPU 内存。请注意,这需要快速的 CPU-GPU 互连,因为模型的一部分会在每个模型前向传递中动态地从 CPU 内存加载到 GPU 内存。
默认值:0
--calculate-kv-scales
, --no-calculate-kv-scales
¶
当 kv_cache_dtype 为 fp8 时,这将启用 k_scale
和 v_scale
的动态计算。如果为 False
,则如果可用,将从模型检查点加载这些比例。否则,这些比例将默认为 1.0。
默认值:False
MultiModalConfig¶
控制多模态模型的行为。
--limit-mm-per-prompt
¶
每个提示允许的每种模态的最大输入项数。对于每种模态,V0 默认为 1,V1 默认为 999。
例如,要允许每个提示最多 16 张图像和 2 个视频:{"images": 16, "videos": 2}
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:{}
--media-io-kwargs
¶
传递给处理媒体输入的额外参数,以模态为键。例如,要为视频设置 num_frames,请设置 --media-io-kwargs '{"video": {"num_frames": 40} }'
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:{}
--mm-processor-kwargs
¶
从 transformers.AutoProcessor.from_pretrained
获取的多模态处理器的覆盖。
可用的覆盖取决于正在运行的模型。
例如,对于 Phi-3-Vision:{"num_crops": 4}
。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:None
--disable-mm-preprocessor-cache
, --no-disable-mm-preprocessor-cache
¶
如果为 True
,则禁用处理后的多模态输入的缓存。
默认值:False
--interleave-mm-strings
, --no-interleave-mm-strings
¶
为多模态提示启用完全交错支持。
默认值:False
LoRAConfig¶
LoRA 配置。
--enable-lora
, --no-enable-lora
¶
如果为 True,则启用 LoRA 适配器处理。
默认值:None
--enable-lora-bias
, --no-enable-lora-bias
¶
为 LoRA 适配器启用偏置。
默认值:False
--max-loras
¶
单个批次中 LoRA 的最大数量。
默认值:1
--max-lora-rank
¶
最大 LoRA 等级。
默认值:16
--lora-extra-vocab-size
¶
LoRA 适配器中可能存在的额外词汇的最大大小(添加到基础模型词汇)。
默认值:256
--lora-dtype
¶
可能选项:auto
, bfloat16
, float16
LoRA 的数据类型。如果为 auto,将默认为基础模型的数据类型。
默认值:auto
--max-cpu-loras
¶
在 CPU 内存中存储的 LoRA 的最大数量。必须大于等于 max_loras
。
默认值:None
--fully-sharded-loras
, --no-fully-sharded-loras
¶
默认情况下,只有一半的 LoRA 计算与张量并行进行分片。启用此选项将使用完全分片的层。在高序列长度、最大秩或张量并行大小时,这可能更快。
默认值:False
--default-mm-loras
¶
将特定模态映射到 LoRA 模型路径的字典;此字段仅适用于多模态模型,并且当给定模态存在时,模型始终期望 LoRA 处于活动状态时应利用此字段。请注意,目前,如果一个请求提供了多个额外的模态,每个模态都有自己的 LoRA,我们不应用 default_mm_loras,因为我们目前每个提示只支持一个 lora 适配器。在离线模式下运行时,n 个模态的 lora ID 将按照模态名称的字母顺序自动分配为 1 到 n。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:None
SpeculativeConfig¶
推测解码的配置。
--speculative-config
¶
推测解码的配置。应为 JSON 字符串。
默认值:None
ObservabilityConfig¶
可观测性配置 - 指标和追踪。
--show-hidden-metrics-for-version
¶
启用自指定版本以来已隐藏的已弃用 Prometheus 指标。例如,如果一个先前已弃用的指标自 v0.7.0 发布以来已被隐藏,您可以使用 --show-hidden-metrics-for-version=0.7
作为临时退出机制,同时您迁移到新指标。该指标很可能在即将发布的版本中被完全移除。
默认值:None
--otlp-traces-endpoint
¶
OpenTelemetry 追踪将发送到的目标 URL。
默认值:None
--collect-detailed-traces
¶
可能选项:all
, model
, worker
, None
, model,worker
, model,all
, worker,model
, worker,all
, all,model
, all,worker
仅在设置了 --otlp-traces-endpoint
时设置此项才有意义。如果设置,它将收集指定模块的详细追踪。这可能涉及使用昂贵和/或阻塞操作,因此可能会对性能产生影响。
请注意,收集每个请求的详细计时信息可能代价高昂。
默认值:None
SchedulerConfig¶
调度器配置。
--max-num-batched-tokens
¶
单次迭代中要处理的最大 token 数量。
此配置没有静态默认值。如果用户未指定,它将根据使用上下文在 EngineArgs.create_engine_config
中设置。
默认值:None
--max-num-seqs
¶
单次迭代中要处理的最大序列数量。
此配置没有静态默认值。如果用户未指定,它将根据使用上下文在 EngineArgs.create_engine_config
中设置。
默认值:None
--max-num-partial-prefills
¶
对于分块预填充,可以同时部分预填充的最大序列数量。
默认值:1
--max-long-partial-prefills
¶
对于分块预填充,同时预填充的长度超过 long_prefill_token_threshold 的提示的最大数量。将其设置小于 max_num_partial_prefills 在某些情况下允许较短的提示排在较长提示之前,从而提高延迟。
默认值:1
--cuda-graph-sizes
¶
Cuda 图捕获大小 1. 如果未提供,则默认为 [min(max_num_seqs * 2, 512)] 2. 如果提供一个值,则捕获列表将遵循以下模式:[1, 2, 4] + [i for i in range(8, cuda_graph_sizes + 1, 8)] 3. 如果提供多个值(例如 1 2 128),则捕获列表将遵循提供的值列表。
默认值:[]
--long-prefill-token-threshold
¶
对于分块预填充,如果提示的 token 数量超过此值,则认为该请求是长请求。
默认值:0
--num-lookahead-slots
¶
每步每个序列要分配的槽位数量,超出已知 token ID。这用于推测解码,以存储可能或可能不被接受的 token 的 KV 激活。
注意:此项将来将被推测配置取代;目前保留此项是为了启用正确性测试。
默认值:0
--scheduler-delay-factor
¶
在调度下一个提示之前应用延迟(延迟因子乘以先前提示延迟)。
默认值:0.0
--preemption-mode
¶
可能选项:recompute
, swap
, None
是执行通过交换还是重新计算的抢占。如果未指定,我们按如下方式确定模式:我们默认使用重新计算,因为它比交换产生的开销更低。但是,当序列组具有多个序列(例如,束搜索)时,目前不支持重新计算。在这种情况下,我们改用交换。
默认值:None
--num-scheduler-steps
¶
每次调度器调用时的最大前向步骤数。
默认值:1
--multi-step-stream-outputs
, --no-multi-step-stream-outputs
¶
如果为 False,则多步将在所有步骤结束时流式输出
默认值:True
--scheduling-policy
¶
可能选项:fcfs
, priority
要使用的调度策略
-
“fcfs”表示先到先得,即请求按到达顺序处理。
-
“priority”表示请求根据给定优先级(值越低越早处理)和到达时间(决定任何平局)进行处理。
默认值:fcfs
--enable-chunked-prefill
, --no-enable-chunked-prefill
¶
如果为 True,预填充请求可以根据剩余的 max_num_batched_tokens 进行分块。
默认值:None
--disable-chunked-mm-input
, --no-disable-chunked-mm-input
¶
如果设置为 true 并且启用了分块预填充,我们不希望部分调度多模态项。仅在 V1 中使用。这确保了如果一个请求具有混合提示(如文本 token TTTT 后跟图像 token IIIIIIIIII),其中只有部分图像 token 可以被调度(如 TTTTIIIII,留下 IIIII),它将在一个步骤中作为 TTTT 调度,在下一个步骤中作为 IIIIIIIIII 调度。
默认值:False
--scheduler-cls
¶
要使用的调度器类。“vllm.core.scheduler.Scheduler”是默认调度器。可以直接是类,也可以是“mod.custom_class”形式的类路径。
默认值:vllm.core.scheduler.Scheduler
--disable-hybrid-kv-cache-manager
, --no-disable-hybrid-kv-cache-manager
¶
如果设置为 True,KV 缓存管理器将为所有注意力层分配相同大小的 KV 缓存,即使存在多种类型的注意力层,如全注意力层和滑动窗口注意力层。
默认值:False
--async-scheduling
, --no-async-scheduling
¶
实验性功能:如果设置为 True,执行异步调度。这可能有助于减少 CPU 开销,从而提高延迟和吞吐量。然而,异步调度目前不支持某些功能,如结构化输出、推测解码和管道并行。
默认值:False
VllmConfig¶
包含所有 vllm 相关配置的数据类。这简化了在代码库中传递不同配置。
--kv-transfer-config
¶
分布式 KV 缓存传输的配置。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:None
--kv-events-config
¶
事件发布的配置。
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:None
--compilation-config
, -O
¶
模型的 torch.compile
和 cudagraph 捕获配置。
作为简写,可以使用 -O<n>
直接指定编译级别 n
:-O3
等同于 -O.level=3
(与 -O='{"level":3}'
相同)。目前,-O
注意:级别 0 是没有任何优化的默认级别。级别 1 和 2 仅用于内部测试。级别 3 是生产环境推荐的级别,也是 V1 中的默认级别。
您可以这样指定完整的编译配置:{"level": 3, "cudagraph_capture_sizes": [1, 2, 4, 8]}
应为有效的 JSON 字符串或单独传递的 JSON 键。例如,以下参数集是等效的
-
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
-
--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,可以使用 +
单独传递列表元素
-
--json-arg '{"key4": ["value3", "value4", "value5"]}'
-
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
默认值:{"level":0,"debug_dump_path":"","cache_dir":"","backend":"","custom_ops":[],"splitting_ops":[],"use_inductor":true,"compile_sizes":null,"inductor_compile_config":{"enable_auto_functionalized_v2":false},"inductor_passes":{},"use_cudagraph":true,"cudagraph_num_of_warmups":0,"cudagraph_capture_sizes":null,"cudagraph_copy_inputs":false,"full_cuda_graph":false,"max_capture_size":null,"local_cache_dir":null}
--additional-config
¶
指定平台的额外配置。不同的平台可能支持不同的配置。请确保配置对您正在使用的平台有效。内容必须是可哈希的。
默认值:{}
AsyncEngineArgs
¶
--disable-log-requests
¶
禁用请求日志记录。
默认值:False