vLLM 服务器参数
运行 Red Hat AI Inference Server 的服务器参数
摘要
前言 复制链接链接已复制到粘贴板!
Red Hat AI Inference Server 为 inference 服务提供 OpenAI 兼容 API 服务器。您可以使用参数控制服务器的行为。
第 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 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-log-requests, --no-enable-log-requests 复制链接链接已复制到粘贴板!
启用日志记录请求。
默认 :False
这个参数已弃用。
禁用日志记录请求。
默认 :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 复制链接链接已复制到粘贴板!
可能的选项: auto、openai、字符串
在聊天模板中呈现消息内容的格式。
-
"字符串"会将内容呈现为字符串。示例:"
Hello World" -
"openai"将内容呈现为字典列表,类似于 OpenAI 模式。示例:
[{"type": "text", "text": "Hello world!"}]
默认 :auto
是否信任请求中提供的 chat 模板。如果 False,服务器始终使用由-chat -template 指定的 chat 模板,或者来自令牌程序的 chat 模板。
默认 :False
2.1.3.15. --response-role 复制链接链接已复制到粘贴板!
如果 request.add_generation_prompt=true 则返回的角色名称。
默认 助手
2.1.3.16. --ssl-keyfile 复制链接链接已复制到粘贴板!
SSL 密钥文件的文件路径。
默认 :None
2.1.3.17. --ssl-certfile 复制链接链接已复制到粘贴板!
SSL 证书文件的文件路径。
默认 :None
2.1.3.18. --ssl-ca-certs 复制链接链接已复制到粘贴板!
CA 证书文件。
默认 :None
2.1.3.19. --enable-ssl-refresh, --no-enable-ssl-refresh 复制链接链接已复制到粘贴板!
当 SSL 证书文件更改时刷新 SSL 上下文
默认 :False
2.1.3.20. --ssl-cert-reqs 复制链接链接已复制到粘贴板!
是否需要客户端证书(请参阅 stdlib ssl 模块)。
默认:0
2.1.3.21. --root-path 复制链接链接已复制到粘贴板!
当应用程序位于基于路径的路由代理后面时,快速API root_path。
默认 :None
2.1.3.22. --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 标头添加到响应中。
默认 :False
为支持的模型启用自动工具选择。use --tool-call-parser 用来指定要使用的解析器。
默认 :False
如果指定,排除工具定义在 tool_choice='none' 时提示。
默认 :False
2.1.3.28. --tool-call-parser 复制链接链接已复制到粘贴板!
根据您使用的型号,选择工具调用解析器。这用于将模型生成的工具调用解析为 OpenAI API 格式。需要 for -enable-auto-tool-choice。您可以从内置解析器中选择任何选项,或者通过-- tool-parser-plugin 注册插件。
默认 :None
2.1.3.29. --tool-parser-plugin 复制链接链接已复制到粘贴板!
特殊工具解析器插件写入将模型生成的工具解析为 OpenAI API 格式,此插件中的名称注册可在 --tool-call-parser 中使用。
默认: ''
2.1.3.30. --tool-server 复制链接链接已复制到粘贴板!
以逗号分隔的 host:port 对列表(IPv4、IPv6 或主机名)。示例: 127.0.0.1:8000, [::1]:8000, localhost:1234.或 demo 用于演示目的。
默认 :None
2.1.3.31. --log-config-file 复制链接链接已复制到粘贴板!
vllm 和 uvicorn 日志记录配置 JSON 文件的路径
默认 :None
2.1.3.32. --max-log-len 复制链接链接已复制到粘贴板!
在日志中打印的最大提示字符或提示 ID 号数。默认值 None 表示无限。
默认 :None
禁用 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.38. --enable-log-outputs, --no-enable-log-outputs 复制链接链接已复制到粘贴板!
如果为 True,日志模型输出(生成)。需要 --enable-log-requests。
默认 :False
2.1.3.39. --h11-max-incomplete-event-size 复制链接链接已复制到粘贴板!
h11 解析器不完整的 HTTP 事件(header 或 body)的最大大小(字节)。帮助缓解标头滥用。
默认:4194304 (4 MB)
2.1.3.40. --h11-max-header-count 复制链接链接已复制到粘贴板!
h11 解析器请求中允许的最大 HTTP 标头数。帮助缓解标头 abuse.s
默认 :256
2.1.3.41. --log-error-stack, --no-log-error-stack 复制链接链接已复制到粘贴板!
如果设置为 True,请记录错误响应的堆栈追踪
默认 :False
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. --allowed-media-domains 复制链接链接已复制到粘贴板!
如果设置,则只有属于此域的介质 URL 才能用于多模式输入。
默认 :None
2.1.4.13. --revision 复制链接链接已复制到粘贴板!
要使用的特定模型版本。它可以是分支名称、标签名称或提交 id。如果未指定,将使用默认版本。
默认 :None
2.1.4.14. --code-revision 复制链接链接已复制到粘贴板!
用于 Hugging Face Hub 上模型代码的特定修订版本。它可以是分支名称、标签名称或提交 id。如果未指定,将使用默认版本。
默认 :None
2.1.4.15. --rope-scaling 复制链接链接已复制到粘贴板!
RoPE 扩展配置.例如: {"rope_type":"dynamic","factor":2.0}。
应该是有效的 JSON 字符串或 JSON 密钥。
默认 :{}
2.1.4.16. --rope-theta 复制链接链接已复制到粘贴板!
RoPE 达州.与 rope_scaling 一起使用。在某些情况下,更改 RoPE 可提高扩展模型的性能。
默认 :None
2.1.4.17. --tokenizer-revision 复制链接链接已复制到粘贴板!
用于 Hugging Face Hub 上令牌程序的特定修订版本。它可以是分支名称、标签名称或提交 id。如果未指定,将使用默认版本。
默认 :None
2.1.4.18. --max-model-len 复制链接链接已复制到粘贴板!
模型上下文长度(提示和输出)。如果未指定,将自动从模型配置派生出来。
当通过 -max-model-len 传递时,以人类可读的格式支持 k/m/g/K/M/G。示例:
- 1k -> 1000
- 1K -> 1024
- 25.6k -> 25,600
解析人类可读的整数,如 '1k'、'2M' 等。包含十进制倍数的十进制值。
Examples: - '1k' -> 1,000 - '1K' -> 1,024 - '25.6k' -> 25,600
Examples:
- '1k' -> 1,000
- '1K' -> 1,024
- '25.6k' -> 25,600
默认 :None
2.1.4.19. --quantization, -q 复制链接链接已复制到粘贴板!
用于量化权重的方法。如果没有,则首先检查模型配置文件中的 quantization_config 属性。如果是 None,则假设模型权重不会量化,并使用 dtype 来确定权重的数据类型。
默认 :None
2.1.4.20. --enforce-eager, --no-enforce-eager 复制链接链接已复制到粘贴板!
是否总是使用 eager-mode PyTorch。如果为 True,我们将禁用 CUDA 图形,并始终以 eager 模式执行模型。如果为 False,我们将在混合中使用 CUDA 图形和 eager 的执行,以获得最大性能和灵活性。
默认 :False
2.1.4.21. --max-logprobs 复制链接链接已复制到粘贴板!
当 logprobs 在 SamplingParams 中指定时,要返回的最大日志数量。默认值是 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 意味着在应用任何日志处理器之前的值,如错误的单词。processed 表示应用所有处理器后的值,包括温度和 top_k/top_p。
默认 :raw_logprobs
是否禁用滑动窗口。如果为 True,我们将禁用模型的滑动窗口功能,上限为 sliding 窗口大小。如果模型不支持滑动窗口,则忽略此参数。
默认 :False
对 V1 禁用级关注。虽然级联的关注不会更改数学正确性,但禁用它对于防止潜在的数字问题非常有用。请注意,即使将其设置为 False,仅当性能告诉其好处时,才会使用级联的关注。
默认 :False
跳过令牌程序和解码初始化。预期从输入中有效的 prompt_token_ids 和 None 以提示。生成的输出将包含令牌 ID。
默认 :False
如果为 True,启用通过 prompt_embeds 键传递文本以输入形式。请注意,启用这将加倍图形编译所需的时间。
默认 :False
2.1.4.27. --served-model-name 复制链接链接已复制到粘贴板!
API 中使用的模型名称。如果提供了多个名称,服务器将响应任何提供的名称。响应的 model 字段中的型号名称将是此列表中的名字。如果没有指定,模型名称将与 the- model 参数相同。请注意,如果提供了多个名称,则此名称也会在 prometheus 指标的 model_name 标签内容中使用,则 metrics 标签将采用第一个名称。
默认 :None
2.1.4.28. --config-format 复制链接链接已复制到粘贴板!
可能的选项: auto,hf,mistral
要载入的模型配置的格式:
- "auto"将尝试以 hf 格式加载配置(如果可用),否则它将尝试以 mistral 格式加载。
- "HF"将以 hf 格式加载配置。
- "mistral"将加载 mistral 格式的配置。
默认 :auto
2.1.4.29. --hf-token 复制链接链接已复制到粘贴板!
用作远程文件的 HTTP bearer 授权的令牌。如果为 True,将使用在运行 huggingface-cli 登录时 生成的令牌(以 ~/.huggingface形式存储)。
默认 :None
2.1.4.30. --hf-overrides 复制链接链接已复制到粘贴板!
如果字典,包含要转发到 Hugging Face 配置的参数。如果可以调用,则会调用它来更新 HuggingFace 配置。
默认 :{}
2.1.4.31. --pooler-config 复制链接链接已复制到粘贴板!
池配置,控制池模型中输出池的行为。
应该是有效的 JSON 字符串或 JSON 密钥。
默认 :None
2.1.4.32. --override-pooler-config 复制链接链接已复制到粘贴板!
这个参数已弃用。
使用 pooler_config 替代。此字段将在 v0.12.0 或 v1.0.0 中删除,以更早为准。
应该是有效的 JSON 字符串或 JSON 密钥。
默认 :None
2.1.4.33. --logits-processor-pattern 复制链接链接已复制到粘贴板!
可选正则表达式模式指定可以使用 logits_processors extra completion 参数传递的有效日志限定名称。默认为 None,不允许任何处理器。
默认 :None
2.1.4.34. --generation-config 复制链接链接已复制到粘贴板!
生成配置的文件夹路径。默认为 "auto",生成配置将从模型路径加载。如果设置为 "vllm",则不会加载生成配置,则使用 vLLM 默认值。如果设置为文件夹路径,则生成配置将从指定的文件夹路径加载。如果在生成配置中指定了 max_new_tokens,它会为所有请求设置服务器端令牌数量。
默认 :auto
2.1.4.35. --override-generation-config 复制链接链接已复制到粘贴板!
覆盖或设置生成配置。例如: {"temperature": 0.5}。如果与 -generation-config auto 一起使用,则覆盖参数将与模型中的默认配置合并。如果与 -generation-config vllm 一起使用,则只使用覆盖参数。
应该是有效的 JSON 字符串或 JSON 密钥。
默认 :{}
2.1.4.36. --enable-sleep-mode, --no-enable-sleep-mode 复制链接链接已复制到粘贴板!
为引擎启用睡眠模式(只支持 CUDA 平台)。
默认 :False
2.1.4.37. --model-impl 复制链接链接已复制到粘贴板!
可能的选项: auto,terratorch,transformers,vllm
要使用哪个模型实现:
- "auto"将尝试使用 vLLM 实施(如果存在),并在没有 vLLM 实施时回退到 Transformers 实施。
- "vllm"将使用 vLLM 模型实施。
- "转换器"将使用 Transformers 模型实施。
- "terratorch"将使用 TerraTorch 模型实施。
默认 :auto
2.1.4.38. --override-attention-dtype 复制链接链接已复制到粘贴板!
覆盖 dtype 以备注意
默认 :None
2.1.4.39. --logits-processors 复制链接链接已复制到粘贴板!
一个或多个处理器的完全限定域名或类定义
默认 :None
2.1.4.40. --io-processor-plugin 复制链接链接已复制到粘贴板!
在模型启动时载入的 IOProcessor 插件名称
默认 :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. --safetensors-load-strategy 复制链接链接已复制到粘贴板!
指定安全攻击权重的加载策略。
- "lazy" (默认):Wights 是从文件中映射的内存。这可实现按需加载,并对本地存储上的模型具有高效率。
- "eager": 整个文件在加载前预先读取 CPU 内存。建议对网络文件系统(例如,Lustre、NFS)上的模型进行模型,因为它避免了低效的随机读取,从而显著提高了模型初始化。但是,它使用更多 CPU RAM。
默认 :lazy
2.1.5.4. --model-loader-extra-config 复制链接链接已复制到粘贴板!
模型加载程序的额外配置。这将传递给与所选 load_format 对应的模型加载程序。
默认 :{}
2.1.5.5. --ignore-patterns 复制链接链接已复制到粘贴板!
加载模型时要忽略的模式列表。默认为 "original/*/",以避免重复加载 llama 的检查点。
默认 :None
2.1.5.6. --use-tqdm-on-load, --no-use-tqdm-on-load 复制链接链接已复制到粘贴板!
是否在加载模型权重时启用 tqdm 显示进度条。
默认 :True
2.1.5.7. --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. StructuredOutputsConfig 复制链接链接已复制到粘贴板!
包含引擎的结构化输出配置的 Dataclass。
2.1.6.1. --reasoning-parser 复制链接链接已复制到粘贴板!
可能的选项: deepseek_r1,glm45,openai_gptoss,granite,hunyuan_a13b,mistral,qwen3,seed_oss,step3
根据您使用的型号,选择原因解析器。这用于将内容解析为 OpenAI API 格式。
默认: ''
2.1.6.2. --guided-decoding-backend 复制链接链接已复制到粘贴板!
这个参数已弃用。
--Guided-decoding-backend 将在 v0.12.0 中删除。
默认 :None
2.1.6.3. --guided-decoding-disable-fallback 复制链接链接已复制到粘贴板!
这个参数已弃用。
--Guided-decoding-disable-fallback 将在 v0.12.0 中删除。
默认 :None
2.1.6.4. --guided-decoding-disable-any-whitespace 复制链接链接已复制到粘贴板!
这个参数已弃用。
--Guided-decoding-disable-any-whitespace 将在 v0.12.0 中删除。
默认 :None
2.1.6.5. --guided-decoding-disable-additional-properties 复制链接链接已复制到粘贴板!
这个参数已弃用。
--Guided-decoding-disable-additional-properties 将在 v0.12.0 中删除。
默认 :None
2.1.7. ParallelConfig 复制链接链接已复制到粘贴板!
分布式执行配置。
2.1.7.1. --distributed-executor-backend 复制链接链接已复制到粘贴板!
可能的选择: external_launcher,mp,ray,uni
用于分布式模型 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. --decode-context-parallel-size, -dcp 复制链接链接已复制到粘贴板!
解码上下文并行组的数量,因为全局大小不会由 dcp 更改,只需要重复使用 TP 组的 GPU,tp_size 需要被 dcp_size 分离。
默认 :1
2.1.7.5. --data-parallel-size, -dp 复制链接链接已复制到粘贴板!
数据并行组数量。moe 层将根据数十个并行大小和数据并行大小的产品进行分片。
默认 :1
2.1.7.6. --data-parallel-rank, -dpn 复制链接链接已复制到粘贴板!
此实例的数据并行等级。设置后,启用外部负载均衡器模式。
默认 :None
2.1.7.7. --data-parallel-start-rank, -dpr 复制链接链接已复制到粘贴板!
为二级节点启动数据并行等级。
默认 :None
2.1.7.8. --data-parallel-size-local, -dpl 复制链接链接已复制到粘贴板!
此节点上运行的数据并行副本数。
默认 :None
2.1.7.9. --data-parallel-address, -dpa 复制链接链接已复制到粘贴板!
数据并行集群头节点地址。
默认 :None
2.1.7.10. --data-parallel-rpc-port, -dpp 复制链接链接已复制到粘贴板!
数据并行 RPC 通信的端口。
默认 :None
2.1.7.11. --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.14. --enable-dbo, --no-enable-dbo 复制链接链接已复制到粘贴板!
为模型执行器启用双批处理重叠。
默认 :False
2.1.7.15. --dbo-decode-token-threshold 复制链接链接已复制到粘贴板!
双批处理重叠的阈值仅包含解码。如果请求中的令牌数量大于这个阈值,则会使用 microbatching。否则,请求将在单个批处理中进行处理。
默认 :32
2.1.7.16. --dbo-prefill-token-threshold 复制链接链接已复制到粘贴板!
双批处理重叠的阈值,用于包含一个或多个预先填充的批处理。如果请求中的令牌数量大于这个阈值,则会使用 microbatching。否则,请求将在单个批处理中进行处理。
默认 :512
2.1.7.17. --enable-eplb, --no-enable-eplb 复制链接链接已复制到粘贴板!
为 MoE 层启用专家并行负载平衡。
默认 :False
2.1.7.18. --eplb-config 复制链接链接已复制到粘贴板!
专家并行配置。
应该是有效的 JSON 字符串或 JSON 密钥。
默认:EPLBConfig (window_size=1000, step_interval=3000, num_redundant_experts=0, log_balancedness=False)
2.1.7.19. --expert-placement-strategy 复制链接链接已复制到粘贴板!
可能的选项: linear,round_robin
MoE 层的专家放置策略:
- "线性":是以连续的方式放置的。例如,在 4 个专家和 2 个排名中,排名 0 将拥有专家 [0、1],并将有专家 [2, 3]。
- "ROUND_ROBIN":ADDRESSs 以轮循方式放置。例如,在 4 个专家和 2 个排名中,0 位将拥有专家 [0、2],并将有专家 [1, 3]。此策略有助于在没有冗余专家的情况下,为分组的专家模型提高负载平衡。
默认 :linear
2.1.7.20. --num-redundant-experts 复制链接链接已复制到粘贴板!
这个参数已弃用。
--num-redundant-experts 将在 v0.12.0 中删除。
默认 :None
2.1.7.21. --eplb-window-size 复制链接链接已复制到粘贴板!
这个参数已弃用。
--eplb-window-size 将在 v0.12.0 中删除。
默认 :None
2.1.7.22. --eplb-step-interval 复制链接链接已复制到粘贴板!
这个参数已弃用。
--eplb-step-interval 将在 v0.12.0 中删除。
默认 :None
这个参数已弃用。
--eplb-log-balancedness 将在 v0.12.0 中删除。
默认 :None
2.1.7.24. --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.27. --worker-cls 复制链接链接已复制到粘贴板!
要使用的 worker 类的完整名称。如果为 "auto",则会根据平台确定 worker 类。
默认 :auto
2.1.7.28. --worker-extension-cls 复制链接链接已复制到粘贴板!
要使用的 worker 扩展类的完整名称。worker 扩展类由 worker 类动态继承。这用于注入 worker 类的新属性和方法,以便在 collective_rpc 调用中使用。
默认: ''
2.1.7.29. --enable-multimodal-encoder-data-parallel 复制链接链接已复制到粘贴板!
默认 :False
2.1.8. CacheConfig 复制链接链接已复制到粘贴板!
配置 KV 缓存。
2.1.8.1. --block-size 复制链接链接已复制到粘贴板!
可能的选项: 1、 8、16、32、64、128
令牌数中连续缓存块的大小。在 CUDA 设备中,只支持块大小最多 32 个。
这个配置没有静态默认值。如果用户未指定,它将根据当前平台在 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. --kv-cache-memory-bytes 复制链接链接已复制到粘贴板!
每个 GPU 的 KV 缓存大小(以字节为单位)。默认情况下,设置为 None,vllm 可以根据 gpu_memory_utilization 自动推断 kv 缓存大小。但是,用户可能希望手动指定 kv 缓存内存大小。kv_cache_memory_bytes 允许更多地控制与使用 gpu_memory_memory_utilization 相比使用多少内存。请注意,kv_cache_memory_bytes (当 not-None)忽略 gpu_memory_utilization
解析人类可读的整数,如 '1k'、'2M' 等。包含十进制倍数的十进制值。
Examples: - '1k' -> 1,000 - '1K' -> 1,024 - '25.6k' -> 25,600
Examples:
- '1k' -> 1,000
- '1K' -> 1,024
- '25.6k' -> 25,600
默认 :None
2.1.8.4. --swap-space 复制链接链接已复制到粘贴板!
每个 GPU 的 CPU 交换空间大小(以 GiB 为单位)。
默认 :4
2.1.8.5. --kv-cache-dtype 复制链接链接已复制到粘贴板!
可能的选项: auto,bfloat16,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)。有些模型(即 DeepSeekV3.2)默认为 fp8,设置为 bfloat16 以使用 bfloat16,这是对没有默认为 fp8 的模型的无效选项。
默认 :auto
2.1.8.6. --num-gpu-blocks-override 复制链接链接已复制到粘贴板!
要使用的 GPU 块数。如果指定,这将覆盖 profiled num_gpu_blocks。如果没有,则 什么都不做。用于测试抢占。
默认 :None
是否启用前缀缓存。默认启用 V1。
默认 :None
2.1.8.8. --prefix-caching-hash-algo 复制链接链接已复制到粘贴板!
可能的选项: sha256,sha256_cbor
为前缀缓存设置哈希算法:
- "sha256"在哈希前将 Pickle 用于对象序列化。
- "sha256_cbor"提供可重复生成的、跨语言兼容哈希。它使用规范 CBOR 序列化对象,并使用 SHA-256 进行哈希处理。
默认 :sha256
2.1.8.9. --cpu-offload-gb 复制链接链接已复制到粘贴板!
GiB 中每个 GPU 卸载 CPU 的空间。默认值为 0,表示没有卸载。直观地,此参数可以被看成一种增加 GPU 内存大小的虚拟方式。例如,如果您有一个 24 GB GPU 并把它设置为 10,则虚拟您可以将其视为 34 GB GPU。然后,您可以使用 BF16 权重加载 13B 模型,它至少需要 26GB GPU 内存。请注意,这需要快速 CPU-GPU 互连,因为模型部分是从 CPU 内存加载到每个模型转发传递的 GPU 内存。
默认:0
这可启用 k_scale 和 v_scale 的动态计算,当 kv_cache_dtype 为 fp8 时。如果为 False,则会从模型检查点加载扩展(如果可用)。否则,扩展将默认为 1.0。
默认 :False
此功能正在进行中,目前没有启用此标志的预填充优化。
在一些 KV 共享设置中,如 YOCO (https://arxiv.org/abs/2405.05254),一些层可以跳过与预先填充对应的令牌。此标志支持通过在某些模型(如 Gemma3n)中实施此优化所需的元数据覆盖符合条件的层的元数据。
默认 :False
2.1.8.12. --mamba-cache-dtype 复制链接链接已复制到粘贴板!
可能的选项: auto,float32
用于 Mamba 缓存的数据类型( conv 和 sm 状态)。如果设置为 'auto',则数据类型将从模型配置中推断出来。
默认 :auto
2.1.8.13. --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
2.1.9.6. --mm-processor-cache-type 复制链接链接已复制到粘贴板!
可能的选项: lru,shm
用于多模式预处理器/映射的缓存类型。如果 shm,请使用共享内存 FIFO 缓存。如果 lru,则使用镜像的 LRU 缓存。
默认 :lru
2.1.9.7. --mm-shm-cache-max-object-size-mb 复制链接链接已复制到粘贴板!
存储在多模式处理器共享内存缓存中的每个对象的大小限制(以 MiB 为单位)。仅在 mm_processor_cache_type 为 "shm" 时有效。
默认 :128
2.1.9.8. --mm-encoder-tp-mode 复制链接链接已复制到粘贴板!
可能的选项: 数据、权重
指明如何使用 10sor parallelism (TP)优化多模式编码器。
-
"weights": 在相同的 vLLM 引擎中,在 TP 中分割每个层的权重。(默认 TP 行为) -
"数据":在同一 vLLM 引擎中,在 TP 中分割批处理输入数据以并行处理数据,同时在每个 TP 等级上托管完全权重。此批处理级别 DP 无法与 API 请求级别 DP 混淆(由数据提供可比并行大小控制)。这只在每个模型中被支持,如果编码器不支持 DP,则回退到"weights"。
默认:weights
在使用 --chat-template-content-format=string 时,启用对多模式提示的完全交错支持。
默认 :False
2.1.9.10. --skip-mm-profiling, --no-skip-mm-profiling 复制链接链接已复制到粘贴板!
启用后,在引擎初始化过程中跳过多模式内存配置集,以及仅使用语言主模型的配置文件。
这减少了引擎启动时间,但将责任转移到用户,以估算多模式编码器激活和嵌入缓存的峰值内存用量。
默认 :False
2.1.9.11. --video-pruning-rate 复制链接链接已复制到粘贴板!
通过 Efficient Video Sampling 为视频修剪设置修剪率。值位于范围 [0;1),并确定要修剪每个视频中介质令牌的比例。
默认 :None
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。这个选项将在 v0.12.0 中删除。
默认 :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 适配器显示的额外 vocabulary 的最大大小。将在 v0.12.0 中删除。
默认 :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
默认情况下,只有一半的 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.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 中设置。
解析人类可读的整数,如 '1k'、'2M' 等。包含十进制倍数的十进制值。
Examples: - '1k' -> 1,000 - '1K' -> 1,024 - '25.6k' -> 25,600
Examples:
- '1k' -> 1,000
- '1K' -> 1,024
- '25.6k' -> 25,600
默认 :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 图形捕获大小
- 如果没有提供,则默认为 [min (max_num_seqs * 2, 512)]
- 如果提供了一个值,则捕获列表将遵循模式:[1, 2, 4] + [i for i in range (8, cuda_graph_sizes + 1, 8)]
- 提供了多个值(如 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. --scheduling-policy 复制链接链接已复制到粘贴板!
可能的选项: fcfs、priority
要使用的调度策略:
- "fcfs"意味着首先提供第一个服务,即按 arrival 的顺序处理请求。
- "优先级"意味着根据给定优先级处理请求(较低值意味着早期处理)和 arrival 决定任何绑定的时间。
默认:fcfs
如果为 True,则预先填充请求可以根据剩余的 max_num_batched_tokens 进行块。
默认 :None
如果设置为 true,并且启用了块的预先填充,我们不希望部分调度多模式项目。仅在 V1 中使用,这样可确保在请求具有混合提示(如文本令牌 TTTTTTTTTTTTTTTTTTTTTTIIIII)时,它会被调度为镜像令牌 IIIIIIIIIIII),其中只能调度到下一步骤(如 TTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII),其中仅能调度某些镜像令牌(如 TTTTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII),其中只能调度某些镜像令牌(如 TTTTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
默认 :False
2.1.12.11. --scheduler-cls 复制链接链接已复制到粘贴板!
要使用的调度程序类。"vllm.core.scheduler.Scheduler" 是默认的调度程序。可以直接是一个类,也可以是形式为"mod.custom_class"的类的路径。
默认:vllm.core.scheduler.Scheduler
如果设置为 True,KV 缓存管理器会为所有关注层分配相同的 KV 缓存大小,即使存在多种关注层,如完整关注和滑动窗口注意。
默认 :False
2.1.12.13. --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:
2.1.13.5. --additional-config 复制链接链接已复制到粘贴板!
指定平台的额外配置。不同的平台可能支持不同的配置。确保配置对您要使用的平台有效。内容必须可以哈希。
默认 :{}
2.1.13.6. --structured-outputs-config 复制链接链接已复制到粘贴板!
结构化输出配置。
应该是有效的 JSON 字符串或 JSON 密钥。
Default:
2.2. 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.3. 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.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-InstructCopy 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/metricsCopy 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 版本中完全删除。