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 的日志级别,可选值为debug,info,warning,error,critical,trace,默认为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_NONE,CERT_OPTIONAL,CERT_REQUIRED),默认为0。
-root-path:设置 FastAPI 的根路径前缀(用于路径路由代理)。
-middleware:添加额外的 ASGI 中间件,支持多个-middleware参数,值应为导入路径。
-disable-fastapi-docs:禁用 FastAPI 自动生成的 OpenAPI 文档和 UI。
2. 模型加载与初始化
-model:指定要加载的 HuggingFace 模型名称或路径,默认为facebook/opt-125m。
-task:指定模型的任务类型,可选值为auto,generate,embedding,embed,classify,score,reward,transcription,默认为auto。
-tokenizer:指定 HuggingFace 分词器的名称或路径,未指定时默认使用与模型相同的名称或路径。
-skip-tokenizer-init:跳过分词器初始化,默认为False。
-revision:指定模型的版本(如 Git 提交哈希、分支名或标签名)。
-code-revision:指定模型代码的版本。
-tokenizer-revision:指定分词器的版本。
-tokenizer-mode:设置分词器模式,可选值为auto,slow,mistral,custom,默认为auto。
-trust-remote-code:是否信任并加载远程代码(如自定义模型),默认为False。
-allowed-local-media-path:允许 API 请求从服务器文件系统读取本地图片或视频(需在受信任环境中启用)。
-download-dir:设置模型下载的缓存目录。
-load-format:指定模型权重加载格式,可选值为auto,pt,safetensors,npcache,dummy,tensorizer,sharded_state,gguf,bitsandbytes,mistral,runai_streamer,默认为auto。
-config-format:指定模型配置的格式,可选值为auto,hf,mistral,默认为auto。
-dtype:设置模型权重和激活的数据类型,可选值为auto,half,float16,bfloat16,float,float32,默认为auto。
-kv-cache-dtype:设置 KV 缓存的数据类型,可选值为auto,fp8,fp8_e5m2,fp8_e4m3,默认为auto。
-max-model-len:设置模型的最大上下文长度,未指定时从模型配置中自动推导。
-model-impl:指定模型的实现方式,可选值为auto,vllm,transformers,默认为auto。
3. 推理与生成
-guided-decoding-backend:指定基于规则的解码引擎,可选值为outlines,lm-format-enforcer,xgrammar,默认为xgrammar。
-logits-processor-pattern:指定允许的 logits 处理器模式(正则表达式)。
-max-seq-len-to-capture:设置 CUDA 图覆盖的最大序列长度。
-quantization:指定量化方法,可选值为aqlm,awq,deepspeedfp,tpu_int8,fp8,ptpc_fp8,fbgemm_fp8,modelopt,marlin,gguf,gptq_marlin_24,gptq_marlin,awq_marlin,gptq,compressed-tensors,bitsandbytes,qqq,hqq,experts_int8,neuron_quant,ipex,quark,moe_wna16,None。
-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:指定分布式执行后端,可选值为ray,mp,uni,external_launcher,默认为ray。
-pipeline-parallel-size:设置流水线并行的规模,默认为1。
-tensor-parallel-size:设置张量并行的规模,默认为1。
-max-parallel-loading-workers:设置最大并行加载工作线程数。
-ray-workers-use-nsight:是否使用 Nsight 性能分析工具监控 Ray worker,默认为False。
-block-size:设置令牌块的大小,可选值为8,16,32,64,128,默认为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:设置聊天模板内容的渲染格式,可选值为auto,string,openai,默认为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:设置是否收集详细跟踪数据(如model,worker,all)。
-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-size为0,则忽略此参数,默认为ray。
-tokenizer-pool-extra-config:设置异步分词器池的额外配置(JSON 格式),如果-tokenizer-pool-size为0,则忽略此参数。
-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_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。
常规语言模型(Qwen2.5-72B-Instruct)
- 启动脚本
- crul 测试
推理模型(R1-Distill-Qwen-32B)
- crul 测试
多模态模型(Qwen2.5-VL-72B-Instruct)
需要额外安装
pip install vllm[audio]- crul 测试
embedding 模型(bce-embedding-base)
- crul 测试
rerank 模型(bce-reranker-base)
- crul 测试
- 作者:SimonSun
- 链接:https://simonsun.xyz//article/llm-9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章









