vLLM 服务器参数


Red Hat AI Inference Server 3.0

运行 Red Hat AI Inference Server 的服务器参数

Red Hat AI Documentation Team

摘要

了解如何配置和运行 Red Hat AI Inference Server。

前言

Red Hat AI Inference Server 为 inference 服务提供 OpenAI 兼容 API 服务器。您可以使用参数控制服务器的行为。

本文档以 vllm serving 命令使用的最重要的服务器参数列表开始。另外还提供了 vllm 服务 参数、环境变量、服务器指标的完整列表。

第 1 章 关键 vLLM 服务器参数

您可以使用 4 个关键参数来配置在硬件上运行的 AI Inference 服务器:

  1. --tensor-parallel-size: 将您的模型分布到主机 GPU 中。
  2. --GPU-memory-utilization :调整模型权重、激活和 KV 缓存的加速器内存使用率。作为 0.0 到 1.0 的比例测量,默认为 0.9.例如,您可以将此值设置为 0.8,将 AI Inference Server 的 GPU 内存消耗限制为 80%。使用部署稳定的最大值来最大化吞吐量。
  3. --max-model-len: 限制模型的最大上下文长度,以令牌表示。如果模型的默认上下文长度太长,则将其设置为防止内存出现问题。
  4. --max-num-batched-tokens: 将令牌的最大批处理大小限制为每个步骤处理(以令牌表示)。增加这可以提高吞吐量,但可能会影响输出令牌延迟。

例如,要运行 Red Hat AI Inference Server 容器并使用 vLLM 提供模型,请根据需要运行以下命令更改服务器参数:

$ podman run --rm -it \
--device nvidia.com/gpu=all \
--security-opt=label=disable \
--shm-size=4GB -p 8000:8000 \
--userns=keep-id:uid=1001 \
--env "HUGGING_FACE_HUB_TOKEN=$HF_TOKEN" \
--env "HF_HUB_OFFLINE=0" \
--env=VLLM_NO_USAGE_STATS=1 \
-v ./rhaiis-cache:/opt/app-root/src/.cache \
registry.redhat.io/rhaiis/vllm-cuda-rhel9:3.0.0 \
--model RedHatAI/Llama-3.2-1B-Instruct-FP8 \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.8 \
--max-model-len 16384 \
--max-num-batched-tokens 2048 \

第 2 章 vLLM 服务器参数的完整列表

以下是可与 vllm serve 命令一起使用的 vLLM 服务器参数的完整列表。提供了每个服务器参数和默认值的说明。

2.1. vLLM 服务器参数

--model

要使用的 Hugging Face 模型的名称或路径。

默认值:facebook/opt-125m

--task

使用模型的任务。每个 AI Inference 服务器实例只支持一个任务,即使同一模型可用于多个任务。当模型仅支持一个任务时,可以使用 auto 来选择它;否则,您必须明确指定要使用的任务。

默认值auto

选项auto,generate,embedding,embed,classify,score,reward,transcription

--tokenizer
要使用的 Hugging Face tokenizer 的名称或路径。如果未指定,则使用模型名称或路径。
--hf-config-path
要使用的 Hugging Face 配置的名称或路径。如果未指定,则使用模型名称或路径。
--skip-tokenizer-init
跳过令牌程序和解码初始化。预期从输入中有效的 prompt_token_ids 和 None 以提示。生成的输出将包含令牌 ID。
--revision
要使用的特定模型版本。它可以是分支名称、标签名称或提交 id。如果未指定,则使用默认版本。
--code-revision
用于 Hugging Face Hub 上模型代码的特定修订版本。它可以是分支名称、标签名称或提交 id。如果未指定,则使用默认版本。
--tokenizer-revision
要使用的 Hugging Face tokenizer 的修订。它可以是分支名称、标签名称或提交 id。如果未指定,则使用默认版本。
--tokenizer-mode

令牌程序模式。

  • auto 使用快速令牌程序(如果可用)。
  • 慢速 使用较慢的令牌程序。
  • mistral 始终使用 mistral_common 令牌器。
  • 自定义 use -tokenizer 来选择预注册的令牌工具程序。

默认值auto

选项auto,slow,mistral,custom

--trust-remote-code
信任 Hugging Face 的远程代码。
--allowed-local-media-path
允许 API 请求从服务器文件系统指定的目录中读取本地镜像或视频。这是一个安全风险。应该只在可信环境中启用。
--download-dir
用于下载和加载权重的目录,默认为 Hugging Face 的默认缓存目录。
--load-format

要载入的模型权重的格式。

默认值auto

选项auto,pt,securetensors,npcache,dummy,tensorizer,sharded_state,gguf,bitsandbytes,mistral,runai_streamer

  • auto 尝试以 securetensors 格式加载权重,并在 securetensors 格式不可用时回退到 pytorch bin 格式。
  • pt 以 pytorch bin 格式加载权重。
  • Securetensors 以 securetensors 格式加载权重。
  • npcache 以 pytorch 格式加载权重,并存储 numpy 缓存以加快负载。
  • dummy 使用随机值初始化权重,这主要用于性能分析。
  • 10sorizer 使用 CoreWeave 中的 10sorizer 加载权重。如需更多信息,请参阅 Examples 部分中的 Tensorize AI Inference Server Model script。
  • runai_streamer 使用 Run:aiModel Streamer 加载 Safetensors weights
  • 位和字节 使用位和字节量来加载权重。
--config-format

要载入的模型配置的格式。

选项autohfmistral

如果可用,则自动尝试以 hf 格式加载配置(如果不可用),请尝试以 mistral 格式加载。

默认值:ConfigFormat.AUTO

--dtype

模型权重和激活的数据类型。

默认值auto

选项auto,half,float16,bfloat16,float,float32

  • auto 将 FP16 精度用于 FP32 和 FP16 模型,并将 BF16 精度用于 BF16 模型。
  • 一半 表示 FP16。建议 AWQ 量化。
  • float16一半 相同。
  • Bfloat16,用于精度和范围之间的平衡。
  • 浮点 数简写为 FP32 精度。
  • float32 用于 FP32 精度。
--kv-cache-dtype

kv 缓存存储的数据类型。如果为 auto,则使用 model 数据类型。CUDA 11.8+ 支持 fp8 (=fp8_e4m3)和 fp8_e5m2。ROCm (AMD GPU)支持 fp8 (=fp8_e4m3)

选项auto,fp8,fp8_e5m2,fp8_e4m3

默认值auto

--max-model-len
模型上下文长度.如果未指定,则会自动从模型配置派生值。
--guided-decoding-backend

默认用于引导解码(JSON 模式、正则表达式等)的引擎。目前支持 outline -dev/outlinesmlc-ai/xgrammarnoamgat/lm-format-enforcer。可以通过 guided_decoding_backend 参数覆盖每个请求。在后端名称后,可以在以逗号分隔的列表中提供特定于后端的选项。有效的后端和所有可用选项包括:

  • xgrammar:no-fallback,
  • xgrammar:disable-any-whitespace,
  • outline:no-fallback,
  • lm-format-enforcer:no-fallback

默认值xgrammar

--logits-processor-pattern
可选正则表达式模式指定可以使用 logits_processors extra completion 参数传递的有效日志限定名称。默认为 None,不允许处理器。
--model-impl

要使用的模型的实现。

默认值auto

选项auto,vllm,转换器

  • 如果已存在,则自动尝试使用 AI Inference 服务器实现,并在没有 AI Inference Server 实施的情况下回退到 Transformers 实施。
  • vllm 使用 AI Inference Server 模型实现。
  • 转换器 使用 Transformers 模型实现。
--distributed-executor-backend

用于分布式模型 worker 的后端,可以是 raymp (多处理)。如果 pipeline_parallel_size 和 10 sor_parallel_size 的产品小于或等于可用的 GPU 数量,则 mp 用于在单个主机上保持处理。否则,如果安装了 Ray,则默认为 ray,否则会失败。请注意,TPU 仅支持 Ray 进行分布式推测。

选项ray,mp,uni,external_launcher

--pipeline-parallel-size, -pp

通过将模型层划分为后续管道阶段来划分模型的节点数量。

默认值: 1

--tensor-parallel-size, -tp

在多个 GPU 中分割模型以共享存储和计算负载。

默认值: 1

--enable-expert-parallel
对于 MoE 层,使用专家并行性而不是十个并行性。
--max-parallel-loading-workers
在多个批处理中按顺序加载模型,以避免使用十个程序并行和大型模型时的 RAM OOM。
--ot-workers-use-nsight
如果指定,使用 nsight 来对 Ray worker 进行性能分析。
--block-size

令牌连续块的令牌块大小.这在 neuron 设备中会被忽略,并设置为 --max-model-len。在 CUDA 设备中,只支持块大小最多 32 个。在 HPU 设备上,块大小默认为 128。

选项 : 8、16、32、64、128

--enable-prefix-caching, --no-enable-prefix-caching
启用自动前缀缓存。use --no-enable-prefix-caching 可明确禁用。
--disable-sliding-window
禁用滑动窗口,对窗口大小进行上限。
--use-v2-block-manager
DEPRECATED: 块管理器 v1 已被删除,并且 SelfAttnBlockSpaceManager (块管理器 v2)现在是默认的。将此标志设置为 True 或 False 对 AI Inference 服务器行为没有影响。
--num-lookahead-slots

规范解码所需的实验性调度配置。这由将来被 speculative 配置替代,它会被存在来启用正确的测试,直到它为止。

默认值: 0

--seed
随机 seed 用于操作。
--swap-space

每个 GPU 的 CPU 交换空间大小(GiB)。

默认值 :4

--cpu-offload-gb

GiB 中每个 GPU 卸载 CPU 的空间。默认值为 0,表示没有卸载。直观地,此参数可以被看成一种增加 GPU 内存大小的虚拟方式。例如,如果您有一个 24 GB GPU 并把它设置为 10,则虚拟您可以将其视为 34 GB GPU。然后,您可以使用 BF16 权重加载 13B 模型,它至少需要 26GB GPU 内存。请注意,这需要快速 CPU-GPU 互连,因为型号在每次模型转发过程中从 CPU 内存加载到 GPU 内存。

默认值: 0

--gpu-memory-utilization

用于模型 executor 的 GPU 内存的比例,范围从 0 到 1。例如,值 0.5 意味着 50% 的 GPU 内存使用率。如果未指定,则使用默认值 0.9.这是一个针对每个实例的限制,仅适用于当前的 AI Inference 服务器实例。如果您有同一 GPU 上运行的另一个 AI Inference 服务器实例,则这无关紧要。例如,如果您在同一 GPU 上运行两个 AI Inference 服务器实例,您可以将每个实例的 GPU 内存使用率设置为 0.5。

默认值 :0.9

--num-gpu-blocks-override
如果指定,忽略 GPU 分析结果并使用这个数量的 GPU 块。用于测试抢占。
--max-num-batched-tokens
每个迭代的最大批处理令牌数量。在 vLLM 中,批处理是来自活跃序列的所有令牌集合,这些令牌在每个调度程序步骤中共同进入模型。它被衡量为 "tokens per iteration",而不是每个迭代的 "sequences"。
--max-num-partial-prefills

对于块预先填充,并发部分预先填充的最大数量。默认到 1

默认值: 1

--max-long-partial-prefills

对于块预先填充的预填充,最大提示数量超过同时填充的 --long-prefill-token-threshold。设置小于 --max-num.-partial-prefills 时,可以缩短提示,在一些情况下,在较长的提示前跳过队列,从而提高了延迟。默认为 1。

默认值: 1

--long-prefill-token-threshold

对于块预先填充,如果提示符的时间超过这个数量的令牌,则请求会被视为很长时间。默认为模型上下文长度的 4%。

  • 默认值: 0
--max-num-seqs
每个迭代的最大序列数。
--max-logprobs

返回 logprobs 的最大日志数量在 SamplingParams 中指定。

默认值 :20

--disable-log-stats
禁用日志记录统计信息。
--quantization, -q

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

选项:aqlm,awq,deepspeedfp,tpu_int8,fp8,ptpc_fp8,fbgemm_fp8,modelopt,nvfp4,marlin,gguf,gptq_marlin_24,gptq_mar lin, awq_mar lin, gpt q, compressed-tens ors, bitsand bytes, q q , hq ,experts_int8 , neuron_qu ant, ip ex, qua rk, moe_wna 16,None

--rope-scaling
JSON 格式的 RoPE 扩展配置。例如,{rope_type:'dynamic',factor:2.0}
--rope-theta
RoPE 达州.与 rope_scaling 一起使用。在某些情况下,更改 RoPE 可提高扩展模型的性能。
--hf-overrides
HuggingFace 配置的额外参数。这应该是一个 JSON 字符串,它被解析为字典中。
--enforce.-eager
始终使用 eager-mode PyTorch。如果为 False,在混合中使用 eager 模式和 CUDA 图形获得最大性能和灵活性。
--max-seq-len-to-capture

CUDA 图形涵盖的最大序列长度。当序列的上下文长度大于这个值时,AI Inference 服务器会返回 eager 模式。另外,对于 encoder-decoder 模型,如果编码器输入的序列长度大于这种情况,AI Inference 服务器会返回 eager 模式。

默认值 :8192

--disable-custom-all-reduce
请参阅 ParallelConfig
--tokenizer-pool-size

用于异步令牌的令牌程序池的大小。如果为 0,则使用同步令牌。

默认值: 0

--tokenizer-pool-type

用于异步令牌的令牌程序池类型。如果 tokenizer_pool_size 为 0,则忽略。

默认值ray

--tokenizer-pool-extra-config
令牌程序池的额外配置。这应该是一个 JSON 字符串,它被解析为字典中。如果 tokenizer_pool_size. 为 0,则忽略。
--limit-mm-per-prompt
对于每个多模式插件,限制每个提示允许多少输入实例。需要以逗号分隔的项目列表,例如:image=16,video=2 允许每个提示最多 16 个镜像和 2 视频。对于每个模态,默认为 1。
--MM-processor-kwargs
覆盖多模式输入映射和处理,如镜像处理器。例如: {num_crops: 4}
--disable-mm-preprocessor-cache
如果为 true,则禁用多模式预处理器和映射程序的缓存。(不推荐)
--enable-lora
如果为 True,启用对 LoRA 适配器的处理。
--enable-lora-bias
如果为 True,为 LoRA 适配器启用 bias。
--max-loras

单个批处理中的最大 LoRA 数。

默认值: 1

--max-lora-rank

最大 LoRA 排名.

默认值 :16

--lora-extra-vocab-size

LoRA 适配器(添加到基本模型词汇)中可以存在的最大额外词汇大小。

默认值 :256

--lora-dtype

LoRA 的数据类型.如果为 auto,则默认为 base model dtype。

默认值auto

选项auto,float16,bfloat16

--long-lora-scaling-factors
指定多个扩展因素(可以与基础模型扩展因素不同 - 例如,LoRA)允许多个 LoRA 适配器同时接受这些扩展因素。如果没有指定,则只允许使用基本模型扩展因素培训的适配器。
--max-cpu-loras
在 CPU 内存中存储的最大 LoRA 数。必须大于 max_loras。默认为 max_loras
--fully-sharded-loras
默认情况下,只有一半的 LoRA 计算使用 10sor parallelism 进行分片。启用该操作会使用完全分片的层。在高序列长度中,最大排名或几十个并行大小可能更快。
--enable-prompt-adapter
如果为 True,启用 PromptAdapters 处理。
--max-prompt-adapters

批处理中 提示器 的最大数量。

默认值: 1

--max-prompt-adapter-token

PromptAdapters 令牌的最大数量

默认值: 0

--device

AI Inference 服务器执行的设备类型。

选项auto,cuda,neuron,cpu,openvino,tpu,xpu,hpu

默认值auto

--num-scheduler-steps

每个调度程序调用的最大转发步骤数。

默认值: 1

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

在载入模型权重时是否启用或禁用进度条。

默认值 :True

--multi-step-stream-outputs

如果为 False,则多步骤将在所有步骤的末尾流输出

默认值 :True

--scheduler-delay-factor

在调度下一个提示前,应用延迟(延迟因素乘以以前的提示延迟)。

默认值 : 0.0

--enable-chunked-prefill
如果设置,则预先填充请求可根据 max_num_batched_tokens 进行块。
--speculative-model
要在规范解码中使用的草案模型名称。
--speculative-model-quantization

用于量化规范模型权重的方法。如果为 None,AI Inference 服务器首先检查模型配置文件中的 quantization_config 属性。如果是 None,AI Inference 服务器假设模型权重没有量化,并使用 dtype 来确定权重的数据类型。

选项:aqlm,awq,deepspeedfp,tpu_int8,fp8,ptpc_fp8,fbgemm_fp8,modelopt,nvfp4,marlin,gguf,gptq_marlin_24,gptq_mar lin, awq_mar lin, gpt q, compressed-tens ors, bitsand bytes, q q , hq ,experts_int8 , neuron_qu ant, ip ex, qua rk, moe_wna 16,None

--num-speculative-tokens
在规范解码中,从草案模型中到示例的规范令牌数量。
--speculative-disable-mqa-scorer
如果设置为 True,则 MQA 分数在推测时被禁用,并返回批处理扩展。
--speculative-draft-tensor-parallel-size, -spec-draft-tp
以规范解码为草案模型的十个并行副本数。
--speculative-max-model-len
草案模型支持的最大序列长度。通过这个长度的序列将跳过推测。
--speculative-disable-by-batch-size
如果 enqueue 请求数大于这个值,则为新的传入的请求禁用规范解码。
--ngram-prompt-lookup-max
在规范解码中,用于 ngram 提示符查询的最大窗口大小。
--ngram-prompt-lookup-min
在规范解码中,用于 ngram 提示符查询的最小窗口大小。
--spec-decoding-acceptance-method

指定在规范解码中草案令牌验证过程中使用的验收方法。支持两种类型的接受例程:

  1. RejectionSampler :不允许更改接受草案令牌,
  2. TypicalAcceptanceSampler: Configurable,以较低质量的代价实现更高的接受率,反之亦然。

    默认值:rejection_sampler

    options:rejection_sampler,typical_acceptance_sampler

--typical-acceptance-sampler-posterior-threshold
为令牌的时间线率设置下限阈值。Typical AcceptanceSampler 使用 这个阈值在规范解码期间做出抽样决策。默认值为 0.09。
--typical-acceptance-sampler-posterior-alpha
TypicalAcceptanceSampler 中令牌接受的基于熵阈值的扩展因子。通常默认为方括号 root of -typical-acceptance-sampler-posterior-threshold,如 0.3。
--disable-logprobs-during-spec-decoding
如果设置为 True,则在指定解码过程中不会返回令牌日志探测。如果设置为 False,则根据 SamplingParams 中的设置返回日志概率。如果没有指定,则默认为 True。在规范解码过程中禁用日志概率可减少延迟,方法是在决定接受的令牌时跳过 logprob 计算来降低延迟。
--model-loader-extra-config
模型加载程序的额外配置。这被传递给与所选相关的模型加载程序。load_format.这应该是一个 JSON 字符串,它被解析为字典中。
--ignore.-patterns

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

默认值: []

--preemption-mode
如果 重新计算,引擎通过重新计算来执行抢占;如果 交换,引擎通过块交换来执行抢占。
--served-model-name
API 中使用的模型名称。如果提供了多个名称,服务器将响应任何提供的名称。响应的 model 字段中的型号名称是此列表中的名字。如果没有指定,模型名称与 the- models 参数相同。请注意,名称也用于 Prometheus 指标的 model_name 标签内容。如果提供了多个名称,则 metrics 标签将采用第一个名称。
--qlora-adapter-name-or-path
QLoRA 适配器的名称或路径。
--show-hidden-metrics-for-version
启用自指定版本后隐藏的已弃用的 Prometheus 指标。例如,自 v0.7.0 发布以来,如果之前已弃用的指标已被隐藏,您可以在 迁移到新指标时,使用--show-hidden-metrics-for-version=0.7 作为临时转义。指标可能会在即将推出的发行版本中完全删除。
--otlp-traces-endpoint
将 OpenTelemetry 跟踪发送到的目标 URL。
--collects-detailed-traces
有效选择包括 模型worker所有。仅在设置了 if- otlp-traces-endpoint 时设置它才有意义。如果设置,服务器会为指定模块收集详细的追踪。这涉及使用可能昂贵的或阻塞操作,因此可能会对性能有影响。
--disable-async-output-proc
禁用 async 输出处理。这可能会导致性能下降。
--scheduling-policy

要使用的调度策略。fcfs (第一个提供第一个服务),以 arrival 的顺序处理请求;默认(根据给定的优先级处理请求,较低值意味着更早的处理;以及 arrival 确定任何绑定的时间)。

默认值fcfs

选项fcfspriority

--scheduler-cls

要使用的调度程序类。vllm.core.scheduler.Scheduler 是默认的调度程序。可以直接是一个类,也可以是形成 mod.custom_class 类的路径。

默认值:vllm.core.scheduler.Scheduler

--override-neuron-config
override 或 set neuron 设备配置,例如 {cast_logits_dtype: bloat16}
--override-pooler-config
覆盖或设置池模型的池方法,例如 {pooling_type:mean,normalize: false}。
--compilation-config, -O
模型的 torch.compile 配置。当它是一个数字(0、1、2、3)时,它被解释为优化级别。注意:级别 0 是没有任何优化的默认级别。级别 1 和 2 仅用于内部测试。3 级是生产环境的建议级别。要指定完整编译配置,请使用 JSON 字符串。按照传统编译器的惯例,使用 -O 时没有空格。-O3 等同于 -O 3。
--kv-transfer-config
分布式 KV 缓存传输的配置。应该是一个 JSON 字符串。
--worker-cls

用于分布式执行的 worker 类。

默认值auto

--worker-extension-cls
worker 上的 worker 扩展类冲突,如果您只想在不更改现有功能的情况下向 worker 类添加新功能,则这很有用。
--generation-config

生成配置的文件夹路径。默认为 auto,生成配置是从模型路径加载的。如果设置为:vllm,没有加载生成配置,使用 AI Inference Server 默认值。如果设置为文件夹路径,则会从指定的文件夹路径加载生成配置。如果在生成配置中指定 max_new_tokens.,它会为所有请求设置服务器端令牌数量。

默认值auto

--override-generation-config
覆盖或设置 JSON 格式的生成配置,例如 {temperature: 0.5}。如果与 -generation-config=auto 一起使用,则覆盖参数与模型中的默认配置合并。如果 generation-config 是 None,则只使用覆盖参数。
--enable-sleep-mode
为引擎启用睡眠模式。仅支持 CUDA 平台。
--calculate-kv-scales
这可启用 k_scalev_scale 的动态计算,当 kv-cache-dtypefp8 时。如果 compute-kv-scales 为 false,则扩展会从模型检查点加载(如果可用)。否则,将默认扩展到 1.0。
--additional-config
JSON 格式指定平台的额外配置。不同的平台可能支持不同的配置。确保配置对您要使用的平台有效。输入格式类似 {<config_key>: <config_value>}
--enable-reasoning
是否为模型启用 reasoning_content。如果启用,模型可以生成原因内容。
.--reasoning-parser

根据您使用的型号,选择原因解析器。这用于将内容解析为 OpenAI API 格式。需要进行- -enable-reasoning

options:deepseek_r1

--chat-template
传递 Jinja2 模板,用于指定角色、消息和其他特定于聊天的令牌的方式在输入中编码。如需更多信息,请参阅 Chat Template
--tool-call-parser
选项:deepseek_v3,granite-20b-fc,granite, heitmes , internlm,jamba,llama4_json,llama3_json,mistral,phi4_mini_json,pythonic, 或 name registered in -tool-parser-plugin.
--cuda-graph-sizes

CUDA 图形捕获大小,默认为 512。如果提供了一个值,则捕获列表将遵循以下模式:[ 1, 2, 4] + [i for i in range (8, cuda_graph_sizes + 1, 8)] 提供多个值(例如,1 2 128),然后捕获列表将遵循提供的列表。

默认 :512

--data-parallel-address, -dpa
数据并行集群头节点的地址。
--data-parallel-rpc-port, -dpp
数据并行 RPC 通信的端口。
--data-parallel-size, -dp

数据并行组数量。moe 层根据数十个并行大小和数据并行大小的产品进行分片。

默认 :1

--data-parallel-size-local, -dpl
此节点上运行的数据并行副本数。
--disable-cascade-attn, --no-disable-cascade-attn

对 V1 禁用级关注。虽然级联的关注不会更改数学正确性,但禁用它对于防止潜在的数字问题非常有用。请注意,即使这被设置为 False,只有 heuristics 告知它很有用时才使用级联注意。

默认 :False

--disable-chunked-mm-input, --no-disable-chunked-mm-input

如果设置为 true,并且启用了块的预先填充,请不要部分调度多模式项目。仅在 V1 中使用。这样可确保如果请求具有混合提示(例如,文本令牌 TTTT,后跟镜像令牌三IIIIIIIIIIIIIII),其中只能调度某些镜像令牌(例如,TTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII),该项目被调度为镜像令牌,其中只能调度某些镜像令牌(例如,TTTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII),确保,如果请求具有混合提示(例如,离开三IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

默认 :False

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

如果为 True,启用通过 prompt_embeds 键以输入形式传递文本。请注意,启用这将加倍图形编译所需的时间。

默认 :False

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

如果为 True,启用通过 prompt_embeds 键以输入形式传递文本。请注意,启用这将加倍图形编译所需的时间。

默认 :False

--guided-decoding-disable-additional-properties, --no-guided-decoding-disable-additional-properties

如果为 True,则指导后端不会在 JSON 模式中使用 additionalProperties。这只支持指导后端,用于更好地保持行为与概述和 xgrammar 保持一致。

默认 :False

--guided-decoding-disable-any-whitespace, ::--no-guided-decoding-disable-any-whitespace

如果为 True,则模型不会在引导解码过程中生成任何空格。这只支持 xgrammar 和 guidance 后端。

默认 :False

--guided-decoding-disable-fallback, --no-guided-decoding-disable-fallback

如果为 True,vLLM 不会回退到错误的不同后端。

默认 :False

--hf-token
用作远程文件的 HTTP bearer 授权的令牌。如果为 True,请使用在运行 huggingface-cli 登录时生成的令牌,存储在 ~/.huggingface 中。
--kv-events-config
事件发布的配置。应该是有效的 JSON 字符串或 JSON 密钥。
--prefix-caching-hash-algo

为前缀缓存设置哈希算法:

选项内置sha256

  • builtin 是 Python 的内置哈希。
  • SHA256 冲突冲突,但存在某些开销。

默认builtin

--pt-load-map-location

加载 pytorch 检查点的映射位置,以支持加载检查点只能加载到某些设备上,如 cuda,这等同于 {": "cuda"}。另一种支持的格式是从不同的设备(如 GPU 1 到 GPU 0: {"cuda:1": "cuda:0"} )映射。请注意,如果从命令行传递,字典中的字符串需要用双引号括起来用于 json 解析。如需了解更多详细信息,请参阅 https://pytorch.org/docs/stable/generated/torch.load.html中的 map_location 原始 doc

默认cpu

--speculative-config
推测解码的配置。应该是一个 JSON 字符串。
--ssl-keyfile
PEM 格式的 TLS 私钥的位置。

2.2. async 引擎参数

usage: vllm serve [-h] [--disable-log-requests]
--disable-log-requests
禁用日志记录请求。

第 3 章 vLLM 服务器使用

usage: vllm serve [-h] [--host HOST] [--port PORT]
                  [--uvicorn-log-level {debug,info,warning,error,critical,trace}]
                  [--disable-uvicorn-access-log] [--allow-credentials]
                  [--allowed-origins ALLOWED_ORIGINS]
                  [--allowed-methods ALLOWED_METHODS]
                  [--allowed-headers ALLOWED_HEADERS] [--api-key API_KEY]
                  [--lora-modules LORA_MODULES [LORA_MODULES ...]]
                  [--prompt-adapters PROMPT_ADAPTERS [PROMPT_ADAPTERS ...]]
                  [--chat-template CHAT_TEMPLATE]
                  [--chat-template-content-format {auto,string,openai}]
                  [--response-role RESPONSE_ROLE] [--ssl-keyfile SSL_KEYFILE]
                  [--ssl-certfile SSL_CERTFILE] [--ssl-ca-certs SSL_CA_CERTS]
                  [--enable-ssl-refresh] [--ssl-cert-reqs SSL_CERT_REQS]
                  [--root-path ROOT_PATH] [--middleware MIDDLEWARE]
                  [--return-tokens-as-token-ids]
                  [--disable-frontend-multiprocessing]
                  [--enable-request-id-headers] [--enable-auto-tool-choice]
                  [--tool-call-parser {deepseek_v3,granite-20b-fc,granite,hermes,internlm,jamba,llama4_json,llama3_json,mistral,phi4_mini_json,pythonic} or name registered in --tool-parser-plugin]
                  [--tool-parser-plugin TOOL_PARSER_PLUGIN] [--model MODEL]
                  [--task {auto,classify,draft,embed,embedding,generate,reward,score,transcription}]
                  [--tokenizer TOKENIZER]
                  [--tokenizer-mode {auto,custom,mistral,slow}]
                  [--trust-remote-code | --no-trust-remote-code]
                  [--dtype {auto,bfloat16,float,float16,float32,half}]
                  [--seed SEED] [--hf-config-path HF_CONFIG_PATH]
                  [--allowed-local-media-path ALLOWED_LOCAL_MEDIA_PATH]
                  [--revision REVISION] [--code-revision CODE_REVISION]
                  [--rope-scaling ROPE_SCALING] [--rope-theta ROPE_THETA]
                  [--tokenizer-revision TOKENIZER_REVISION]
                  [--max-model-len MAX_MODEL_LEN]
                  [--quantization {aqlm,awq,awq_marlin,bitblas,bitsandbytes,compressed-tensors,deepspeedfp,experts_int8,fbgemm_fp8,fp8,gguf,gptq,gptq_bitblas,gptq_marlin,gptq_marlin_24,hqq,ipex,marlin,modelopt,moe_wna16,neuron_quant,nvfp4,ptpc_fp8,qqq,quark,torchao,tpu_int8,None}]
                  [--enforce-eager | --no-enforce-eager]
                  [--max-seq-len-to-capture MAX_SEQ_LEN_TO_CAPTURE]
                  [--max-logprobs MAX_LOGPROBS]
                  [--disable-sliding-window | --no-disable-sliding-window]
                  [--disable-cascade-attn | --no-disable-cascade-attn]
                  [--skip-tokenizer-init | --no-skip-tokenizer-init]
                  [--enable-prompt-embeds | --no-enable-prompt-embeds]
                  [--served-model-name SERVED_MODEL_NAME [SERVED_MODEL_NAME ...]]
                  [--disable-async-output-proc]
                  [--config-format {auto,hf,mistral}] [--hf-token [HF_TOKEN]]
                  [--hf-overrides HF_OVERRIDES]
                  [--override-neuron-config OVERRIDE_NEURON_CONFIG]
                  [--override-pooler-config OVERRIDE_POOLER_CONFIG]
                  [--logits-processor-pattern LOGITS_PROCESSOR_PATTERN]
                  [--generation-config GENERATION_CONFIG]
                  [--override-generation-config OVERRIDE_GENERATION_CONFIG]
                  [--enable-sleep-mode | --no-enable-sleep-mode]
                  [--model-impl {auto,vllm,transformers}]
                  [--load-format {auto,pt,safetensors,npcache,dummy,tensorizer,sharded_state,gguf,bitsandbytes,mistral,runai_streamer,runai_streamer_sharded,fastsafetensors}]
                  [--download-dir DOWNLOAD_DIR]
                  [--model-loader-extra-config MODEL_LOADER_EXTRA_CONFIG]
                  [--ignore-patterns IGNORE_PATTERNS [IGNORE_PATTERNS ...]]
                  [--use-tqdm-on-load | --no-use-tqdm-on-load]
                  [--qlora-adapter-name-or-path QLORA_ADAPTER_NAME_OR_PATH]
                  [--pt-load-map-location PT_LOAD_MAP_LOCATION]
                  [--guided-decoding-backend {auto,guidance,lm-format-enforcer,outlines,xgrammar}]
                  [--guided-decoding-disable-fallback | --no-guided-decoding-disable-fallback]
                  [--guided-decoding-disable-any-whitespace | --no-guided-decoding-disable-any-whitespace]
                  [--guided-decoding-disable-additional-properties | --no-guided-decoding-disable-additional-properties]
                  [--enable-reasoning | --no-enable-reasoning]
                  [--reasoning-parser {deepseek_r1,granite,qwen3}]
                  [--distributed-executor-backend {external_launcher,mp,ray,uni,None}]
                  [--pipeline-parallel-size PIPELINE_PARALLEL_SIZE]
                  [--tensor-parallel-size TENSOR_PARALLEL_SIZE]
                  [--data-parallel-size DATA_PARALLEL_SIZE]
                  [--data-parallel-size-local DATA_PARALLEL_SIZE_LOCAL]
                  [--data-parallel-address DATA_PARALLEL_ADDRESS]
                  [--data-parallel-rpc-port DATA_PARALLEL_RPC_PORT]
                  [--enable-expert-parallel | --no-enable-expert-parallel]
                  [--max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS]
                  [--ray-workers-use-nsight | --no-ray-workers-use-nsight]
                  [--disable-custom-all-reduce | --no-disable-custom-all-reduce]
                  [--worker-cls WORKER_CLS]
                  [--worker-extension-cls WORKER_EXTENSION_CLS]
                  [--block-size {1,8,16,32,64,128}]
                  [--gpu-memory-utilization GPU_MEMORY_UTILIZATION]
                  [--swap-space SWAP_SPACE]
                  [--kv-cache-dtype {auto,fp8,fp8_e4m3,fp8_e5m2}]
                  [--num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE]
                  [--enable-prefix-caching | --no-enable-prefix-caching]
                  [--prefix-caching-hash-algo {builtin,sha256}]
                  [--cpu-offload-gb CPU_OFFLOAD_GB]
                  [--calculate-kv-scales | --no-calculate-kv-scales]
                  [--tokenizer-pool-size TOKENIZER_POOL_SIZE]
                  [--tokenizer-pool-type TOKENIZER_POOL_TYPE]
                  [--tokenizer-pool-extra-config TOKENIZER_POOL_EXTRA_CONFIG]
                  [--limit-mm-per-prompt LIMIT_MM_PER_PROMPT]
                  [--mm-processor-kwargs MM_PROCESSOR_KWARGS]
                  [--disable-mm-preprocessor-cache | --no-disable-mm-preprocessor-cache]
                  [--enable-lora | --no-enable-lora]
                  [--enable-lora-bias | --no-enable-lora-bias]
                  [--max-loras MAX_LORAS] [--max-lora-rank MAX_LORA_RANK]
                  [--lora-extra-vocab-size LORA_EXTRA_VOCAB_SIZE]
                  [--lora-dtype {auto,bfloat16,float16}]
                  [--long-lora-scaling-factors LONG_LORA_SCALING_FACTORS [LONG_LORA_SCALING_FACTORS ...]]
                  [--max-cpu-loras MAX_CPU_LORAS]
                  [--fully-sharded-loras | --no-fully-sharded-loras]
                  [--enable-prompt-adapter | --no-enable-prompt-adapter]
                  [--max-prompt-adapters MAX_PROMPT_ADAPTERS]
                  [--max-prompt-adapter-token MAX_PROMPT_ADAPTER_TOKEN]
                  [--device {auto,cpu,cuda,hpu,neuron,tpu,xpu}]
                  [--speculative-config SPECULATIVE_CONFIG]
                  [--show-hidden-metrics-for-version SHOW_HIDDEN_METRICS_FOR_VERSION]
                  [--otlp-traces-endpoint OTLP_TRACES_ENDPOINT]
                  [--collect-detailed-traces {all,model,worker,None} [{all,model,worker,None} ...]]
                  [--max-num-batched-tokens MAX_NUM_BATCHED_TOKENS]
                  [--max-num-seqs MAX_NUM_SEQS]
                  [--max-num-partial-prefills MAX_NUM_PARTIAL_PREFILLS]
                  [--max-long-partial-prefills MAX_LONG_PARTIAL_PREFILLS]
                  [--cuda-graph-sizes CUDA_GRAPH_SIZES [CUDA_GRAPH_SIZES ...]]
                  [--long-prefill-token-threshold LONG_PREFILL_TOKEN_THRESHOLD]
                  [--num-lookahead-slots NUM_LOOKAHEAD_SLOTS]
                  [--scheduler-delay-factor SCHEDULER_DELAY_FACTOR]
                  [--preemption-mode {recompute,swap,None}]
                  [--num-scheduler-steps NUM_SCHEDULER_STEPS]
                  [--multi-step-stream-outputs | --no-multi-step-stream-outputs]
                  [--scheduling-policy {fcfs,priority}]
                  [--enable-chunked-prefill | --no-enable-chunked-prefill]
                  [--disable-chunked-mm-input | --no-disable-chunked-mm-input]
                  [--scheduler-cls SCHEDULER_CLS]
                  [--kv-transfer-config KV_TRANSFER_CONFIG]
                  [--kv-events-config KV_EVENTS_CONFIG]
                  [--compilation-config COMPILATION_CONFIG]
                  [--additional-config ADDITIONAL_CONFIG]
                  [--use-v2-block-manager] [--disable-log-stats]
                  [--disable-log-requests] [--max-log-len MAX_LOG_LEN]
                  [--disable-fastapi-docs] [--enable-prompt-tokens-details]
                  [--enable-server-load-tracking]

第 4 章 环境变量

您可以使用环境变量来配置系统级别的安装、构建、记录 AI Inference Server 的行为。

重要

VLLM_PORTVLLM_HOST_IP 设置主机端口和 IP 地址,供 AI Inference Server 的内部使用。这不是 API 服务器的端口和 IP 地址。不要使用- host $VLLM_HOST_IP 和-- port $VLLM_PORT 来启动 API 服务器。

重要

AI Inference 服务器使用的所有环境变量都以 VLLM_ 前缀。如果您使用 Kubernetes,请不要命名服务 vllm,否则 Kubernetes 设置的环境变量可能会与 AI Inference Server 环境变量冲突。这是因为 Kubernetes 为每个服务设置环境变量,使用大写服务名称作为前缀。如需更多信息,请参阅 Kubernetes 环境变量

Expand
表 4.1. AI Inference 服务器环境变量
环境变量描述

VLLM_TARGET_DEVICE

支持 vLLM 的目标设备,支持 cuda (默认)、rocmneuroncpuopenvino

MAX_JOBS

并行运行的最大编译作业数量。默认情况下,这是 CPU 数量。

NVCC_THREADS

nvcc 使用的线程数量。默认情况下,这是 1。如果设置,MAX_JOBS 将减少,以避免过度订阅 CPU。

VLLM_USE_PRECOMPILED

如果设置,AI Inference 服务器使用预编译的二进制文件(\*.so)。

VLLM_TEST_USE_PRECOMPILED_NIGHTLY_WHEEL

是否强制在 Python 构建中使用 nightly wheel 进行测试。

CMAKE_BUILD_TYPE

Cmake 构建类型。可用选项:"Debug", "Release", "RelWithDebInfo"。

详细

如果设置,AI Inference 服务器在安装过程中打印详细日志。

VLLM_CONFIG_ROOT

AI Inference 服务器配置文件的根目录。

VLLM_CACHE_ROOT

AI Inference 服务器缓存文件的根目录。

VLLM_HOST_IP

用于分布式环境来确定当前节点的 IP 地址。

VLLM_PORT

用于分布式环境中的手动设置通信端口。

VLLM_RPC_BASE_PATH

当 frontend API 服务器以多处理模式运行时,用于 IPC 的路径。

VLLM_USE_MODELSCOPE

如果为 true,将从 ModelScope 而不是 Hugging Face Hub 加载模型。

VLLM_RINGBUFFER_WARNING_INTERVAL

环缓冲满时记录警告消息的时间间隔(以秒为单位)。

CUDA_HOME

cudatoolkit 主目录的路径,其应位于 bin、include 和 lib 目录下。

VLLM_NCCL_SO_PATH

NCCL 库文件的路径。由于 PyTorch 中的一个错误,对 NCCL >= 2.19 的版本需要。

LD_LIBRARY_PATH

当未设置 VLLM_NCCL_SO_PATH 时使用,AI Inference Server 会尝试在这个路径中找到 NCCL 库。

VLLM_USE_TRITON_FLASH_ATTN

控制是否 wantAI Inference Server 使用 Triton Flash Attention 的标志。

VLLM_FLASH_ATTN_VERSION

强制 AI Inference 服务器使用特定的闪存版本(2 或 3),仅对闪存后端有效。

VLLM_TEST_DYNAMO_FULLGRAPH_CAPTURE

用于启用 Dynamo 完整捕获的内部标志。

LOCAL_RANK

分布式设置中进程的本地排名,用于确定 GPU 设备 ID。

CUDA_VISIBLE_DEVICES

用于控制分布式设置中的可见设备。

VLLM_ENGINE_ITERATION_TIMEOUT_S

引擎中每个迭代的超时。

VLLM_API_KEY

AI Inference Server API 服务器的 API 密钥。

S3_ACCESS_KEY_ID

S3 access key ID for tensorizer to load model from S3。

S3_SECRET_ACCESS_KEY

S3 secret access key for tensorizer to load model from S3。

S3_ENDPOINT_URL

从 S3 加载模型的 S3 端点 URL,用于加载 S3 的模型。

VLLM_USAGE_STATS_SERVER

AI Inference Server usage stats server 的 URL。

VLLM_NO_USAGE_STATS

如果为 true,则禁用使用统计的集合。

VLLM_DO_NOT_TRACK

如果为 true,则禁用对 AI Inference Server usage stats 的跟踪。

VLLM_USAGE_SOURCE

使用统计集合的源。

VLLM_CONFIGURE_LOGGING

如果设置为 1,AI Inference 服务器使用默认配置或指定的配置路径配置日志。

VLLM_LOGGING_CONFIG_PATH

日志配置文件的路径。

VLLM_LOGGING_LEVEL

vLLM 的默认日志记录级别。

VLLM_LOGGING_PREFIX

如果设置,AI Inference 服务器会将这个前缀添加到所有日志消息中。

VLLM_LOGITS_PROCESSOR_THREADS

用于自定义日志处理器的线程数。

VLLM_TRACE_FUNCTION

如果设置为 1,AI Inference 服务器追踪调试的功能调用。

VLLM_ATTENTION_BACKEND

用于关注计算的后端,如 "TORCH_SDPA", "FLASH_ATTN", "XFORMERS")。

VLLM_USE_FLASHINFER_SAMPLER

如果设置,AI Inference 服务器则使用 FlashInfer sampler。

VLLM_FLASHINFER_FORCE_TENSOR_CORES

强制 FlashInfer 使用十个内核;否则使用 heuristics。

VLLM_PP_LAYER_PARTITION

Pipeline 阶段分区策略。

VLLM_CPU_KVCACHE_SPACE

CPU 键值缓存空间(默认为 4GB)。

VLLM_CPU_OMP_THREADS_BIND

OpenMP 线程绑定的 CPU 内核 ID。

VLLM_CPU_MOE_PREPACK

是否在不支持的 CPU 上对 MoE 层使用 prepack。

VLLM_OPENVINO_DEVICE

OpenVINO 设备选择(默认为 CPU)。

VLLM_OPENVINO_KVCACHE_SPACE

OpenVINO 键值缓存空间(默认为 4GB)。

VLLM_OPENVINO_CPU_KV_CACHE_PRECISION

OpenVINO KV 缓存的精度。

VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS

使用 HF Optimum 在模型导出期间启用权重压缩。

VLLM_USE_RAY_SPMD_WORKER

启用 Ray SPMD worker 以便在所有 worker 上执行。

VLLM_USE_RAY_COMPILED_DAG

使用 Ray 提供的编译 Graph API 来优化 control plane 开销。

VLLM_USE_RAY_COMPILED_DAG_NCCL_CHANNEL

在 Ray 提供的编译图形中启用 NCCL 通信。

VLLM_USE_RAY_COMPILED_DAG_OVERLAP_COMM

在 Ray 提供的 Compiled Graph 中启用 GPU 通信重叠。

VLLM_WORKER_MULTIPROC_METHOD

指定多进程 worker 的方法,如 "fork"。

VLLM_ASSETS_CACHE

用于存储下载资产的缓存路径。

VLLM_IMAGE_FETCH_TIMEOUT

在提供多模式模型时获取镜像的超时(默认为 5 秒)。

VLLM_VIDEO_FETCH_TIMEOUT

在提供多模式模型时获取视频的超时(默认为 30 秒)。

VLLM_AUDIO_FETCH_TIMEOUT

在提供多模式模型时获取音频的超时(默认为 10 秒)。

VLLM_MM_INPUT_CACHE_GIB

用于多模式输入缓存的缓存大小(默认为 8GiB)。

VLLM_XLA_CACHE_PATH

XLA 持久缓存目录的路径(仅适用于 XLA 设备)。

VLLM_XLA_CHECK_RECOMPILATION

如果设置,在每个执行步骤后,在 XLA 重新编译后。

VLLM_FUSED_MOE_CHUNK_SIZE

fused MoE 层的块大小(默认为 32768)。

VLLM_NO_DEPRECATION_WARNING

如果为 true,则跳过弃用警告。

VLLM_KEEP_ALIVE_ON_ENGINE_DEATH

如果为 true,在引擎错误后保持 OpenAI API 服务器处于活动状态。

VLLM_ALLOW_LONG_MAX_MODEL_LEN

允许指定大于模型的默认长度的最大序列长度。

VLLM_TEST_FORCE_FP8_MARLIN

无论硬件支持如何,都强制 FP8 Marlin 进行 FP8 量化。

VLLM_TEST_FORCE_LOAD_FORMAT

强制特定的负载格式。

VLLM_RPC_TIMEOUT

从后端服务器获取响应的超时。

VLLM_PLUGINS

要载入的插件列表。

VLLM_TORCH_PROFILER_DIR

用于保存 Torch 配置集追踪的目录。

VLLM_USE_TRITON_AWQ

如果设置,则使用 AWQ 的 Triton 实施。

VLLM_ALLOW_RUNTIME_LORA_UPDATING

如果设置,允许在运行时更新 Lora 适配器。

VLLM_SKIP_P2P_CHECK

跳过对等功能检查。

VLLM_DISABLED_KERNELS

为性能比较禁用的量化内核列表。

VLLM_USE_V1

如果设置,则使用 V1 代码路径。

VLLM_ROCM_FP8_PADDING

对于 ROCm,平板的 FP8 权重为 256 字节。

Q_SCALE_CONSTANT

FP8 KV Cache 的动态查询缩放因子计算。

K_SCALE_CONSTANT

FP8 KV Cache 的动态关键规模因子计算。

V_SCALE_CONSTANT

FP8 KV Cache 的动态值扩展因素计算的 divisor。

VLLM_ENABLE_V1_MULTIPROCESSING

如果设置,请在 LLM 中为 V1 代码路径启用多处理。

VLLM_LOG_BATCHSIZE_INTERVAL

日志批处理大小的时间间隔。

VLLM_SERVER_DEV_MODE

如果设置,AI Inference 服务器以开发模式运行,为调试启用额外的端点,如 /reset_prefix_cache

VLLM_V1_OUTPUT_PROC_CHUNK_SIZE

控制在单个 asyncio 任务中处理的最大请求数,以在 V1 AsyncLLM 接口中处理每个令牌输出。它会影响高级用户流请求。

VLLM_MLA_DISABLE

如果设置,AI Inference 服务器将禁用 MLA 关注优化。

VLLM_ENABLE_MOE_ALIGN_BLOCK_SIZE_TRITON

如果设置,AI Inference 服务器使用 moe_align_block_size 的 Triton 实施,例如 fused_moe.py 中的 moe_align_block_size_triton

VLLM_RAY_PER_WORKER_GPUS

Ray 中每个 worker 的 GPU 数。可以是一个部分,允许 Ray 在单个 GPU 上调度多个参与者。

VLLM_RAY_BUNDLE_INDICES

指定用于每个 worker 的 Ray 捆绑包的索引。格式:以逗号分隔的整数列表(如 "0,1,2,3")。

VLLM_CUDART_SO_PATH

指定 find_loaded_library () 方法的路径,当它可能无法正常工作时。使用 VLLM_CUDART_SO_PATH 环境变量设置。

VLLM_USE_HPU_CONTIGUOUS_CACHE_FETCH

启用连续缓存获取,以避免在 Gaudi3 上进行昂贵的收集操作。仅适用于 HPU 连续缓存。

VLLM_DP_RANK

数据并行设置中的进程的排名。

VLLM_DP_SIZE

数据并行设置全局大小。

VLLM_DP_MASTER_IP

数据并行设置中 master 节点的 IP 地址。

VLLM_DP_MASTER_PORT

数据并行设置中 master 节点的端口。

VLLM_CI_USE_S3

是否使用 S3 路径使用 RunAI Streamer 在 CI 中进行模型加载。

VLLM_MARLIN_USE_ATOMIC_ADD

是否在 gptq/awq marlin 内核中使用 atomicAdd。

VLLM_V0_USE_OUTLINES_CACHE

是否打开 V0 的概述缓存。这个缓存是未绑定的,在磁盘上,对于具有恶意用户的环境会变得不安全。

VLLM_TPU_DISABLE_TOPK_TOPP_OPTIMIZATION

如果设置,请禁用 top-k 和 top-p 抽样的特定于 TPU 的优化。

第 5 章 查看 AI Inference 服务器指标

vLLM 通过 AI Inference Server OpenAI-compatible API 服务器上的 /metrics 端点公开各种指标。

您可以使用 Python 或 Docker 启动服务器。

流程

  1. 启动 AI Inference 服务器并加载您的模型,如下例所示。该命令还会公开 OpenAI 兼容 API。

    $ vllm serve unsloth/Llama-3.2-1B-Instruct
  2. 查询 OpenAI-compatible API 的 /metrics 端点,以获取服务器的最新指标:

    $ curl http://0.0.0.0:8000/metrics

    输出示例

    # HELP vllm:iteration_tokens_total Histogram of number of tokens per engine_step.
    # TYPE vllm:iteration_tokens_total histogram
    vllm:iteration_tokens_total_sum{model_name="unsloth/Llama-3.2-1B-Instruct"} 0.0
    vllm:iteration_tokens_total_bucket{le="1.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="8.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="16.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="32.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="64.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="128.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="256.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    vllm:iteration_tokens_total_bucket{le="512.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
    #...

第 6 章 AI Inference 服务器指标

AI Inference Server 会公开 vLLM 指标,用于监控系统的健康状况。

Expand
表 6.1. vLLM 指标
指标名称描述

vllm:num_requests_running

当前在 GPU 上运行的请求数。

vllm:num_requests_waiting

等待处理的请求数。

vllm:lora_requests_info

在 LoRA 请求上运行统计信息。

vllm:num_requests_swapped

交换到 CPU 的请求数。弃用:V1 中不使用 KV 缓存卸载。

vllm:gpu_cache_usage_perc

GPU KV-cache 使用。值 1 表示 100% 使用。

vllm:cpu_cache_usage_perc

CPU KV-cache 使用。值 1 表示 100% 使用。弃用:V1 中不使用 KV 缓存卸载。

vllm:cpu_prefix_cache_hit_rate

CPU 前缀缓存块命中率。弃用:V1 中不使用 KV 缓存卸载。

vllm:gpu_prefix_cache_hit_rate

GPU 前缀缓存块命中率。deprecated: 使用 vllm:gpu_prefix_cache_queriesvllm:gpu_prefix_cache_hits in V1。

vllm:num_preemptions_total

引擎的抢占数量。

vllm:prompt_tokens_total

处理预先填充令牌的总数。

vllm:generation_tokens_total

处理的生成令牌总数。

vllm:iteration_tokens_total

每个引擎步骤的令牌数量直方图。

vllm:time_to_first_token_seconds

以秒为单位到第一个令牌的直方图。

vllm:time_per_output_token_seconds

每输出令牌的直方图(以秒为单位)。

vllm:e2e_request_latency_seconds

端到端请求延迟(以秒为单位)。

vllm:request_queue_time_seconds

请求在 WAITING 阶段花费的时间直方图。

vllm:request_inference_time_seconds

请求在 RUNNING 阶段花费的时间直方图。

vllm:request_prefill_time_seconds

请求在 PREFILL 阶段花费的时间直方图。

vllm:request_decode_time_seconds

请求在 DECODE 阶段花费的时间直方图。

vllm:time_in_queue_requests

请求在队列中花费的时间(以秒为单位)。deprecated: 使用 vllm:request_queue_time_seconds 替代。

vllm:model_forward_time_milliseconds

模型向前传递的时间直方图(毫秒)。弃用 :使用 prefill/decode/inference 时间指标。

vllm:model_execute_time_milliseconds

模型执行功能所花费的时间(毫秒)。弃用 :使用 prefill/decode/inference 时间指标。

vllm:request_prompt_tokens

处理预填充令牌数量的直方图。

vllm:request_generation_tokens

处理的生成令牌数量的直方图。

vllm:request_max_num_generation_tokens

请求生成令牌的最大数量的直方图。

vllm:request_params_n

n 请求参数的直方图。

vllm:request_params_max_tokens

max_tokens 请求参数的直方图。

vllm:request_success_total

成功处理的请求计数。

vllm:spec_decode_draft_acceptance_rate

规范令牌接受率。

vllm:spec_decode_efficiency

监管解码系统效率.

vllm:spec_decode_num_accepted_tokens_total

接受的令牌总数。

vllm:spec_decode_num_draft_tokens_total

令牌草案总数.

vllm:spec_decode_num_emitted_tokens_total

发出的令牌总数。

第 7 章 弃用的指标

以下指标已弃用,并将在以后的 AI Inference 服务器版本中删除:

  • vllm:num_requests_swapped
  • vllm:cpu_cache_usage_perc
  • vllm:cpu_prefix_cache_hit_rate (KV cache offloading 不会在 V1)中使用。
  • vllm:gpu_prefix_cache_hit_rate.此指标由 V1 中的 queries+hits 计数器替换。
  • vllm:time_in_queue_requests.此指标由 vllm:request_queue_time_seconds 重复。
  • vllm:model_forward_time_milliseconds
  • vllm:model_execute_time_milliseconds.应改为使用预先填充、解码或推测时间指标。
重要

当指标在 X.Y 中被弃用时,它们会在 X.Y+1 版本中被隐藏,但可以使用-- show-hidden-metrics-for-version=X.Y 转义 Redch 重新启用。弃用的指标将在以下 X.Y+2 版本中完全删除。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部