跳到内容

引擎参数

引擎参数控制 vLLM 引擎的行为。

引擎参数类 EngineArgsAsyncEngineArgsvllm.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_idsNone 作为提示。生成的输出将包含 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 后端,用于使其行为与 outlinesxgrammar 更好地对齐。

默认值: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_scalev_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和 -O=也受支持,但将来可能会被移除,以支持更清晰的 -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