第 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 serving 参数

vllm service 启动一个本地服务器来加载并提供语言模型。

2.1.1. JSON CLI 参数

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
  • --json-arg.key1 value1 --json-arg.key2.key3 value2

另外,可以使用 + 单独传递列表元素:

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'
  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

2.1.2. 选项

2.1.2.1. --headless

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

默认False

2.1.2.2. --api-server-count, -asc

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

默认1

2.1.2.3. --config

从配置文件读取 CLI 选项。必须是带有以下选项的 YAML :https://docs.vllm.ai/en/latest/configuration/serve_args.html

默认None

2.1.2.4. --disable-log-stats

禁用日志记录统计信息。

默认False

2.1.2.5. --enable-prompt-adapter

重要

这个参数已弃用。

提示适配器已被删除。将此标志设置为 True 或 False 对 vLLM 行为没有影响。

默认False

2.1.2.6. --enable-log-requests, --no-enable-log-requests

启用日志记录请求。

默认False

2.1.2.7. --disable-log-requests, --no-disable-log-requests

重要

这个参数已弃用。

禁用日志记录请求。

默认True

2.1.3. frontend

OpenAI 兼容前端服务器的参数。

2.1.3.1. --host

主机名.

默认None

2.1.3.2. --port

端口号。

默认8000

2.1.3.3. --uds

UNIX 域套接字路径.如果设置,则忽略 host 和 port 参数。

默认None

2.1.3.4. --uvicorn-log-level

可能的选项: critical,debug,error,info,trace,warning

uvicorn 的日志级别。

默认info

禁用 uvicorn 访问日志。

默认False

2.1.3.6. --allow-credentials, --no-allow-credentials

允许凭证。

默认False

2.1.3.7. --allowed-origins

允许的源。

默认['*']

2.1.3.8. --allowed-methods

允许的方法。

默认['*']

2.1.3.9. --allowed-headers

允许的标头。

默认['*']

2.1.3.10. --api-key

如果提供,服务器将需要其中一个密钥才能显示在标头中。

默认None

2.1.3.11. --lora-modules

LoRA 模块配置格式为 'name=path' 格式或 JSON 列表格式。示例(旧格式): 'name=path' 示例(新格式) :{name": "name", "path": "lora_path", "base_model_name": "id"}

默认None

2.1.3.12. --chat-template

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

默认None

2.1.3.13. --chat-template-content-format

可能的选项: autoopenai字符串

在聊天模板中呈现消息内容的格式。

  • "字符串"会将内容呈现为字符串。示例:" Hello World"
  • "openai"将内容呈现为字典列表,类似于 OpenAI 模式。示例: [{"type": "text", "text": "Hello world!"}]

默认auto

2.1.3.14. --response-role

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

默认 助手

2.1.3.15. --ssl-keyfile

SSL 密钥文件的文件路径。

默认None

2.1.3.16. --ssl-certfile

SSL 证书文件的文件路径。

默认None

2.1.3.17. --ssl-ca-certs

CA 证书文件。

默认None

2.1.3.18. --enable-ssl-refresh, --no-enable-ssl-refresh

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

默认False

2.1.3.19. --ssl-cert-reqs

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

默认:0

2.1.3.20. --root-path

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

默认None

2.1.3.21. --middleware

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

默认:[]

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

默认False

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

默认False

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

默认False

如果指定,排除工具定义在 tool_choice='none' 时提示。

默认False

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

默认False

2.1.3.27. --tool-call-parser

根据您使用的型号,选择工具调用解析器。这用于将模型生成的工具调用解析为 OpenAI API 格式。需要 for -enable-auto-tool-choice。您可以从内置解析器中选择任何选项,或者通过-- tool-parser-plugin 注册插件

默认None

2.1.3.28. --tool-parser-plugin

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

默认: ''

2.1.3.29. --tool-server

以逗号分隔的 host:port 对列表(IPv4、IPv6 或主机名)。示例: 127.0.0.1:8000, [::1]:8000, localhost:1234.或 demo 用于演示目的。

默认None

2.1.3.30. --log-config-file

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

默认None

2.1.3.31. --max-log-len

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

默认None

2.1.3.32. --disable-fastapi-docs, --no-disable-fastapi-docs

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

默认False

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

默认False

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

默认False

如果设置为 True,包括每个请求的使用情况。

默认False

启用 /get_tokenizer_info 端点。可能公开 chat 模板和其他令牌程序配置。

默认False

2.1.3.37. --enable-log-outputs, --no-enable-log-outputs

如果设置为 True,除了默认启用的输入日志记录外,还要启用模型输出的日志记录(生成)。

默认False

2.1.3.38. --h11-max-incomplete-event-size

h11 解析器不完整的 HTTP 事件(header 或 body)的最大大小(字节)。帮助缓解标头滥用。默认:4194304 (4 MB)。

默认:4194304

2.1.3.39. --h11-max-header-count

h11 解析器请求中允许的最大 HTTP 标头数。帮助缓解标头滥用。默认:256。

默认256

2.1.4. ModelConfig

模型的配置。

2.1.4.1. --model

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

默认Qwen/Qwen3-0.6B

2.1.4.2. --runner

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

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

默认auto

2.1.4.3. --convert

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

使用 [vllm.model_executor.models.adapters][]. 中定义的适配器转换模型。最常见的用例是调整用于池任务的文本生成模型。

默认auto

2.1.4.4. --task

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

重要

这个参数已弃用。

使用模型的任务。如果模型支持多个模型运行程序,这将用于选择要运行的模型运行程序。

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

默认None

2.1.4.5. --tokenizer

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

默认None

2.1.4.6. --tokenizer-mode

可能的选项: auto,custom,mistral,slow

Tokenizer 模式:

  • "auto"将使用快速令牌程序(如果可用)。
  • "slow" 将始终使用较慢的令牌程序。
  • "mistral" 将始终使用 mistral_common 中的令牌程序。
  • "custom" 将使用 --tokenizer 选择预注册的令牌工具程序。

默认auto

2.1.4.7. --trust-remote-code, --no-trust-remote-code

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

默认False

2.1.4.8. --dtype

可能的选项: auto,bfloat16, float, float16,float32,half

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

  • "auto"将为 FP32 和 FP16 模型使用 FP16 精度,并将 BF16 精度用于 BF16 模型。
  • FP16 的"半"建议 AWQ 量化。
  • "float16"与 "half" 相同。
  • "bfloat16",代表精度和范围之间的平衡。
  • "浮点"的缩写为 FP32 精度。
  • "float32"表示 FP32 精度。

默认auto

2.1.4.9. --seed

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

默认None

2.1.4.10. --hf-config-path

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

默认None

2.1.4.11. --allowed-local-media-path

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

默认: ''

2.1.4.12. --revision

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

默认None

2.1.4.13. --code-revision

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

默认None

2.1.4.14. --rope-scaling

RoPE 扩展配置.例如: {"rope_type":"dynamic","factor":2.0}

应该是有效的 JSON 字符串或 JSON 密钥。

默认 :{}

2.1.4.15. --rope-theta

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

默认None

2.1.4.16. --tokenizer-revision

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

默认None

2.1.4.17. --max-model-len

模型上下文长度(提示和输出)。如果未指定,将自动从模型配置派生出来。

当通过 -max-model-len 传递时,以人类可读的格式支持 k/m/g/K/M/G。示例:

  • 1k -> 1000
  • 1K -> 1024
  • 25.6k -> 25,600

默认None

2.1.4.18. --quantization, -q

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

默认None

2.1.4.19. --enforce-eager, --no-enforce-eager

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

默认False

2.1.4.20. --max-seq-len-to-capture

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

默认8192

2.1.4.21. --max-logprobs

logprobsSamplingParams 中指定时,要返回的最大日志数量。默认值是 OpenAI Chat Completions API 的默认值。-1 代表没有上限,例如 all (output_length * vocab_size) logprobs,可能会导致 OOM。

默认 :20

2.1.4.22. --logprobs-mode

可能的选项: processed_logits,processed_logprobs,raw_logits,raw_logprobs

指明 logprobs 和 prompt_logprobs 返回的内容。支持的模式:1)raw_logprobs, 2)processed_logprobs, 3)raw_logits, 4)processed_logits.raw 意味着在应用 logit 处理器(如错误的单词)前的值。processed 意味着应用此类处理器后的值。

默认raw_logprobs

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

默认False

2.1.4.24. --disable-cascade-attn, --no-disable-cascade-attn

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

默认False

2.1.4.25. --skip-tokenizer-init, --no-skip-tokenizer-init

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

默认False

2.1.4.26. --enable-prompt-embeds, --no-enable-prompt-embeds

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

默认False

2.1.4.27. --served-model-name

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

默认None

2.1.4.28. --disable-async-output-proc

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

默认False

2.1.4.29. --config-format

可能的选项: auto,hf,mistral

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

  • "auto"将尝试以 hf 格式加载配置(如果可用),否则它将尝试以 mistral 格式加载。
  • "HF"将以 hf 格式加载配置。
  • "mistral"将加载 mistral 格式的配置。

默认auto

2.1.4.30. --hf-token

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

默认None

2.1.4.31. --hf-overrides

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

默认 :{}

2.1.4.32. --override-neuron-config

初始化特定于 Neuron 设备的非默认 neuron 配置或覆盖默认的 neuron 配置,此参数将用于配置无法从 vllm 参数收集的 neuron 配置。例如 {"cast_logits_dtype": "bfloat16"}

应该是有效的 JSON 字符串或 JSON 密钥。

默认 :{}

2.1.4.33. --override-pooler-config

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

默认None

2.1.4.34. --logits-processor-pattern

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

默认None

2.1.4.35. --generation-config

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

默认auto

2.1.4.36. --override-generation-config

覆盖或设置生成配置。例如 {"temperature": 0.5}.如果与 -generation-config auto 一起使用,则覆盖参数将与模型中的默认配置合并。如果与 -generation-config vllm 一起使用,则只使用覆盖参数。

应该是有效的 JSON 字符串或 JSON 密钥。

默认 :{}

2.1.4.37. --enable-sleep-mode, --no-enable-sleep-mode

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

默认False

2.1.4.38. --model-impl

可能的选项: auto,vllm,transformers

要使用哪个模型实现:

  • "auto"将尝试使用 vLLM 实施(如果存在),并在没有 vLLM 实施时回退到 Transformers 实施。
  • "vllm"将使用 vLLM 模型实施。
  • "转换器"将使用 Transformers 模型实施。

默认auto

2.1.4.39. --override-attention-dtype

覆盖 dtype 以备注意

默认None

2.1.4.40. --logits-processors

一个或多个处理器的完全限定域名或类定义

默认None

2.1.5. LoadConfig

加载模型权重的配置。

2.1.5.1. --load-format

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

  • "auto"将尝试以安全编写器格式加载权重,并在 securetensors 格式不可用时回退到 pytorch bin 格式。
  • "pt" 将以 pytorch bin 格式加载权重。
  • "safetensors"将以更安全的格式加载权重。
  • "npcache"将以 pytorch 格式加载权重,并存储 numpy 缓存以加快加载。
  • "dummy"将使用随机值初始化权重,这主要用于性能分析。
  • "tensorizer"将使用 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

2.1.5.2. --download-dir

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

默认None

2.1.5.3. --model-loader-extra-config

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

默认 :{}

2.1.5.4. --ignore-patterns

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

默认None

2.1.5.5. --use-tqdm-on-load, --no-use-tqdm-on-load

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

默认True

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

2.1.6. DecodingConfig

包含引擎解码策略的 Dataclass。

2.1.6.1. --guided-decoding-backend

可能的选项: auto,guidance, overview ,xgrammar

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

默认auto

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

默认False

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

默认False

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

默认False

2.1.6.5. --reasoning-parser

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

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

默认: ''

2.1.7. ParallelConfig

分布式执行配置。

2.1.7.1. --distributed-executor-backend

可能的选项: external_launcher,mp,ray,uni,None

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

默认None

2.1.7.2. --pipeline-parallel-size, -pp

管道并行组数量。

默认1

2.1.7.3. --tensor-parallel-size, -tp

十个并行组的数量。

默认1

2.1.7.4. --data-parallel-size, -dp

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

默认1

2.1.7.5. --data-parallel-rank, -dpn

此实例的数据并行等级。设置后,启用外部负载均衡器模式。

默认None

2.1.7.6. --data-parallel-start-rank, -dpr

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

默认None

2.1.7.7. --data-parallel-size-local, -dpl

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

默认None

2.1.7.8. --data-parallel-address, -dpa

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

默认None

2.1.7.9. --data-parallel-rpc-port, -dpp

数据并行 RPC 通信的端口。

默认None

2.1.7.10. --data-parallel-backend, -dpb

数据并行的后端,可以是 "mp" 或 "ray"。

默认mp

是否使用 "hybrid" DP LB 模式。仅适用于在线服务,以及 data_parallel_size > 0 时。启用以"per-node"为基础运行 AsyncLLM 和 API 服务器,其中 vLLM 负载均衡本地数据并行等级,但 vLLM 节点/副本之间有一个外部 LB 平衡。明确与 --data-parallel-start-rank 结合使用。

默认False

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

默认False

2.1.7.13. --enable-eplb, --no-enable-eplb

为 MoE 层启用专家并行负载平衡。

默认False

2.1.7.14. --num-redundant-experts

用于专家并行性的冗余专家数量。

默认:0

2.1.7.15. --eplb-window-size

专家加载记录的窗口大小。

默认1000

2.1.7.16. --eplb-step-interval

重排专家在专家并行度的间隔。

请注意,如果这大于 EPLB 窗口大小,则只有最后 eplb_window_size 步骤的指标将用于重新安排专家。

默认3000

记录专家并行每个步骤的平衡。默认情况下关闭此设置,因为它会导致通信开销。

默认False

2.1.7.18. --max-parallel-loading-workers

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

默认None

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

默认False

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

默认False

2.1.7.21. --worker-cls

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

默认auto

2.1.7.22. --worker-extension-cls

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

默认: ''

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

默认False

2.1.8. CacheConfig

配置 KV 缓存。

2.1.8.1. --block-size

可能的选项: 1、 8163264128

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

这个配置没有静态默认值。如果用户未指定,它将根据当前平台在 Platform.check_and_update_config () 中设置。

默认None

2.1.8.2. --gpu-memory-utilization

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

默认:0.9

2.1.8.3. --swap-space

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

默认4

2.1.8.4. --kv-cache-dtype

可能的选项: auto,fp8,fp8_e4m3,fp8_e5m2,fp8_inc

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

默认auto

2.1.8.5. --num-gpu-blocks-override

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

默认None

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

默认None

2.1.8.7. --prefix-caching-hash-algo

可能的选项: built , sha256,sha256_cbor_64bit

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

  • "内置"是 Python 的内置哈希。
  • "SHA256"是冲突的,但存在某些开销。此选项在哈希前将 Pickle 用于对象序列化。
  • "sha256_cbor_64 位"提供可重复生成的、跨语言兼容哈希。它使用规范 CBOR 序列化对象,并使用 SHA-256 进行哈希处理。生成的哈希值由 SHA-256 摘要的较低 64 位组成。

默认builtin

2.1.8.8. --cpu-offload-gb

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

默认:0

2.1.8.9. --calculate-kv-scales, --no-calculate-kv-scales

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

默认False

此功能正在进行中,目前没有启用此标志的预填充优化。

在一些 KV 共享设置中,如 YOCO (https://arxiv.org/abs/2405.05254),一些层可以跳过与预先填充对应的令牌。此标志支持在某些模型(如 Gemma3n)中实施此优化所需的元数据覆盖符合条件的层的元数据。

默认False

2.1.8.11. --mamba-cache-dtype

可能的选项: auto,float32

用于 Mamba 缓存的数据类型( conv 和 sm 状态)。如果设置为 'auto',则数据类型将从模型配置中推断出来。

默认auto

2.1.8.12. --mamba-ssm-cache-dtype

可能的选项: auto,float32

用于 Mamba 缓存的数据类型(仅sm 状态,conv 状态仍将由 mamba_cache_dtype 控制)。如果设置为 'auto',ssm 状态的数据类型将由 mamba_cache_dtype 决定。

默认auto

2.1.9. MultiModalConfig

控制多模式模型的行为。

2.1.9.1. --limit-mm-per-prompt

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

例如,每个提示允许最多 16 个镜像和 2 个视频: {"image": 16, "video": 2}

应该是有效的 JSON 字符串或 JSON 密钥。

默认 :{}

2.1.9.2. --media-io-kwargs

传递给进程介质输入的额外参数,按模态键。例如,要为视频设置 num_frames,set --media-io-kwargs '{"video": {"num_frames": 40} }'

应该是有效的 JSON 字符串或 JSON 密钥。

默认 :{}

2.1.9.3. --mm-processor-kwargs

transformers.AutoProcessor.from_pretrained 获取的多模式处理器覆盖。

可用的覆盖取决于正在运行的模型。

例如,对于 Phi-3-Vision: {"num_crops": 4}

应该是有效的 JSON 字符串或 JSON 密钥。

默认None

2.1.9.4. --mm-processor-cache-gb

用于多模式处理器缓存的大小(以 GiB 为单位)

这个缓存会为每个 API 进程和引擎核心进程重复,从而导致 mm_processor_cache_gb *(api_server_count + data_parallel_size) 的内存用量总量。

设置为 0 以完全禁用此缓存(不推荐)。

默认4

2.1.9.5. --disable-mm-preprocessor-cache

默认False

为多模式提示启用完全交错支持。

默认False

2.1.9.7. --skip-mm-profiling, --no-skip-mm-profiling

启用后,在引擎初始化过程中跳过多模式内存配置集,以及仅使用语言主模型的配置文件。

这减少了引擎启动时间,但将责任转移到用户,以估算多模式编码器激活和嵌入缓存的峰值内存用量。

默认False

2.1.10. LoRAConfig

LoRA 配置.

2.1.10.1. --enable-lora, --no-enable-lora

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

默认None

2.1.10.2. --enable-lora-bias, --no-enable-lora-bias

为 LoRA 适配器启用 bias。

默认False

2.1.10.3. --max-loras

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

默认1

2.1.10.4. --max-lora-rank

最大 LoRA 排名.

默认16

2.1.10.5. --lora-extra-vocab-size

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

默认256

2.1.10.6. --lora-dtype

可能的选项: auto,bfloat16,float16

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

默认auto

2.1.10.7. --max-cpu-loras

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

默认None

2.1.10.8. --fully-sharded-loras, --no-fully-sharded-loras

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

默认False

2.1.10.9. --default-mm-loras

字典将特定的模式映射到 LoRA 模型路径;该字段仅适用于多模式模型,当模型始终需要给定模态时,应该利用 LoRA。请注意,如果请求提供了多个额外的模式,则每个请求都有自己的 LoRA,我们不会应用 default_mm_loras,因为我们目前对每个提示只支持一个 lora 适配器。在离线模式下运行时,n modalities 的 lora ID 将使用字母顺序中的模态名称自动分配给 1-n。

应该是有效的 JSON 字符串或 JSON 密钥。

默认None

2.1.11. ObservabilityConfig

可观察性配置 - 指标和追踪。

2.1.11.1. --show-hidden-metrics-for-version

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

默认None

2.1.11.2. --otlp-traces-endpoint

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

默认None

2.1.11.3. --collect-detailed-traces

可能的选项: all,model,worker,None,model,worker,model,all,worker,model,worker,all,all,model,all,worker

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

请注意,收集每个请求的详细时间信息可能会昂贵。

默认None

2.1.12. SchedulerConfig

调度程序配置。

2.1.12.1. --max-num-batched-tokens

在单个迭代中处理的最大令牌数。

这个配置没有静态默认值。如果用户未指定,它将根据使用情况上下文在 EngineArgs.create_engine_config 中设置。

默认None

2.1.12.2. --max-num-seqs

在单个迭代中处理的最大序列号。

这个配置没有静态默认值。如果用户未指定,它将根据使用情况上下文在 EngineArgs.create_engine_config 中设置。

默认None

2.1.12.3. --max-num-partial-prefills

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

默认1

2.1.12.4. --max-long-partial-prefills

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

默认1

2.1.12.5. --cuda-graph-sizes

CUDA 图形捕获大小

  1. 如果没有提供,则默认为 [min (max_num_seqs * 2, 512)]
  2. 如果提供了一个值,则捕获列表将遵循模式:[1, 2, 4] + [i for i in range (8, cuda_graph_sizes + 1, 8)]
  3. 提供了多个值(如 1 2 128),然后捕获列表将遵循提供的列表。

默认:[]

2.1.12.6. --long-prefill-token-threshold

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

默认:0

2.1.12.7. --num-lookahead-slots

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

注意

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

默认:0

2.1.12.8. --scheduler-delay-factor

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

默认0.0

2.1.12.9. --preemption-mode

可能的选项: 重新计算、 交换

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

默认None

2.1.12.10. --scheduling-policy

可能的选项: fcfspriority

要使用的调度策略:

  • "fcfs"意味着首先提供第一个服务,即按 arrival 的顺序处理请求。
  • "优先级"意味着根据给定优先级处理请求(较低值意味着早期处理)和 arrival 决定任何绑定的时间。

默认:fcfs

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

默认None

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

默认False

2.1.12.13. --scheduler-cls

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

默认:vllm.core.scheduler.Scheduler

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

默认False

2.1.12.15. --async-scheduling, --no-async-scheduling

注意

这是一个实验性功能。

如果设置为 True,请执行 async 调度。这有助于减少 CPU 开销,从而提高延迟和吞吐量。但是,目前不支持 async 调度,如结构化输出、规范解码和管道并行性。

默认False

2.1.13. VllmConfig

Dataclass 包含所有与 vllm 相关的配置。这简化了在代码库中传递不同配置的过程。

2.1.13.1. --speculative-config

规范解码配置。

应该是有效的 JSON 字符串或 JSON 密钥。

默认None

2.1.13.2. --kv-transfer-config

分布式 KV 缓存传输的配置。

应该是有效的 JSON 字符串或 JSON 密钥。

默认None

2.1.13.3. --kv-events-config

事件发布的配置。

应该是有效的 JSON 字符串或 JSON 密钥。

默认None

2.1.13.4. --compilation-config, -O

torch.compile and cudagraph 捕获模型配置。

作为一个简写,-O<n > 可用于直接指定编译级别 n:-O3 等同于 -O.level=3 (same as -O='{"level":3}')。目前,-O <n>and -O=<n> are supported as well but this will likely be removed in favor of clearer -O<n>syntax in the future.</n></n></n>

注意

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

您可以指定完整的编译配置,如 so: {"level": 3, "cudagraph_capture_sizes": [1, 2, 4, 8]}

应该是有效的 JSON 字符串或 JSON 密钥。

Default:

{
  "level": null,
  "debug_dump_path": "",
  "cache_dir": "",
  "backend": "",
  "custom_ops": [],
  "splitting_ops": null,
  "use_inductor": true,
  "compile_sizes": null,
  "inductor_compile_config": {
    "enable_auto_functionalized_v2": false
  },
  "inductor_passes": {},
  "cudagraph_mode": null,
  "use_cudagraph": true,
  "cudagraph_num_of_warmups": 0,
  "cudagraph_capture_sizes": null,
  "cudagraph_copy_inputs": false,
  "full_cuda_graph": false,
  "pass_config": {},
  "max_capture_size": null,
  "local_cache_dir": null
}
Copy to Clipboard Toggle word wrap

2.1.13.5. --additional-config

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

默认 :{}

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat