vLLM 服务器参数


Red Hat AI Inference Server 3.2

运行 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.2 \
--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 \
Copy to Clipboard Toggle word wrap

第 2 章 vLLM server usage

$ vllm [-h] [-v] {chat,complete,serve,bench,collect-env,run-batch}
Copy to Clipboard Toggle word wrap
chat
通过运行的 API 服务器生成 chat 完成。
complete
根据给定的 API 服务器提示生成文本完成。
serve
启动 vLLM OpenAI 兼容 API 服务器。
bench
vLLM bench 子命令.
collect-env
开始收集环境信息。
run-batch
运行批处理提示并将结果写入文件。

2.1. vllm chat 参数

使用正在运行的 API 服务器生成 chat 完成。

$ vllm chat [options]
Copy to Clipboard Toggle word wrap
--api-key API_KEY

OpenAI API 密钥。如果提供,此 API 密钥会覆盖环境变量中设置的 API 密钥。

默认 : None

--model-name MODEL_NAME

提示完成中使用的模型名称,默认为列表模型 API 调用中的第一个模型。

默认 : None

--system-prompt SYSTEM_PROMPT

要添加到 chat 模板的系统提示,用于支持系统提示的型号。

默认 : None

--url URL

正在运行的 OpenAI 兼容 RESTful API 服务器的 URL

默认:http://localhost:8000/v1

-q MESSAGE, --quick MESSAGE

MESSAGE 身份发送单个提示,并打印响应,然后退出。

默认 : None

2.2. vllm complete 参数

根据给定的提示,通过正在运行的 API 服务器生成文本完成。

$ vllm complete [options]
Copy to Clipboard Toggle word wrap
--api-key API_KEY

OpenAI 服务的 API 密钥。如果提供,此 API 密钥会覆盖环境变量中设置的 API 密钥。

默认 : None

--model-name MODEL_NAME

提示完成中使用的模型名称,默认为列表模型 API 调用中的第一个模型。

默认 : None

--url URL

正在运行的 OpenAI 兼容 RESTful API 服务器的 URL

默认:http://localhost:8000/v1

-Q PROMPT, --quick PROMPT

发送单个提示并打印完成输出,然后退出。

默认 : None

2.3. vllm serving 参数

启动 vLLM OpenAI 兼容 API 服务器。

$ vllm serve [model_tag] [options]
Copy to Clipboard Toggle word wrap
提示

使用 vllm [serve|run-batch] --help=<keyword& gt; 探索帮助中的参数:

  • 查看参数 group:- -help=ModelConfig
  • 查看单个参数 :--help=max-num-seqs
  • 要按关键字搜索 :--help=max
  • 列出所有组 :--help=listgroup

2.3.1. positional 参数

model_tag

要服务的模型标签。如果在 config 中指定,则可选。

默认 : None

2.3.2. 选项

--allow-credentials

允许凭证。

默认 :False

--allowed-headers ALLOWED_HEADERS

允许的标头。

默认 : ['*']

--allowed-methods ALLOWED_METHODS

允许的方法。

默认 : ['*']

--allowed-origins ALLOWED_ORIGINS

允许的源。

默认 : ['*'])

--api-key API_KE

如果提供,服务器将要求在标头中显示此密钥。

默认 : None

--api-server-count API_SERVER_COUNT, -asc API_SERVER_COUNT

要运行多少个 API 服务器进程。

默认 :1

--chat-template CHAT_TEMPLATE

到 chat 模板的文件路径,或指定模型的单行形式的模板。

默认 : None

--chat-template-content-format {auto,string,openai}

在聊天模板中呈现消息内容的格式。* "string" 将内容呈现为字符串。示例 :"Hello World" * "openai" 将内容呈现为字典列表,类似于 OpenAI 模式。示例: [{"type": "text", "text": "Hello world!"}]

默认 :auto

--config CONFIG

从配置文件中读取 CLI 选项。Must 是带有以下选项的 YAML: https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html#cli-reference

Default:

--data-parallel-start-rank DATA_PARALLEL_START_RANK, -dpr DATA_PARALLEL_START_RANK

为二级节点启动数据并行等级。

默认: 0

--disable-fastapi-docs

禁用 FastAPI 的 OpenAPI 模式、Swagger UI 和 ReDoc 端点。

默认 :False

--disable-frontend-multiprocessing

如果指定,将在与模型服务引擎相同的过程中运行 OpenAI frontend 服务器。

默认 :False

--disable-log-requests

禁用日志记录请求。

默认 :False

--disable-log-stats

禁用日志记录统计信息。

默认 :False

--disable-uvicorn-access-log

禁用 uvicorn 访问日志。

默认 :False

--enable-auto-tool-choice

为支持的模型启用自动工具选择。use --tool-call-parser 用来指定要使用的解析器。

默认 :False

--enable-prompt-tokens-details

如果设置为 True,请在 usage 中启用 prompt_tokens_details。

默认 :False

--enable-request-id-headers

如果指定,API 服务器会将 X-Request-Id 标头添加到响应中。注意:此 hurts 性能高 QPS。

默认 :False

--enable-server-load-tracking

如果设置为 True,请在 app 状态中启用跟踪 server_load_metrics

默认 :False

--enable-ssl-refresh

当 SSL 证书文件更改时刷新 SSL 上下文

默认 :False

--headless

在无头模式下运行。如需了解更多详细信息,请参阅多节点数据并行文档。

默认 :False

--host HOST

主机名.

默认 : None

--log-config-file LOG_CONFIG_FILE

vllm 和 uvicorn 日志记录配置 JSON 文件的路径

默认 : None

--lora-modules LORA_MODULES [LORA_MODULES …​]

LoRA 模块配置采用 name=path formator JSON 格式。示例(旧格式): name=path。示例(新格式) :{name": "name", "path": "lora_path", "base_model_name": "id"}

默认 : None

--max-log-len MAX_LOG_LEN

在日志中打印的最大提示字符或提示 ID 号数。默认值 None 表示无限。

默认 : None

--Middleware MIDDLEWARE

应用到应用程序的附加 ASGI 中间件。我们接受 多中间件 参数。该值应该是导入路径。如果提供了函数,vLLM 将使用 @app.middleware ('http') 将其添加到服务器。如果提供了类,vLLM 将使用 app.add_middleware () 将其添加到服务器。

默认: []

--port PORT 端口号。

+ 默认 : 8000

--prompt-adapters PROMPT_ADAPTERS [PROMPT_ADAPTERS …​]

以 name=path 格式提示适配器配置。可以指定多个适配器。

默认 : None

--response-role RESPONSE_ROLE

如果 request.add_generation_prompt=true 则返回的角色名称。

默认 助手

--return-tokens-as-token-ids

指定 when-max-logprobs 时,代表单个令牌作为字符串 'token_id:{token_id}',以便无法识别不是 JSON 影响的令牌。

默认 :False

--root-path ROOT_PATH

当应用程序位于基于路径的路由代理后面时,快速API root_path。

默认 : None

--ssl-ca-certs SSL_CA_CERTS

CA 证书文件。

默认 : None

--ssl-cert-reqs SSL_CERT_REQS

是否需要客户端证书(请参阅 stdlib ssl 模块)。

默认: 0

--ssl-certfile SSL_CERTFILE

SSL 证书文件的文件路径。

默认 : None

--ssl-keyfile SSL_KEYFILE

SSL 密钥文件的文件路径。

默认 : None

--tool-call-parser {deepseek_v3,granite-20b-fc,granite,hermes,internlm,jamba,llama4_pythonic,llama4_json,llama3_json,mistral,phi4_mini_json,pythonic}

或名称在 --tool-parser-plugin 中注册。根据您使用的型号,选择工具调用解析器。这用于将模型生成的工具调用解析为 OpenAI API 格式。需要 for -enable-auto-tool-choice

默认 : None

--tool-parser-plugin TOOL_PARSER_PLUGIN

特殊工具解析器插件写入将模型生成的工具解析为 OpenAI API 格式,此插件中的名称注册可在 --tool-call-parser 中使用。

Default:

--use-v2-block-manager

DEPRECATED: 块管理器 v1 已被删除,并且 SelfAttnBlockSpaceManager (如块管理器 v2)现在是默认的。将此标志设置为 True 或 False 对 vLLM 行为没有影响。

默认 :True

--uvicorn-log-level {debug,info,warning,error,critical,trace}
uvicorn 的日志级别。

2.3.3. 模型配置

--allowed-local-media-path ALLOWED_LOCAL_MEDIA_PATH

允许 API 请求从服务器文件系统指定的目录中读取本地镜像或视频。这是一个安全风险。应该只在可信环境中启用。

Default:

--code-revision CODE_REVISION

用于 Hugging Face Hub 上模型代码的特定修订版本。它可以是分支名称、标签名称或提交 id。如果未指定,将使用默认版本。

默认 : None

--config-format {auto,hf,mistral}

要载入的模型配置的格式:LVM auto 将尝试以 hf 格式加载配置(如果可用),否则它将尝试以 mistral 格式加载。* HF 将以 hf 格式载入配置。* mistral 将以 mistral 格式加载配置。

默认 :auto

--disable-async-output-proc

禁用 async 输出处理。这可能会导致性能下降。

默认 :False

--disable-cascade-attn, --no-disable-cascade-attn

对 V1 禁用级关注。虽然级联的关注不会更改数学正确性,但禁用它对于防止潜在的数字问题非常有用。请注意,即使将其设置为 False,仅当性能告诉其好处时,才会使用级联的关注。

默认 :False

--disable-sliding-window, --no-disable-sliding-window

是否禁用滑动窗口。如果为 True,我们将禁用模型的滑动窗口功能,上限为 sliding 窗口大小。如果模型不支持滑动窗口,则忽略此参数。

默认 :False

--dtype {auto,bfloat16,float,float16,float32,half}

模型权重和激活的数据类型:* auto 将 FP16 精度用于 FP32 和 FP16 模型,以及 BF16 模型的 BF16 精度。适用于 FP16 的一半.建议 AWQ 量化。* float16 与 "half" 相同。* bfloat16,用于精度和范围之间的平衡。* 浮点值 简写为 FP32 精度。* float32 用于 FP32 精度。

默认 :auto

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

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

默认 :False

--enable-sleep-mode, --no-enable-sleep-mode

为引擎启用睡眠模式(只支持 CUDA 平台)。

默认 :False

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

是否总是使用 eager-mode PyTorch。如果为 True,我们将禁用 CUDA 图形,并始终以 eager 模式执行模型。如果为 False,我们将在混合中使用 CUDA 图形和 eager 的执行,以获得最大性能和灵活性。

默认 :False

--generation-config GENERATION_CONFIG

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

默认 :auto

--hf-config-path HF_CONFIG_PATH

要使用的 Hugging Face 配置的名称或路径。如果未指定,则使用模型名称或路径。

默认 : None

--h-overrides HF_OVERRIDES

如果字典,包含要转发到 HuggingFace 配置的参数。如果可以调用,则会调用它来更新 HuggingFace 配置。

默认 :{}

--hf-token [HF_TOKEN]

用作远程文件的 HTTP bearer 授权的令牌。如果为 True,将使用在运行 huggingface-cli 登录时 生成的令牌(以 ~/.huggingface形式存储)。

默认 : None

--logits-processor-pattern LOGITS_PROCESSOR_PATTERN

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

默认 : None

--max-logprobs MAX_LOGPROBS

logprobsSamplingParams 中指定时,要返回的最大日志数量。默认值是 OpenAI Chat Completions API 的默认值。

默认 :20

--max-model-len MAX_MODEL_LEN

模型上下文长度(提示和输出)。如果未指定,将自动从模型配置派生出来。当通过 -max-model-len 传递时,以人类可读的格式支持 k/m/g/K/M/G。示例:* 1k → 1000 * 1K → 1024 * 25.6k → 25,600

默认 : None

--max-seq-len-to-capture MAX_SEQ_LEN_TO_CAPTURE

CUDA 图形涵盖的最大序列数。当序列的上下文长度大于此时,我们回退到 eager 模式。另外,对于 encoder-decoder 模型,如果编码器输入的序列长度大于这个值,则我们回退到 eager 模式。

默认 : 8192

--model MODEL

要使用的 Hugging Face 模型的名称或路径。在未指定 served_ model_name 时,它也用作指标输出中 model_name 标签的内容。

默认 : facebook/opt-125m

--model-impl {auto,vllm,transformers}

要使用哪个模型实现:* auto 将尝试使用 vLLM 实现(如果存在),并在没有 vLLM 实现时回退到 Transformers 实施。* vllm 将使用 vLLM 模型实现。* 转换程序 将使用 Transformers 模型实现。

默认 :auto

--override-generation-config 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

默认 :{}

--override-neuron-config 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

默认 :{}

--override-pooler-config OVERRIDE_POOLER_CONFIG

为池模型初始化非默认池配置或覆盖默认池配置。例如: {"pooling_type": "mean", "normalize": false}

默认 : None

--quantization {aqlm,auto-round,awq, …​}, -q

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

默认 : None

--revision REVISION

要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。

默认 : None

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

默认 :{}

--rope-theta ROPE_THETA

RoPE 达州.与 rope_scaling 一起使用。在某些情况下,更改 RoPE 可提高扩展模型的性能。

默认 : None

--seed SEED

随机 seed 以实现可重复性。在 V0 中初始化为 None,但在 V1 中初始化为 0。

默认 : None

--served-model-name SERVED_MODEL_NAME [SERVED_MODEL_NAME …​]

API 中使用的模型名称。如果提供了多个名称,服务器将响应任何提供的名称。响应的 model 字段中的型号名称将是此列表中的名字。如果没有指定,模型名称将与 the- model 参数相同。请注意,如果提供了多个名称,则此名称也会在 prometheus 指标的 model_name 标签内容中使用,则 metrics 标签将采用第一个名称。

默认 : None

--skip-tokenizer-init, --no-skip-tokenizer-init

跳过令牌程序和解码初始化。预期从输入中有效的 prompt_token_idsNone 以提示。生成的输出将包含令牌 ID。

默认 :False

--task {auto,classify,draft,embed,embedding,generate,reward,score,transcription}

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

默认 :auto

--tokenizer TOKENIZER

要使用的 Hugging Face tokenizer 的名称或路径。如果未指定,则使用模型名称或路径。

默认 : None

--tokenizer-mode {auto,custom,mistral,slow}

Tokenizer 模式:如果可用,则会自动使用快速令牌程序。* 会始终使用较慢的令牌程序。* mistral 将始终使用 mistral_common 中的令牌程序。* custom 将使用 --tokenizer 来选择预注册的令牌工具程序。

默认 :auto

--tokenizer-revision TOKENIZER_REVISION

用于 Hugging Face Hub 上令牌程序的特定修订版本。它可以是分支名称、标签名称或提交 id。如果未指定,将使用默认版本。

默认 : None

--trust-remote-code, --no-trust-remote-code

下载模型和令牌程序时,信任远程代码(例如,来自 HuggingFace)。

默认 :False

2.3.4. 模型加载配置

加载模型权重的配置。

--download-dir DOWNLOAD_DIR

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

默认 : None

--ignore-patterns IGNORE_PATTERNS [IGNORE_PATTERNS …​]

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

默认 : None

--load-format {auto,pt,safetensors, …​}

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

  • auto: 将尝试加载安全器格式的权重,并在安全攻击格式不可用时回退到 pytorch bin 格式。
  • pt: 将以 pytorch bin 格式加载权重。
  • Securetensors: 将以更安全的格式加载权重。
  • npcache: 将以 pytorch 格式加载权重,并存储 numpy 缓存以加快加载。
  • dummy :将使用随机值初始化权重,这主要用于性能分析。
  • 10sorizer: 将使用 CoreWeave 的十个程序库进行快速权重加载。如需更多信息,请参阅 Examples 部分中的 Tensorize vLLM Model 脚本。
  • runai_streamer :将使用 Run:ai Model Streamer 加载 Safetensors 权重。
  • bitsandbytes: 将使用位和字节量来加载权重。
  • sharded_state: 将从预先分片的检查点文件中加载权重,支持有效地加载 10sor-parallel 模型。
  • gguf: 将加载来自 GGUF 格式的文件的权重(在 https://github.com/ggml-org/ggml/blob/master/docs/gguf.md中指定)。
  • mistral: 将加载来自 Mistral 模型使用的合并安全者文件的权重。

默认 :auto

--model-loader-extra-config MODEL_LOADER_EXTRA_CONFIG

模型加载程序的额外配置。这将传递给与所选 load_format 对应的模型加载程序。

默认 :{}

--pt-load-map-location PT_LOAD_MAP_LOCATION

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

--qlora-adapter-name-or-path QLORA_ADAPTER_NAME_OR_PATH

--qlora-adapter-name-or-path 没有作用,不要设置它,它将在 v0.10.0 中删除。

默认 : None

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

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

默认 :True

2.3.5. 解码配置

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

--enable-reasoning, --no-enable-reasoning

[DEPRECATED] The --enable-reasoning 标志从 v0.9.0 开始已弃用。use --reasoning-parser 指定原因解析器后端。此标志(--enable-reasoning)将在 v0.10.0 中删除。指定 when--reasoning-parser 时,自动启用 reasoning 模式。

默认 : None

--guided-decoding-backend {auto,guidance,lm-format-enforcer,outlines,xgrammar}

默认情况下,哪个引擎将用于引导解码(JSON 模式/正则表达式等)。使用 auto 时,我们将根据请求内容以及后端库当前支持的内容进行建议选择,因此每个版本中的行为可能会发生变化。

默认 :auto

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

--reasoning-parser {deepseek_r1,granite,qwen3}

根据您使用的型号,选择原因解析器。这用于将内容解析为 OpenAI API 格式。

Default:

2.3.6. 并行配置

分布式执行配置。

--data-parallel-address DATA_PARALLEL_ADDRESS, -dpa DATA_PARALLEL_ADDRESS

数据并行集群头节点地址。

默认 : None

--data-parallel-backend DATA_PARALLEL_BACKEND, -dpb DATA_PARALLEL_BACKEND

数据并行的后端,可以是 mpray

默认 :mp

--data-parallel-rpc-port DATA_PARALLEL_RPC_PORT, -dpp DATA_PARALLEL_RPC_PORT

数据并行 RPC 通信的端口。

默认 : None

--data-parallel-size DATA_PARALLEL_SIZE, -dp DATA_PARALLEL_SIZE

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

默认 :1

--data-parallel-size-local DATA_PARALLEL_SIZE_LOCAL, -dpl DATA_PARALLEL_SIZE_LOCAL

此节点上运行的数据并行副本数。

默认 : None

--disable-custom-all-reduce, --no-disable-custom-all-reduce

禁用自定义 all-reduce 内核,并回退到 NCCL。

默认 :False

--distributed-executor-backend {external_launcher,mp,ray,uni,None}

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

默认 : None

--enable-expert-parallel, --no-enable-expert-parallel

对于 MoE 层,使用专家并行性而不是十个并行性。

默认 :False

--enable-multimodal-encoder-data-parallel, --no-enable-multimodal-encoder-data-parallel

将数据并行性而不是 10sor parallelism 用于愿景编码器。仅支持 LLama4

默认 :False

--max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS

当在多个批处理中按顺序加载模型时,并行加载 worker 的最大数量。避免在使用 10sor 并行和大型模型时的 RAM OOM。

默认 : None

--pipeline-parallel-size PIPELINE_PARALLEL_SIZE, -pp PIPELINE_PARALLEL_SIZE

管道并行组数量。

默认 :1

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

是否使用 nsight 对 Ray worker 进行性能分析,请参阅 https://docs.ray.io/en/latest/ray-observability/user-guides/profiling.html#profiling-nsight-profiler

默认 :False

--tensor-parallel-size TENSOR_PARALLEL_SIZE, -tp TENSOR_PARALLEL_SIZE

十个并行组的数量。

默认 :1

--worker-cls WORKER_CLS

要使用的 worker 类的完整名称。如果为 auto,则 worker 类将根据平台决定。

默认 :auto

--worker-extension-cls WORKER_EXTENSION_CLS

要使用的 worker 扩展类的完整名称。worker 扩展类由 worker 类动态继承。这用于注入 worker 类的新属性和方法,以便在 collective_rpc 调用中使用。

Default:

2.3.7. 缓存配置

配置 KV 缓存。

--block-size {1,8,16,32,64,128}

令牌数中连续缓存块的大小。这在 neuron 设备上忽略,并设置为 --max-model-len。在 CUDA 设备中,只支持块大小最多 32 个。在 HPU 设备上,块大小默认为 128。这个配置没有静态默认值。如果用户未指定,它将根据当前平台在 Platform.check_and_update_configs () 中设置。

默认 : None

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

这可启用 k_scalev_scale 的动态计算,当 kv_cache_dtypefp8 时。如果为 False,则会从模型检查点加载扩展(如果可用)。否则,扩展将默认为 1.0。

默认 :False

--cpu-offload-gb CPU_OFFLOAD_GB

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

默认: 0

--enable-prefix-caching, --no-enable-prefix-caching

是否启用前缀缓存。默认情况下,V0 禁用。默认启用 V1。

默认 : None

--GPU-memory-utilization GPU_MEMORY_UTILIZATION

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

默认: 0.9

--kv-cache-dtype {auto,fp8,fp8_e4m3,fp8_e5m2}

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

默认 :auto

--num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE

要使用的 GPU 块数。如果指定,这将覆盖 profiled num_gpu_blocks。如果没有,则 什么都不做。用于测试抢占。

默认 : None

--prefix-caching-hash-algo {builtin,sha256}

设置前缀缓存的哈希算法:LVM "builtin"是 Python 的内置哈希。* "sha256" 是冲突的,但存在某些开销。

默认 :builtin

--swap-space SWAP_SPACE

每个 GPU 的 CPU 交换空间大小(以 GiB 为单位)。

默认 :4

2.3.8. 多模式模型配置

控制多模式模型的行为。

--disable-mm-preprocessor-cache, --no-disable-mm-preprocessor-cache

如果为 True,则禁用已处理多模式输入的缓存。

默认 :False

--limit-mm-per-prompt LIMIT_MM_PER_PROMPT

每个提示的每个输入项目允许的最大输入数。对于每个模态,默认为 1 (V0)或 999 (V1)。例如,要允许每个提示最多 16 个镜像和 2 视频: {"images": 16, "videos": 2} 应该是一个有效的 JSON 字符串或单独传递的 JSON 密钥。例如,以下一组参数等同于:* --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}' * --json-arg.key1 value1 --json-arg.key2.key3 value2

默认 :{}

--MM-processor-kwargs 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

默认 : None

2.3.9. LoRA 配置

--enable-lora, --no-enable-lora

如果为 True,启用对 LoRA 适配器的处理。

默认 : None

--enable-lora-bias, --no-enable-lora-bias

为 LoRA 适配器启用 bias。

默认 :False

--fully-sharded-loras, --no-fully-sharded-loras

默认情况下,只有一半的 LoRA 计算使用 10sor parallelism 进行分片。启用这将使用完全分片的层。在高序列长度中,最大排名或几十个并行大小可能更快。

默认 :False

--long-lora-scaling-factors LONG_LORA_SCALING_FACTORS [LONG_LORA_SCALING_FACTORS …​]

指定多个扩展因素(可以与基础模型扩展因素不同),以允许同时使用多个 LoRA 适配器接受这些扩展因素。如果没有指定,则只允许使用基本模型扩展因素培训的适配器。

默认 : None

--lora-dtype {auto,bfloat16,float16}

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

默认 :auto

--lora-extra-vocab-size LORA_EXTRA_VOCAB_SIZE

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

默认 :256

--max-cpu-loras MAX_CPU_LORAS

在 CPU 内存中存储的最大 LoRA 数。必须大于 max_loras

默认 : None

--max-lora-rank MAX_LORA_RANK

最大 LoRA 排名.

默认 : 16

--max-loras MAX_LORAS

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

默认 :1

2.3.10. 提示适配器配置

--enable-prompt-adapter, --no-enable-prompt-adapter

如果为 True,启用 PromptAdapters 处理。

默认 : None

--max-prompt-adapter-token MAX_PROMPT_ADAPTER_TOKEN

PromptAdapters 令牌的最大数量。

默认: 0

--max-prompt-adapters MAX_PROMPT_ADAPTERS

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

默认 :1

2.3.11. 设备配置

--device {auto,cpu,CUDA,hpu,neuron,tpu,xpu}

vLLM 执行的设备类型。这个参数已弃用,并将在以后的发行版本中删除。现在,它将基于当前平台自动设置。

默认 :auto

2.3.12. 规范解码配置

--speculative-config SPECULATIVE_CONFIG

推测解码的配置。应该是一个 JSON 字符串。

默认 : None

2.3.13. Observability 配置

--collect-detailed-traces {all,model,worker,None} [{all,model,worker,None} …​]

仅在设置了 if- otlp-traces-endpoint 时设置它才有意义。如果设置,它将为指定模块收集详细的 trace。这涉及使用可能昂贵的或阻塞操作,因此可能会对性能有影响。请注意,收集每个请求的详细时间信息可能会昂贵。

默认 : None

--OTLP-traces-endpoint OTLP_TRACES_ENDPOINT

将 OpenTelemetry 跟踪发送到的目标 URL。

默认 : None

--show-hidden-metrics-for-version SHOW_HIDDEN_METRICS_FOR_VERSION

启用自指定版本后隐藏的已弃用的 Prometheus 指标。例如,自 v0.7.0 发布以来,如果之前已弃用的指标已被隐藏,您可以在 迁移到新指标时,使用--show-hidden-metrics-for-version=0.7 作为临时转义。指标可能会在即将推出的发行版本中完全删除。

默认 : None

2.3.14. 调度程序配置

--CUDA-graph-sizes CUDA_GRAPH_SIZES [CUDA_GRAPH_SIZES …​]

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

默认 :512

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

如果设置为 true,并且启用了块的预先填充,我们不希望部分调度多模式项目。仅在 V1 中使用,这样可确保在请求具有混合提示(如文本令牌 TTTTTTTTTTTTTTTTTTTTTTIIIII)时,它会被调度为镜像令牌 IIIIIIIIIIII),其中只能调度到下一步骤(如 TTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII),其中仅能调度某些镜像令牌(如 TTTTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII),其中只能调度某些镜像令牌(如 TTTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

默认 :False

--disable-hybrid-kv-cache-manager, --no-disable-hybrid-kv-cache-manager

如果设置为 True,KV 缓存管理器会为所有关注层分配相同的 KV 缓存大小,即使存在多种关注层,如完整关注和滑动窗口注意。

默认 :False

--enable-chunked-prefill, --no-enable-chunked-prefill

如果为 True,则预先填充请求可以根据剩余的 max_num_batched_tokens 进行块。

默认 : None

--long-prefill-token-threshold LONG_PREFILL_TOKEN_THRESHOLD

对于块预先填充,如果提示符的时间超过这个数量的令牌,则请求会被视为很长时间。

默认: 0

--max-long-partial-prefills MAX_LONG_PARTIAL_PREFILLS

对于块预填充,会同时预先填充的 long_prefill_token_threshold 的提示的最大数量。设置小于 max_num_partial_prefills 时,可以缩短提示,在一些情况下,在较长的提示前跳过队列,从而提高了延迟。

默认 :1

--max-num-batched-tokens MAX_NUM_BATCHED_TOKENS

在单个迭代中处理的最大令牌数。这个配置没有静态默认值。如果用户未指定,它将根据使用情况上下文在 EngineArgs.create_engine_config 中设置。

默认 : None

--max-num-partial-prefills MAX_NUM_PARTIAL_PREFILLS

对于块预填充,可以同时预先填充的最大序列数。

默认 :1

--max-num-seqs MAX_NUM_SEQS

在单个迭代中处理的最大序列号。这个配置没有静态默认值。如果用户未指定,它将根据使用情况上下文在 EngineArgs.create_engine_config 中设置。

默认 : None

--multi-step-stream-outputs, --no-multi-step-stream-outputs

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

默认 :True

--num-lookahead-slots NUM_LOOKAHEAD_SLOTS

除已知令牌 ID 外,要按顺序分配的插槽数量。这用于规范解码来存储可能或不接受的令牌的 KV 激活。

注意

这将在以后被 speculative config 替换。它会被正确的测试替代,直到它们为止。

+ 默认: 0

--num-scheduler-steps NUM_SCHEDULER_STEPS

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

默认 :1

--preemption-mode {recompute,swap,None}

是否通过交换或声望来执行抢占。如果未指定,我们按如下方式确定模式:我们默认使用声望,因为其开销比交换降低。但是,当序列组有多个序列时(如 beam search ),目前不支持撤销。在这种情况下,我们改为使用交换。

默认 : None

--scheduler-cls SCHEDULER_CLS

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

默认: vllm.core.scheduler.Scheduler

--scheduler-delay-factor SCHEDULER_DELAY_FACTOR

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

默认 : 0.0

--scheduling-policy {fcfs,priority}

要使用的调度策略:* "fcfs" 表示首先提供第一个服务,即会按照 arrival 的顺序处理请求。* "priority" 表示请求根据给定的优先级处理(较低值意味着早期处理)和决定任何绑定的时间。

默认: fcfs

2.3.15. vllm 配置

--additional-config ADDITIONAL_CONFIG

指定平台的额外配置。不同的平台可能支持不同的配置。确保配置对您要使用的平台有效。内容必须可以哈希。

默认 :{}

--compilation-config COMPILATION_CONFIG, -O COMPILATION_CONFIG

模型的 torch.compile 配置。当它是一个数字(0、1、2、3),它将被解释为优化级别。

注意

级别 0 是没有任何优化的默认级别。1 级和 2 仅用于内部测试。3 级是生产环境的建议级别。

遵循传统编译器的惯例,也支持在没有空格的情况下使用 -O-O3 等同于 -O 3。您可以指定完整的编译配置,如 so: {"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

Default:

{
  "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
}
Copy to Clipboard Toggle word wrap
--KV-events-config KV_EVENTS_CONFIG

事件发布的配置。应该是有效的 JSON 字符串或 JSON 密钥。例如,以下一组参数等同于:* --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}' * --json-arg.key1 value1 --json-arg.key2.key3 value2

默认 : None

--kv-transfer-config KV_TRANSFER_CONFIG

分布式 KV 缓存传输的配置。应该是有效的 JSON 字符串或 JSON 密钥。例如,以下一组参数等同于:* --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}' * --json-arg.key1 value1 --json-arg.key2.key3 value2

默认 : None

2.4. vllm bench 参数

在线服务吞吐量基准.

$ vllm bench [options]
Copy to Clipboard Toggle word wrap
bench

positional 参数:

  • 延迟 基准单个请求的延迟。
  • 在线服务吞吐量服务基准。
  • 吞吐量 基准离线推测吞吐量.

2.5. vllm collect-env 参数

收集环境信息。

$ vllm collect-env
Copy to Clipboard Toggle word wrap

2.6. vllm run-batch 参数

为指定模型运行批处理 inference 作业。

$ vllm run-batch
Copy to Clipboard Toggle word wrap
--disable-log-requests

禁用日志记录请求。

默认 :False

--disable-log-stats

禁用日志记录统计信息。

默认 :False

--enable-metrics

启用 Prometheus 指标。

默认 :False

--enable-prompt-tokens-details

当设置为 True 时,启用 prompt_tokens_details 用量。

默认 :False

--max-log-len MAX_LOG_LEN

日志中打印的最大提示字符数或提示 ID 号。

默认 : unlimited

--output-tmp-dir OUTPUT_TMP_DIR

要存储输出文件的目录,然后上传到输出 URL。

默认 : None

--port PORT

Prometheus 指标服务器的端口号。仅在设置 enable-metrics 时才需要。

默认 : 8000

--response-role RESPONSE_ROLE

如果 request.add_generation_prompt=True 则返回的角色名称。

默认 助手

--url URL

Prometheus 指标服务器 URL。仅在设置了 enable-metrics 时才需要。

默认 : 0.0.0.0

--use-v2-block-manager

弃用。块管理器 v1 已被删除。SelfAttnBlockSpaceManager (块管理器 v2)现在是默认的。将 --use-v2-block-manager 标志设置为 True 或 False 对 vLLM 行为没有影响。

默认 :True

-I INPUT_FILE, --input-file INPUT_FILE

单个输入文件的路径或 URL。支持本地文件路径和 HTTP 或 HTTPS。如果指定了 URL,则该文件应该可使用 HTTP GET 可用。

默认 : None

-o OUTPUT_FILE, --output-file OUTPUT_FILE

单个输出文件的路径或 URL。支持本地文件路径和 HTTP 或 HTTPS。如果指定了 URL,则该文件应当可使用 HTTP PUT 可用。

默认 : None

第 3 章 环境变量

您可以使用环境变量来配置系统级别的安装、构建、记录 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
表 3.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 的优化。

第 4 章 查看 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
    Copy to Clipboard Toggle word wrap
  2. 查询 OpenAI-compatible API 的 /metrics 端点,以获取服务器的最新指标:

    $ curl http://0.0.0.0:8000/metrics
    Copy to Clipboard Toggle word wrap

    输出示例

    # 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
    #...
    Copy to Clipboard Toggle word wrap

第 5 章 AI Inference 服务器指标

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

Expand
表 5.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

发出的令牌总数。

第 6 章 弃用的指标

以下指标已弃用,并将在以后的 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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2025 Red Hat