Skip to content

参考

基于 vLLM 0.26.x 官方文档编写 —— Python API / CLI flag / 量化方案 / 采样参数 / 环境变量 / 指标 / 硬件支持矩阵

Python API

LLM —— 离线推理核心类

python
from vllm import LLM, SamplingParams

llm = LLM(
    model="Qwen/Qwen2.5-1.5B-Instruct",   # 必填:HF repo / 本地路径
    tensor_parallel_size=1,                # TP 数
    pipeline_parallel_size=1,              # PP 数
    dtype="auto",                          # auto / float16 / bfloat16 / float32 / float8
    quantization=None,                     # gptq / awq / fp8 / bitsandbytes / gguf
    gpu_memory_utilization=0.9,            # 显存占用上限
    max_model_len=None,                    # 最大上下文长度
    enable_prefix_caching=False,           # 前缀缓存
    enforce_eager=False,                   # 禁用 CUDA Graph(调试用)
    kv_cache_dtype="auto",                 # auto / fp8
    swap_space=4,                          # CPU swap 空间(GB)
    max_num_seqs=256,                      # 最大并发请求数
    download_dir=None,                     # 自定义模型下载目录
    trust_remote_code=False,               # 是否执行模型自带代码
)

LLM 主要方法

方法用途
llm.generate(prompts, sampling_params)文本补全式生成(不做 chat template)
llm.chat(messages, sampling_params)对话式生成(自动套 chat template)
llm.embed(prompts)文本向量化(需模型支持)
llm.encode(image)多模态图像编码

SamplingParams —— 采样参数

python
SamplingParams(
    n=1,                    # 每个 prompt 生成几条
    best_of=None,           # best-of-n 采样
    presence_penalty=0.0,
    frequency_penalty=0.0,
    repetition_penalty=1.0,
    temperature=1.0,
    top_p=1.0,
    top_k=-1,               # -1 表示禁用
    min_p=0.0,
    seed=None,
    stop=None,              # 停止字符串列表
    stop_token_ids=None,    # 停止 token id 列表
    max_tokens=16,          # 最大生成长度
    min_tokens=0,
    logprobs=None,          # 返回 top-N logprobs
    prompt_logprobs=None,
    guided_decoding=None,   # JSON / regex / choice 约束
)

RequestOutput —— 输出结构

python
@dataclass
class RequestOutput:
    request_id: str
    prompt: str
    prompt_token_ids: list[int]
    outputs: list[CompletionOutput]  # n 条结果
    finished: bool
    metrics: RequestMetrics          # TTFT / e2e / token 时间

@dataclass
class CompletionOutput:
    index: int
    text: str
    token_ids: list[int]
    cumulative_logprob: float
    logprobs: list[dict] | None
    finish_reason: str               # stop / length / ...
    stop_reason: int | str | None

CLI flag 全表(vllm serve)

Flag默认说明
--model必填模型 repo 或路径
--served-model-name=model对外暴露名(多别名用逗号)
--tokenizer=modeltokenizer 路径(与模型分离时用)
--revisionNoneHF 模型版本
--code-revisionNoneHF code 版本
--download-dir默认缓存下载目录
--load-formatautoauto / pt / safetensors / npcache / dummy
--dtypeautoauto / half / float16 / bfloat16 / float / float32 / float8
--kv-cache-dtypeautoauto / fp8 / fp8_e5m2 / fp8_e4m3
--quantizationNonegptq / awq / fp8 / bitsandbytes / gguf / ...
--quantization-fp8-dynamicFalseFP8 动态量化(输入 FP16)
--max-model-len模型 config最大上下文
--guided-decoding-backendoutlinesoutlines / lm-format-enforcer / xgrammar
--worker-use-rayFalse用 Ray 跑 worker(多节点)
--pipeline-parallel-size (-pp)1PP 数
--tensor-parallel-size (-tp)1TP 数
--max-parallel-loading-workers1并行加载 worker
--ray-workers-use-nsightFalseRay worker 用 nsight
--block-size16KV block 大小(8/16/32)
--enable-prefix-cachingFalse前缀缓存
--enable-chunked-prefill模型相关chunked prefill
--use-v2-block-managerTrue用 V2 block manager
--num-lookahead-slots0推测解码 lookahead
--seedNone随机种子
--swap-space4CPU swap 空间(GB)
--gpu-memory-utilization0.9显存上限比例
--max-num-batched-tokens模型相关单步最大 token
--max-num-seqs256最大并发
--max-logprobs20最大 logprobs 数
--disable-log-statsFalse关闭统计
--quantization-param-pathNone量化参数 yaml
--host127.0.0.1监听 IP
--port8000监听端口
--uvicorn-log-levelinfouvicorn 日志级
--allow-credentialsFalseCORS credentials
--allowed-origins["*"]CORS origins
--allowed-methods["*"]CORS methods
--allowed-headers["*"]CORS headers
--api-keyNoneAPI key
--served-model-name=model对外名
--chat-templateNone自定义 chat template(覆盖)
--response-roleassistantchat 响应 role
--ssl-keyfileNoneSSL 私钥
--ssl-certfileNoneSSL 证书
--ssl-ca-certsNoneSSL CA
--enable-server-load-trackingFalse服务端负载追踪
--disable-server-load-trackingTrue关闭
--speculative-modelNonedraft model
--num-speculative-tokensNone推测 token 数
--speculative-draft-tensor-parallel-sizeNonedraft 的 TP
--generation-configautoauto / vllm
--enable-prompt-tokens-detailsFalse返回 cached_tokens
--enable-auto-choicesFalse自动 choice
--enable-disable-log-requestsFalse禁请求日志
--max-request-len8192最大请求长度
--disable-frontend-multiprocessingFalse单进程前端

OpenAI 兼容 API

端点方法用途
/v1/modelsGET列出模型
/v1/chat/completionsPOST对话补全
/v1/completionsPOST文本补全
/v1/embeddingsPOST向量
/v1/audio/transcriptionsPOST语音识别
/v1/images/generationsPOST文生图
/v1/audio/speechPOSTTTS
/scorePOSTCross-encoder 评分
/classifyPOST分类
/rerankPOST重排序
/healthGET健康检查
/metricsGETPrometheus 指标
/loadGET加载状态

量化方案支持矩阵

方案CLI 参数硬件来源
FP16/BF16--dtype float16通用基准
GPTQ--quantization gptqNVIDIA / AMDHF 已量化模型
AWQ--quantization awqNVIDIAHF 已量化模型
FP8--quantization fp8Hopper(H100/Ada)硬件原生
BitsAndBytes--quantization bitsandbytesNVIDIA兜底
GGUF--quantization ggufNVIDIA / CPUllama.cpp 生态
SqueezeLLM--quantization squeezellmNVIDIA研究
DeepSpeedFP--quantization deepspeedfpNVIDIADeepSpeed
FBGEMM--quantization fbgemmNVIDIAMeta

环境变量

变量默认说明
VLLM_API_KEYNone等价 --api-key
VLLM_USE_MODELSCOPEfalse从 ModelScope 下载
VLLM_NO_USAGE_STATSfalse关闭使用统计上报
VLLM_DO_NOT_SHUTDOWN_ON_USAGE_ERRORfalse出错不退出
HF_TOKEN / HUGGING_FACE_HUB_TOKENNoneHF 私有模型访问
HF_HOME~/.cache/huggingfaceHF 缓存目录
CUDA_VISIBLE_DEVICES全部限定可见 GPU
NCCL_*-NCCL 通信调优
VLLM_TARGET_DEVICEcuda调试用(cpu/xpu)

Prometheus 指标

指标类型含义
vllm:num_requests_runningGauge运行中请求数
vllm:num_requests_waitingGauge队列请求数
vllm:num_requests_swappedGauge被 swap 的请求数
vllm:gpu_cache_usage_percGaugeKV Cache 占用率
vllm:cpu_cache_usage_percGaugeCPU swap 占用率
vllm:time_to_first_token_secondsHistogramTTFT
vllm:time_per_output_token_secondsHistogram单 token 生成时间
vllm:e2e_request_latency_secondsHistogram端到端延迟
vllm:request_inference_time_secondsHistogram推理时间
vllm:request_prompt_tokensHistogramprompt token 数
vllm:request_generation_tokensHistogram生成 token 数
vllm:request_max_num_generation_tokensHistogram最大生成长度

硬件支持矩阵

厂商架构支持程度备注
NVIDIAHopper(H100/H200)完整FP8 最佳
NVIDIAAda(L40S/L4/RTX 4090)完整FP8 也支持
NVIDIAAmpere(A100/A10/A30)完整BF16 主力
NVIDIAVolta(V100)部分无 BF16
AMDMI210/MI250/MI300完整ROCm 6.x
IntelXeon CPU / Arc / PVC部分XPU backend
AWSInferentia2/Trainium部分Neuron
GoogleTPU部分TPU backend
其他纯 CPU受限仅推理,慢

版本里程碑

版本时间重点
0.1.x2023.06首发,PagedAttention 论文配套
0.2.x2023.10AWQ 支持、Llama-2 优化
0.3.x2024.01TensorRT-LLM 部分对齐、streaming
0.4.x2024.04Speculative Decoding、Pipeline Parallel
0.5.x2024.07FP8 量化、多模态、Mistral/Mixtral 优化
0.6.x2024.09Chunked Prefill、v1 架构开始
0.7.x2024.12DeepSeek-V3/R1 优化
0.8.x2025.02v1 引擎稳定,性能大幅提升
0.9.x2025.04MTP(multi-token prediction)
0.10+2025.06+更多非 Transformer 架构、extended thinking

参考