跳至内容

引擎参数

引擎参数控制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

--runner

可选选项: auto, draft, generate, pooling

要使用的模型运行器类型。每个vLLM实例仅支持一个模型运行器,即使同一模型可用于多种类型。

默认值: auto

--convert

可选选项: auto, classify, embed, none, reward

使用vllm.model_executor.models.adapters中定义的适配器转换模型。最常见的应用场景是将文本生成模型适配用于池化任务。

默认值: auto

--task

可选选项:auto, classify, draft, embed, embedding, generate, reward, score, transcription, None

[已弃用] 该任务用于指定模型用途。如果模型支持多个模型运行器,此参数用于选择要运行的模型运行器。

请注意,该模型可能支持使用相同模型运行器的其他任务。

默认值: None

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

用于量化权重的方法。如果为None,我们首先检查模型配置文件中的quantization_config属性。如果该属性也是None,我们假定模型权重未被量化,并使用dtype来确定权重的数据类型。

默认值: None

--enforce-eager, --no-enforce-eager

是否始终使用PyTorch的eager模式。如果为True,将禁用CUDA图并始终以eager模式执行模型。如果为False,将混合使用CUDA图和eager执行以获得最佳性能和灵活性。

默认值: False

--max-seq-len-to-capture

CUDA图覆盖的最大序列长度。当序列的上下文长度超过此值时,我们将回退到即时执行模式。此外,对于编码器-解码器模型,如果编码器输入的序列长度超过此值,我们也将回退到即时执行模式。

默认值: 8192

--max-logprobs

当在SamplingParams中指定logprobs时,要返回的最大对数概率数。默认值来自OpenAI Chat Completions 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。生成的输出将包含令牌ID。

默认值: False

--enable-prompt-embeds, --no-enable-prompt-embeds

如果设为True,则允许通过prompt_embeds键传入文本嵌入作为输入。请注意,启用此选项将使图编译所需时间翻倍。

默认值: False

--served-model-name

API中使用的模型名称。如果提供多个名称,服务器将响应其中任何一个名称。响应中model字段的模型名称将是此列表中的第一个名称。如果未指定,模型名称将与--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设备特定的默认配置,该参数将用于配置无法从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,那么它将为所有请求设置服务器范围内的输出令牌数量限制。

默认值: 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

覆盖注意力机制的数据类型

默认值: None

加载配置

用于加载模型权重的配置。

--load-format

要加载的模型权重格式:

  • "auto" 将尝试加载 safetensors 格式的权重,如果 safetensors 格式不可用,则回退到 pytorch bin 格式。

  • "pt" 将以 PyTorch 二进制格式加载权重。

  • "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 模型使用的 consolidated safetensors 文件中加载权重。

  • 其他自定义值可以通过插件支持。

默认值: auto

--download-dir

下载和加载权重的目录,默认为Hugging Face的默认缓存目录。

默认值: None

--model-loader-extra-config

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

默认值: {}

--ignore-patterns

加载模型时需要忽略的模式列表。默认为"original/*/"以避免重复加载llama的检查点。

默认值: None

--use-tqdm-on-load, --no-use-tqdm-on-load

是否启用tqdm以在加载模型权重时显示进度条。

默认值: True

--pt-load-map-location

pt_load_map_location: the map location for loading pytorch checkpoint, to support loading checkpoints can only be loaded on certain devices like "cuda", this is equivalent to {"": "cuda"}. Another supported format is mapping from different devices like from GPU 1 to GPU 0: {"cuda:1": "cuda:0"}. Note that when passed from command line, the strings in dictionary needs to be double quoted for json parsing. For more details, see original doc for map_location in https://pytorch.org/docs/stable/generated/torch.load.html

默认值: cpu

解码配置

包含引擎解码策略的数据类。

--guided-decoding-backend

可选选项: auto, guidance, 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

如果设为Trueguidance后端将不会在JSON模式中使用additionalProperties。此功能仅适用于guidance后端,用于使其行为更好地与outlinesxgrammar保持一致。

默认值: False

--reasoning-parser

可选选项:deepseek_r1, glm45, granite, hunyuan_a13b, mistral, qwen3, step3

根据您使用的模型选择合适的推理解析器。该解析器用于将推理内容转换为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

是否启用"混合"数据并行负载均衡模式。仅适用于在线服务且当data_parallel_size大于0时。该模式支持在"每节点"基础上运行AsyncLLM和API服务器,其中vLLM在本地数据并行等级间进行负载均衡,而外部负载均衡器则在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

Maximum number of parallel loading workers when loading model sequentially in multiple batches. To avoid RAM OOM when using tensor parallel and large models.

默认值: None

--ray-workers-use-nsight, --no-ray-workers-use-nsight

Whether to profile Ray workers with nsight, see https://docs.ray.io/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

连续缓存块的大小,以令牌数量表示。在神经元设备上此设置会被忽略,并固定为--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内存容量的方式。例如,若您拥有一块24GB的GPU并将此参数设为10,从虚拟角度可以将其视为34GB的GPU。这样您就能加载需要至少26GB显存的13B BF16权重模型。请注意,这需要高速的CPU-GPU互连带宽,因为在每次模型前向传播时,部分模型权重会实时从CPU内存加载到GPU内存。

默认值: 0

--calculate-kv-scales, --no-calculate-kv-scales

当kv_cache_dtype为fp8时,这将启用k_scalev_scale的动态计算。如果设为False,则会从模型检查点加载缩放因子(如果可用)。否则,缩放因子将默认为1.0。

默认值: False

--kv-sharing-fast-prefill, --no-kv-sharing-fast-prefill

此功能正在开发中,目前启用此标志时不会进行预填充优化。

在某些KV共享设置中,例如YOCO(https://arxiv.org/abs/2405.05254),某些层可以跳过与预填充对应的token。此标志允许符合条件的层的注意力元数据被覆盖,以便在某些模型(如Gemma3n)中实现此优化所需的元数据。

默认值: False

MultiModalConfig

控制多模态模型的行为。

--limit-mm-per-prompt

每个模态下每个提示允许的最大输入项数量。默认为每个模态1项(V0)或999项(V1)。

例如,允许每个提示最多包含16张图片和2个视频:{"image": 16, "video": 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

传递给处理媒体输入的额外参数,按模态分类。例如,要为视频设置帧数,使用--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

LoRA配置

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

可观测性配置

可观测性配置 - 指标与追踪。

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

对于分块预填充,可以并发预填充的超过长预填充令牌阈值的提示词最大数量。将此值设置为小于最大部分预填充数时,在某些情况下可以让较短的提示词优先于较长的提示词进行填充,从而改善延迟。

默认值: 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

对于分块预填充,如果提示词长度超过此令牌数,则该请求被视为长请求。

默认值: 0

--num-lookahead-slots

每个序列每一步额外分配的槽位数,超出已知令牌ID的部分。这用于推测性解码,存储可能被接受或拒绝的令牌的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中使用,这确保如果一个请求包含混合提示(例如文本标记TTTT后跟图像标记IIIIIIIIII),其中只有部分图像标记可以被调度(例如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

Vllm配置

包含所有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-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":null,"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

优云智算