type
status
date
slug
summary
tags
category
icon
password
😀
部署方式渐渐从各种方式改到了 VLLM。 lmdeploy 不支持 embedding sglang 的 feature 跟 VLLM 也是互相借鉴 还是全面投靠 VLLM 吧,只用打一个镜像就可以全面部署了
 
VLLM serve 命令详解

1. 服务配置参数

  • -host :服务绑定的主机名。
  • -port :服务绑定的端口号,默认为 8000
  • -uvicorn-log-level :设置 Uvicorn 的日志级别,可选值为 debuginfowarningerrorcriticaltrace,默认为 info
  • -allow-credentials :是否允许跨域请求携带凭据(如 cookies),默认为 False
  • -allowed-origins :允许的跨域请求来源,默认为 ['*']
  • -allowed-methods :允许的 HTTP 方法,默认为 ['*']
  • -allowed-headers :允许的 HTTP 头部,默认为 ['*']
  • -api-key :如果提供,服务器将要求在请求头中包含此 API 密钥。
  • -ssl-keyfile :指定 SSL 私钥文件的路径。
  • -ssl-certfile :指定 SSL 证书文件的路径。
  • -ssl-ca-certs :指定 CA 证书文件的路径。
  • -ssl-cert-reqs :设置客户端证书验证级别(如 CERT_NONECERT_OPTIONALCERT_REQUIRED),默认为 0
  • -root-path :设置 FastAPI 的根路径前缀(用于路径路由代理)。
  • -middleware :添加额外的 ASGI 中间件,支持多个 -middleware 参数,值应为导入路径。
  • -disable-fastapi-docs :禁用 FastAPI 自动生成的 OpenAPI 文档和 UI。

2. 模型加载与初始化

  • -model :指定要加载的 HuggingFace 模型名称或路径,默认为 facebook/opt-125m
  • -task :指定模型的任务类型,可选值为 autogenerateembeddingembedclassifyscorerewardtranscription,默认为 auto
  • -tokenizer :指定 HuggingFace 分词器的名称或路径,未指定时默认使用与模型相同的名称或路径。
  • -skip-tokenizer-init :跳过分词器初始化,默认为 False
  • -revision :指定模型的版本(如 Git 提交哈希、分支名或标签名)。
  • -code-revision :指定模型代码的版本。
  • -tokenizer-revision :指定分词器的版本。
  • -tokenizer-mode :设置分词器模式,可选值为 autoslowmistralcustom,默认为 auto
  • -trust-remote-code :是否信任并加载远程代码(如自定义模型),默认为 False
  • -allowed-local-media-path :允许 API 请求从服务器文件系统读取本地图片或视频(需在受信任环境中启用)。
  • -download-dir :设置模型下载的缓存目录。
  • -load-format :指定模型权重加载格式,可选值为 autoptsafetensorsnpcachedummytensorizersharded_stateggufbitsandbytesmistralrunai_streamer,默认为 auto
  • -config-format :指定模型配置的格式,可选值为 autohfmistral,默认为 auto
  • -dtype :设置模型权重和激活的数据类型,可选值为 autohalffloat16bfloat16floatfloat32,默认为 auto
  • -kv-cache-dtype :设置 KV 缓存的数据类型,可选值为 autofp8fp8_e5m2fp8_e4m3,默认为 auto
  • -max-model-len :设置模型的最大上下文长度,未指定时从模型配置中自动推导。
  • -model-impl :指定模型的实现方式,可选值为 autovllmtransformers,默认为 auto

3. 推理与生成

  • -guided-decoding-backend :指定基于规则的解码引擎,可选值为 outlineslm-format-enforcerxgrammar,默认为 xgrammar
  • -logits-processor-pattern :指定允许的 logits 处理器模式(正则表达式)。
  • -max-seq-len-to-capture :设置 CUDA 图覆盖的最大序列长度。
  • -quantization :指定量化方法,可选值为 aqlmawqdeepspeedfptpu_int8fp8ptpc_fp8fbgemm_fp8modeloptmarlinggufgptq_marlin_24gptq_marlinawq_marlingptqcompressed-tensorsbitsandbytesqqqhqqexperts_int8neuron_quantipexquarkmoe_wna16None
  • -rope-scaling :设置 RoPE 旋转位置编码的缩放配置(JSON 格式)。
  • -rope-theta :设置 RoPE 的基础频率。
  • -hf-overrides :覆盖 HuggingFace 配置的特定参数(JSON 格式)。
  • -enforce-eager :强制使用 PyTorch 的 eager 模式,默认为 False
  • -disable-custom-all-reduce :禁用自定义的 all-reduce 操作,默认为 False

4. 分布式与并行

  • -distributed-executor-backend :指定分布式执行后端,可选值为 raympuniexternal_launcher,默认为 ray
  • -pipeline-parallel-size :设置流水线并行的规模,默认为 1
  • -tensor-parallel-size :设置张量并行的规模,默认为 1
  • -max-parallel-loading-workers :设置最大并行加载工作线程数。
  • -ray-workers-use-nsight :是否使用 Nsight 性能分析工具监控 Ray worker,默认为 False
  • -block-size :设置令牌块的大小,可选值为 8163264128,默认为 16

5. 资源管理

  • -swap-space :设置每个 GPU 的 CPU 交换空间大小(GiB),默认为 4
  • -cpu-offload-gb :设置每个 GPU 的 CPU 卸载内存大小(GiB),默认为 0
  • -gpu-memory-utilization :设置每个 GPU 的内存利用率(0-1),默认为 0.9
  • -num-gpu-blocks-override :覆盖 GPU 块的数量(用于测试抢占)。
  • -max-num-batched-tokens :设置每次迭代的最大批处理令牌数。
  • -max-num-seqs :设置每次迭代的最大序列数。
  • -max-logprobs :设置返回的最大 logprobs 数量。
  • -max-model-len :模型上下文长度。如果未指定,将自动从模型配置中推导得出。

6. LoRA 与提示适配器

  • -lora-modules :指定 LoRA 模块的配置(name=path 或 JSON 格式)。
  • -prompt-adapters :指定提示适配器的配置(name=path 格式)。
  • -chat-template :指定聊天模板的文件路径或单行格式。
  • -chat-template-content-format :设置聊天模板内容的渲染格式,可选值为 autostringopenai,默认为 auto
  • -response-role :设置返回的响应角色,默认为 assistant
  • -enable-lora :是否启用 LoRA 支持,默认为 False
  • -max-loras :设置单批次中最大 LoRA 数量,默认为 1
  • -max-lora-rank :设置最大 LoRA 秩,默认为 16

7. 调度与流式输出

  • -num-scheduler-steps :设置每次调度的最大前向步数,默认为 1
  • -multi-step-stream-outputs :是否在多步中流式输出结果,默认为 True
  • -scheduler-delay-factor :在调度下一个提示之前应用延迟因子(乘以前一个提示的延迟时间),默认为 0.0
  • -enable-chunked-prefill :是否启用分块预填充(基于 max_num_batched_tokens),默认为 False
  • -scheduling-policy :设置调度策略,可选值为 fcfs(先到先服务)或 priority(优先级),默认为 fcfs
  • -scheduler-cls :指定调度器类,默认为 vllm.core.scheduler.Scheduler

8. 推测式解码

  • -speculative-model :指定用于推测式解码的草稿模型名称。
  • -speculative-model-quantization :指定草稿模型的量化方法,可选值与 -quantization 相同。
  • -num-speculative-tokens :设置从草稿模型中采样的推测令牌数量。
  • -speculative-disable-mqa-scorer :是否在推测式解码中禁用 MQA 评分器,默认为 False
  • -speculative-draft-tensor-parallel-size :设置草稿模型的张量并行规模。
  • -speculative-max-model-len :指定草稿模型支持的最大序列长度。
  • -speculative-disable-by-batch-size :如果新请求的排队数量超过此值,则禁用推测式解码。
  • -ngram-prompt-lookup-max :设置推测式解码中 n-gram 提示查找的最大窗口大小。
  • -ngram-prompt-lookup-min :设置推测式解码中 n-gram 提示查找的最小窗口大小。
  • -spec-decoding-acceptance-method :设置推测式解码中的令牌接受方法,可选值为 rejection_sampler 或 typical_acceptance_sampler,默认为 rejection_sampler
  • -typical-acceptance-sampler-posterior-threshold :设置典型接受采样器的后验概率下界阈值,默认为 0.09
  • -typical-acceptance-sampler-posterior-alpha :设置典型接受采样器的熵阈值缩放因子,默认为 0.3
  • -disable-logprobs-during-spec-decoding :是否在推测式解码中禁用 logprobs 计算,默认为 True

9. 多模态支持

  • -limit-mm-per-prompt :设置每个提示允许的多模态输入实例数量(如 image=16,video=2)。
  • -mm-processor-kwargs :覆盖多模态输入处理器(如图像处理器)的配置(JSON 格式)。
  • -disable-mm-preprocessor-cache :是否禁用多模态预处理器的缓存,默认为 False

10. 高级配置

  • -model-loader-extra-config :指定模型加载器的额外配置(JSON 格式)。
  • -ignore-patterns :设置加载模型时忽略的模式(如 original/**/*),默认为空列表。
  • -preemption-mode :设置抢占模式(如 recompute 或 swap)。
  • -served-model-name :指定 API 中使用的模型名称(支持多个名称)。
  • -qlora-adapter-name-or-path :指定 QLoRA 适配器的名称或路径。
  • -otlp-traces-endpoint :指定 OpenTelemetry 跟踪数据的目标 URL。
  • -collect-detailed-traces :设置是否收集详细跟踪数据(如 modelworkerall)。
  • -disable-async-output-proc :是否禁用异步输出处理,默认为 False
  • -override-neuron-config :覆盖或设置 Neuron 设备的配置(JSON 格式)。
  • -override-pooler-config :覆盖或设置池化模型的池化方法(JSON 格式)。
  • -compilation-config :设置模型的 torch.compile 配置(优化级别或 JSON 格式)。
  • -kv-transfer-config :设置分布式 KV 缓存传输的配置(JSON 格式)。
  • -worker-cls :指定分布式执行的 worker 类,默认为 auto
  • -generation-config :指定生成配置的文件夹路径(如 auto 或自定义路径)。
  • -override-generation-config :覆盖或设置生成配置(JSON 格式)。
  • -enable-sleep-mode :是否启用引擎的睡眠模式(仅支持 CUDA 平台),默认为 False
  • -calculate-kv-scales :是否动态计算 k_scale 和 v_scale(当 kv-cache-dtype 为 fp8 时),默认为 False
  • -additional-config :指定平台的额外配置(JSON 格式)。

11. 日志与调试

  • -disable-log-stats :是否禁用日志统计信息,默认为 False
  • -disable-log-requests :是否禁用请求日志,默认为 False
  • -max-log-len :设置日志中最大打印的提示字符数或提示 ID 数。
  • -return-tokens-as-token-ids :是否将单个令牌表示为 token_id:{token_id} 的字符串格式,默认为 False
  • -enable-prompt-tokens-details :是否在 usage 中返回提示令牌的详细信息,默认为 False

12. 其他

  • -disable-frontend-multiprocessing:如果启用,前端服务器将与模型服务引擎运行在同一个进程中,默认为 False
  • -enable-request-id-headers:如果启用,API 服务器将在响应头中添加 X-Request-Id注意:在高 QPS 下可能影响性能,默认为 False
  • -enable-auto-tool-choice:为支持的模型启用自动工具选择,需通过 -tool-call-parser 指定解析器,默认为 False
  • -enable-reasoning:是否启用模型的 reasoning_content 功能,如果启用,模型将能够生成推理内容,默认为 False
  • -reasoning-parser:根据使用的模型选择推理解析器,用于将推理内容解析为 OpenAI API 格式,需配合 -enable-reasoning 使用。
  • -tool-call-parser:根据使用的模型选择工具调用解析器,用于将模型生成的工具调用解析为 OpenAI API 格式,需配合 -enable-auto-tool-choice 使用。
  • -tool-parser-plugin:指定工具解析器插件的名称,用于解析模型生成的工具调用并转换为 OpenAI API 格式,插件名称需在 -tool-call-parser 中注册,默认为空字符串。
  • -tokenizer-pool-size:设置异步分词器的池大小,如果为 0,则使用同步分词,默认为 0
  • -tokenizer-pool-type:设置异步分词器的池类型(如 ray),如果 -tokenizer-pool-size0,则忽略此参数,默认为 ray
  • -tokenizer-pool-extra-config:设置异步分词器池的额外配置(JSON 格式),如果 -tokenizer-pool-size0,则忽略此参数。
  • -use-v2-block-manager[已弃用] 此参数不再影响 vLLM 的行为,因为自注意力块管理器(即块管理器 v2)现在是默认实现,默认为 True
  • -num-lookahead-slots:实验性调度配置,用于推测式解码,未来将被推测式解码配置替代,默认为 0
  • -long-prefill-token-threshold:对于分块预填充,如果提示长度超过此值,则被视为长提示,默认为模型上下文长度的 4%,默认为 0
  • -max-num-partial-prefills:设置分块预填充的最大并发部分预填充数,默认为 1
  • -max-long-partial-prefills:设置分块预填充中长提示的最大并发预填充数,如果小于 -max-num-partial-prefills,则允许短提示插队,默认为 1
  • -speculative-disable-by-batch-size:如果新请求的排队数量超过此值,则禁用推测式解码。
  • -speculative-disable-mqa-scorer:是否在推测式解码中禁用 MQA(多查询注意力)评分器,默认为 False
  • -speculative-draft-tensor-parallel-size:指定草稿模型的张量并行规模。
  • -speculative-max-model-len:指定草稿模型支持的最大序列长度,如果序列超过此长度,则跳过推测式解码。
  • -speculative-disable-by-batch-size:如果新请求的排队数量超过此值,则禁用推测式解码。
  • -ngram-prompt-lookup-max:设置推测式解码中 n-gram 提示查找的最大窗口大小。
  • -ngram-prompt-lookup-min:设置推测式解码中 n-gram 提示查找的最小窗口大小。
  • -spec-decoding-acceptance-method:设置推测式解码中的令牌接受方法,可选值为 rejection_samplertypical_acceptance_sampler,默认为 rejection_sampler
  • -typical-acceptance-sampler-posterior-threshold:设置典型接受采样器的后验概率下界阈值,默认为 0.09
  • -typical-acceptance-sampler-posterior-alpha:设置典型接受采样器的熵阈值缩放因子,默认为 0.3
  • -disable-logprobs-during-spec-decoding:是否在推测式解码中禁用 logprobs 计算,默认为 True

常规语言模型(Qwen2.5-72B-Instruct)

 

推理模型(R1-Distill-Qwen-32B)

多模态模型(Qwen2.5-VL-72B-Instruct)

embedding 模型(bce-embedding-base)

rerank 模型(bce-reranker-base)

 
百度云4机A800测试相机入门记录(1)购物篇
Loading...
SimonSun
SimonSun
Internet Malou, LLM Rookie, Bug Maker🤧
最新发布
服务器从零到 personal workspace
2025-3-21
VLLM 部署常用参数解释
2025-3-18
PPO(1)算法详解
2025-3-18
相机入门记录(1)购物篇
2025-3-18
Last Day of 2024
2025-3-18
郁闷记
2025-3-18
公告
🙌README🙌
🤯There is nothing left
in my right brain,
🤯and there is nothing right
in my left brain...
⭐I wish you every success⭐