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)
推理模型(R1-Distill-Qwen-32B)
多模态模型(Qwen2.5-VL-72B-Instruct)
embedding 模型(bce-embedding-base)
rerank 模型(bce-reranker-base)
- 作者:SimonSun
- 链接:https://simons-blog-eight.vercel.app//article/llm-9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。