vLLM 服务器参数
运行 Red Hat AI Inference Server 的服务器参数
摘要
前言 复制链接链接已复制到粘贴板!
Red Hat AI Inference Server 为 inference 服务提供 OpenAI 兼容 API 服务器。您可以使用参数控制服务器的行为。
本文档以 vllm serving
命令使用的最重要的服务器参数列表开始。另外还提供了 vllm 服务
参数、环境变量、服务器指标的完整列表。
第 1 章 关键 vLLM 服务器参数 复制链接链接已复制到粘贴板!
您可以使用 4 个关键参数来配置在硬件上运行的 AI Inference 服务器:
-
--tensor-parallel-size
: 将您的模型分布到主机 GPU 中。 -
--GPU-memory-utilization
:调整模型权重、激活和 KV 缓存的加速器内存使用率。作为 0.0 到 1.0 的比例测量,默认为 0.9.例如,您可以将此值设置为 0.8,将 AI Inference Server 的 GPU 内存消耗限制为 80%。使用部署稳定的最大值来最大化吞吐量。 -
--max-model-len
: 限制模型的最大上下文长度,以令牌表示。如果模型的默认上下文长度太长,则将其设置为防止内存出现问题。 -
--max-num-batched-tokens
: 将令牌的最大批处理大小限制为每个步骤处理(以令牌表示)。增加这可以提高吞吐量,但可能会影响输出令牌延迟。
例如,要运行 Red Hat AI Inference Server 容器并使用 vLLM 提供模型,请根据需要运行以下命令更改服务器参数:
第 2 章 vLLM server usage 复制链接链接已复制到粘贴板!
vllm [-h] [-v] {chat,complete,serve,bench,collect-env,run-batch}
$ vllm [-h] [-v] {chat,complete,serve,bench,collect-env,run-batch}
- 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]
$ vllm chat [options]
- --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]
$ vllm complete [options]
- --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]
$ vllm serve [model_tag] [options]
使用 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
当
logprobs
在SamplingParams
中指定时,要返回的最大日志数量。默认值是 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_ids
和None
以提示。生成的输出将包含令牌 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
数据并行的后端,可以是
mp
或ray
。默认 :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 的后端,可以是
ray
或mp
(多处理)。如果pipeline_parallel_size
和 10sor_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_scale
和v_scale
的动态计算,当kv_cache_dtype
为fp8
时。如果为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:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - --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]
$ vllm bench [options]
- bench
positional 参数:
-
延迟
基准单个请求的延迟。 -
在线服务吞吐量服务基准。
-
吞吐量
基准离线推测吞吐量.
-
2.5. vllm collect-env 参数 复制链接链接已复制到粘贴板!
收集环境信息。
vllm collect-env
$ vllm collect-env
2.6. vllm run-batch 参数 复制链接链接已复制到粘贴板!
为指定模型运行批处理 inference 作业。
vllm run-batch
$ vllm run-batch
- --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_PORT
和 VLLM_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 环境变量。
环境变量 | 描述 |
---|---|
|
支持 vLLM 的目标设备,支持 |
| 并行运行的最大编译作业数量。默认情况下,这是 CPU 数量。 |
|
nvcc 使用的线程数量。默认情况下,这是 1。如果设置, |
| 如果设置,AI Inference 服务器使用预编译的二进制文件(\*.so)。 |
| 是否强制在 Python 构建中使用 nightly wheel 进行测试。 |
| Cmake 构建类型。可用选项:"Debug", "Release", "RelWithDebInfo"。 |
| 如果设置,AI Inference 服务器在安装过程中打印详细日志。 |
| AI Inference 服务器配置文件的根目录。 |
| AI Inference 服务器缓存文件的根目录。 |
| 用于分布式环境来确定当前节点的 IP 地址。 |
| 用于分布式环境中的手动设置通信端口。 |
| 当 frontend API 服务器以多处理模式运行时,用于 IPC 的路径。 |
| 如果为 true,将从 ModelScope 而不是 Hugging Face Hub 加载模型。 |
| 环缓冲满时记录警告消息的时间间隔(以秒为单位)。 |
| cudatoolkit 主目录的路径,其应位于 bin、include 和 lib 目录下。 |
| NCCL 库文件的路径。由于 PyTorch 中的一个错误,对 NCCL >= 2.19 的版本需要。 |
|
当未设置 |
| 控制是否 wantAI Inference Server 使用 Triton Flash Attention 的标志。 |
| 强制 AI Inference 服务器使用特定的闪存版本(2 或 3),仅对闪存后端有效。 |
| 用于启用 Dynamo 完整捕获的内部标志。 |
| 分布式设置中进程的本地排名,用于确定 GPU 设备 ID。 |
| 用于控制分布式设置中的可见设备。 |
| 引擎中每个迭代的超时。 |
| AI Inference Server API 服务器的 API 密钥。 |
| S3 access key ID for tensorizer to load model from S3。 |
| S3 secret access key for tensorizer to load model from S3。 |
| 从 S3 加载模型的 S3 端点 URL,用于加载 S3 的模型。 |
| AI Inference Server usage stats server 的 URL。 |
| 如果为 true,则禁用使用统计的集合。 |
| 如果为 true,则禁用对 AI Inference Server usage stats 的跟踪。 |
| 使用统计集合的源。 |
| 如果设置为 1,AI Inference 服务器使用默认配置或指定的配置路径配置日志。 |
| 日志配置文件的路径。 |
| vLLM 的默认日志记录级别。 |
| 如果设置,AI Inference 服务器会将这个前缀添加到所有日志消息中。 |
| 用于自定义日志处理器的线程数。 |
| 如果设置为 1,AI Inference 服务器追踪调试的功能调用。 |
| 用于关注计算的后端,如 "TORCH_SDPA", "FLASH_ATTN", "XFORMERS")。 |
| 如果设置,AI Inference 服务器则使用 FlashInfer sampler。 |
| 强制 FlashInfer 使用十个内核;否则使用 heuristics。 |
| Pipeline 阶段分区策略。 |
| CPU 键值缓存空间(默认为 4GB)。 |
| OpenMP 线程绑定的 CPU 内核 ID。 |
| 是否在不支持的 CPU 上对 MoE 层使用 prepack。 |
| OpenVINO 设备选择(默认为 CPU)。 |
| OpenVINO 键值缓存空间(默认为 4GB)。 |
| OpenVINO KV 缓存的精度。 |
| 使用 HF Optimum 在模型导出期间启用权重压缩。 |
| 启用 Ray SPMD worker 以便在所有 worker 上执行。 |
| 使用 Ray 提供的编译 Graph API 来优化 control plane 开销。 |
| 在 Ray 提供的编译图形中启用 NCCL 通信。 |
| 在 Ray 提供的 Compiled Graph 中启用 GPU 通信重叠。 |
| 指定多进程 worker 的方法,如 "fork"。 |
| 用于存储下载资产的缓存路径。 |
| 在提供多模式模型时获取镜像的超时(默认为 5 秒)。 |
| 在提供多模式模型时获取视频的超时(默认为 30 秒)。 |
| 在提供多模式模型时获取音频的超时(默认为 10 秒)。 |
| 用于多模式输入缓存的缓存大小(默认为 8GiB)。 |
| XLA 持久缓存目录的路径(仅适用于 XLA 设备)。 |
| 如果设置,在每个执行步骤后,在 XLA 重新编译后。 |
| fused MoE 层的块大小(默认为 32768)。 |
| 如果为 true,则跳过弃用警告。 |
| 如果为 true,在引擎错误后保持 OpenAI API 服务器处于活动状态。 |
| 允许指定大于模型的默认长度的最大序列长度。 |
| 无论硬件支持如何,都强制 FP8 Marlin 进行 FP8 量化。 |
| 强制特定的负载格式。 |
| 从后端服务器获取响应的超时。 |
| 要载入的插件列表。 |
| 用于保存 Torch 配置集追踪的目录。 |
| 如果设置,则使用 AWQ 的 Triton 实施。 |
| 如果设置,允许在运行时更新 Lora 适配器。 |
| 跳过对等功能检查。 |
| 为性能比较禁用的量化内核列表。 |
| 如果设置,则使用 V1 代码路径。 |
| 对于 ROCm,平板的 FP8 权重为 256 字节。 |
| FP8 KV Cache 的动态查询缩放因子计算。 |
| FP8 KV Cache 的动态关键规模因子计算。 |
| FP8 KV Cache 的动态值扩展因素计算的 divisor。 |
| 如果设置,请在 LLM 中为 V1 代码路径启用多处理。 |
| 日志批处理大小的时间间隔。 |
|
如果设置,AI Inference 服务器以开发模式运行,为调试启用额外的端点,如 |
VLLM_V1_OUTPUT_PROC_CHUNK_SIZE | 控制在单个 asyncio 任务中处理的最大请求数,以在 V1 AsyncLLM 接口中处理每个令牌输出。它会影响高级用户流请求。 |
| 如果设置,AI Inference 服务器将禁用 MLA 关注优化。 |
|
如果设置,AI Inference 服务器使用 |
| Ray 中每个 worker 的 GPU 数。可以是一个部分,允许 Ray 在单个 GPU 上调度多个参与者。 |
| 指定用于每个 worker 的 Ray 捆绑包的索引。格式:以逗号分隔的整数列表(如 "0,1,2,3")。 |
|
指定 |
| 启用连续缓存获取,以避免在 Gaudi3 上进行昂贵的收集操作。仅适用于 HPU 连续缓存。 |
| 数据并行设置中的进程的排名。 |
| 数据并行设置全局大小。 |
| 数据并行设置中 master 节点的 IP 地址。 |
| 数据并行设置中 master 节点的端口。 |
| 是否使用 S3 路径使用 RunAI Streamer 在 CI 中进行模型加载。 |
| 是否在 gptq/awq marlin 内核中使用 atomicAdd。 |
| 是否打开 V0 的概述缓存。这个缓存是未绑定的,在磁盘上,对于具有恶意用户的环境会变得不安全。 |
| 如果设置,请禁用 top-k 和 top-p 抽样的特定于 TPU 的优化。 |
第 4 章 查看 AI Inference 服务器指标 复制链接链接已复制到粘贴板!
vLLM 通过 AI Inference Server OpenAI-compatible API 服务器上的 /metrics
端点公开各种指标。
您可以使用 Python 或 Docker 启动服务器。
流程
启动 AI Inference 服务器并加载您的模型,如下例所示。该命令还会公开 OpenAI 兼容 API。
vllm serve unsloth/Llama-3.2-1B-Instruct
$ vllm serve unsloth/Llama-3.2-1B-Instruct
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查询 OpenAI-compatible API 的
/metrics
端点,以获取服务器的最新指标:curl http://0.0.0.0:8000/metrics
$ curl http://0.0.0.0:8000/metrics
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 AI Inference 服务器指标 复制链接链接已复制到粘贴板!
AI Inference Server 会公开 vLLM 指标,用于监控系统的健康状况。
指标名称 | 描述 |
---|---|
| 当前在 GPU 上运行的请求数。 |
| 等待处理的请求数。 |
| 在 LoRA 请求上运行统计信息。 |
| 交换到 CPU 的请求数。弃用:V1 中不使用 KV 缓存卸载。 |
| GPU KV-cache 使用。值 1 表示 100% 使用。 |
| CPU KV-cache 使用。值 1 表示 100% 使用。弃用:V1 中不使用 KV 缓存卸载。 |
| CPU 前缀缓存块命中率。弃用:V1 中不使用 KV 缓存卸载。 |
|
GPU 前缀缓存块命中率。deprecated: 使用 |
| 引擎的抢占数量。 |
| 处理预先填充令牌的总数。 |
| 处理的生成令牌总数。 |
| 每个引擎步骤的令牌数量直方图。 |
| 以秒为单位到第一个令牌的直方图。 |
| 每输出令牌的直方图(以秒为单位)。 |
| 端到端请求延迟(以秒为单位)。 |
| 请求在 WAITING 阶段花费的时间直方图。 |
| 请求在 RUNNING 阶段花费的时间直方图。 |
| 请求在 PREFILL 阶段花费的时间直方图。 |
| 请求在 DECODE 阶段花费的时间直方图。 |
|
请求在队列中花费的时间(以秒为单位)。deprecated: 使用 |
| 模型向前传递的时间直方图(毫秒)。弃用 :使用 prefill/decode/inference 时间指标。 |
| 模型执行功能所花费的时间(毫秒)。弃用 :使用 prefill/decode/inference 时间指标。 |
| 处理预填充令牌数量的直方图。 |
| 处理的生成令牌数量的直方图。 |
| 请求生成令牌的最大数量的直方图。 |
|
|
|
|
| 成功处理的请求计数。 |
| 规范令牌接受率。 |
| 监管解码系统效率. |
| 接受的令牌总数。 |
| 令牌草案总数. |
| 发出的令牌总数。 |
第 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
版本中完全删除。