離線 vllm deepseek L20 RAG部署

docker模式下vllm同時(shí)運(yùn)行Qwen3以及Deepseekr1和open-webui的過程

英偉達(dá)的容器兼容

因?yàn)槭请x線版, 所以無法使用 yum 方式安裝
建議先試用機(jī)器下載 rpm 然后進(jìn)行rpm -ivh的安裝.
注意建議根據(jù)依賴的順序進(jìn)行

nvidia-container-toolkit-1.17.7-1.x86_64.rpm
libnvidia-container1-1.17.7-1.x86_64.rpm
nvidia-container-toolkit-base-1.17.7-1.x86_64.rpm
libnvidia-container-tools-1.17.7-1.x86_64.rpm

注意還需要重啟一下容器:

systemctl restart docker 
xinference的快速部署
docker run -d \
  -v /root/models:/root/.xinference \
  -p 9997:9997 \
  --gpus all \
  xprobe/xinference:v1.5.1 \
  xinference-local -H 0.0.0.0

xinference的說明

理論上xinfernce里面是帶運(yùn)行大模型的工具的
但是我這邊用的比較少, 所以就沒有使用
轉(zhuǎn)而使用vllm進(jìn)行部署

vllm簡介

vLLM 是一款高性能的大語言模型(LLM)推理引擎,
專為快速、高效地部署和運(yùn)行大型語言模型而設(shè)計(jì)。
它通過優(yōu)化 GPU 利用率、內(nèi)存管理和并行計(jì)算,
顯著提升了 LLM 的推理速度,尤其在處理多用戶請(qǐng)求時(shí)表現(xiàn)出色。

核心特點(diǎn)

PagedAttention 技術(shù)
采用類似操作系統(tǒng)虛擬內(nèi)存的分頁機(jī)制管理注意力緩存(KV Cache),
解決傳統(tǒng)實(shí)現(xiàn)中的碎片化問題,大幅減少內(nèi)存碎片,提升內(nèi)存利用率。
支持連續(xù)批處理(Continuous Batching),動(dòng)態(tài)調(diào)整請(qǐng)求順序,提高吞吐量。

高性能推理

相比 Hugging Face Transformers 等傳統(tǒng)框架,
vLLM 在相同硬件條件下實(shí)現(xiàn)了高達(dá) 24 倍的吞吐量提升。
支持流式輸出(Streaming Output),
實(shí)時(shí)返回生成內(nèi)容,降低用戶感知延遲。

服務(wù)優(yōu)化

內(nèi)置 HTTP 服務(wù)器,提供 RESTful API,簡化部署流程。
支持模型量化(如 INT8、INT4)和半精度(FP16/BF16)推理,
降低內(nèi)存需求。

靈活性與兼容性

支持多種開源 LLM,如 LLaMA、Falcon、Mistral 等,
兼容 Hugging Face 模型格式。
提供 Python API 和命令行工具,方便集成到現(xiàn)有系統(tǒng)中。

適用場(chǎng)景

LLM 在線服務(wù):構(gòu)建高并發(fā)的 AI 聊天機(jī)器人、智能助手等。
多用戶應(yīng)用:支持同時(shí)處理大量用戶請(qǐng)求,保持低延遲。
資源受限環(huán)境:在有限 GPU 內(nèi)存下高效運(yùn)行大型模型。
硬件配置情況

四卡L20

顯存理論上是192G
但是實(shí)際上看到只有182G左右.
同時(shí)運(yùn)行Qwen3以及deepseek70b

docker run -d  --gpus all \
--ipc=host -p 8070:8000 -v /root/models:/root/models \
-e "PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128" \
--name=dsr1_70b vllm/vllm-openai:v0.8.5 \
--model /root/models/DeepSeek-R1-Distill-Llama-70B --trust-remote-code \
--served-model-name DeepSeek-R1-Distill-Llama-70B --max_num_seqs 10 \
--tensor-parallel-size 4   \
--enforce-eager --disable-custom-all-reduce --enable-auto-tool-choice \
--tool-call-parser hermes --compilation-config 0 \
--enable-reasoning --reasoning-parser deepseek_r1 \
--rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":40960}' \
--max-model-len 98304 \
--dtype half \
--kv_cache_dtype=fp8 \
--gpu-memory-utilization 0.55 \
--api-key=zhaobsh_l20_deepseek70b \
--quantization fp8 

以及千問8b

docker run -d  --gpus all \
--ipc=host -p 8032:8000 -v /root/models:/root/models \
-e "PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128" \
--name=qwen3_32b vllm/vllm-openai:v0.8.5 \
--model /root/models/Qwen3-32B --trust-remote-code \
--served-model-name Qwen3-32B --max_num_seqs 10 \
--tensor-parallel-size 4   \
--enforce-eager --disable-custom-all-reduce --enable-auto-tool-choice \
--tool-call-parser hermes --compilation-config 0 \
--enable-reasoning --reasoning-parser deepseek_r1 \
--rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":40960}' \
--max-model-len 10240 \
--dtype half \
--kv_cache_dtype=fp8 \
--gpu-memory-utilization 0.33 \
--quantization fp8 \
--api-key=zhaobsh_l20_qwen3_32b 
運(yùn)行open-webui
mkdir -p /data/open-webui
docker run -d -p 8080:8080 --add-host=host.docker.internal:host-gateway \
-v /data/open-webui:/app/backend/data \
--name open-webui --restart always \
open-webui/open-webui:v0.6.5

webui關(guān)聯(lián)大模型

注意 如果有參數(shù) --api-key 那么需要添加到配置里面
如果沒有 輸入 empty就可以了.

新增加大模型就可以地址一般為 vllm 映射的端口
ip:port/v1 就可以了.

參數(shù)說明

-p 8032:8000 端口映射 同時(shí)多個(gè)大模型運(yùn)行
--dtype bfloat16:
指定模型運(yùn)算使用 bfloat16 數(shù)據(jù)類型。
這有助于在保持較好的數(shù)值范圍的同時(shí),
減少顯存占用并加速計(jì)算。

--max_model_len 32384:
設(shè)置模型能處理的最大序列長度,支持長文本應(yīng)用。

--gpu_memory_utilization 0.8:
指示 vLLM 使用最多 80% 的可用 GPU 顯存,
為系統(tǒng)和其他開銷保留余量。

--quantization fp8:
模型的權(quán)重進(jìn)行 FP8 量化。這是一個(gè)關(guān)鍵的優(yōu)化,
能顯著減小模型體積,降低顯存需求。

--enforce-eager:
強(qiáng)制 vLLM 在 Eager Mode (動(dòng)態(tài)圖模式) 下運(yùn)行。
這通常意味著更快的啟動(dòng)(無需圖編譯/捕捉),
有時(shí)對(duì)某些模型或調(diào)試場(chǎng)景更友好,但可能會(huì)犧牲一些極致的推理性能。

  1. --max-model-len
    此參數(shù)控制vLLM服務(wù)的最大位置嵌入(max_position_embeddings)長度。
    減小此值可以降低內(nèi)存需求,緩解OOM問題。

  2. --gpu-memory-utilization
    此參數(shù)設(shè)置GPU內(nèi)存的利用比例,范圍是0到1。默認(rèn)值為0.9,
    表示vLLM預(yù)分配90%的GPU內(nèi)存。如果顯存不足,可以減小此值以降低需求。

  3. offload_weights=True
    通過將模型權(quán)重轉(zhuǎn)移到CPU內(nèi)存,可以減少GPU顯存的占用,
    這在多卡并行時(shí)非常有用。

  4. 限制批處理規(guī)模
    減少max_batch_size和max_num_seqs,
    即最大批處理大小和最大并發(fā)序列數(shù)量,可以降低內(nèi)存需求。

  5. 啟用顯存卸載
    在vLLM中支持顯存卸載,這可以有效減少內(nèi)存占用,
    尤其是在使用大型模型時(shí)。

  6. 調(diào)整并行處理策略
    調(diào)整tensor_parallel_size參數(shù),根據(jù)實(shí)際的GPU數(shù)量配置合適的并行處理規(guī)模,
    以避免過多的顯存開銷。
    通過這些調(diào)整,可以在性能和內(nèi)存效率之間取得平衡,避免OOM問題。
    需要根據(jù)模型大小和實(shí)際硬件條件進(jìn)行具體的配置調(diào)整。
    官方的參數(shù)

usage: vllm serve [-h] [--model MODEL]
                  [--task {auto,generate,embedding,embed,classify,score,reward,transcription}]
                  [--tokenizer TOKENIZER] [--hf-config-path HF_CONFIG_PATH]
                  [--skip-tokenizer-init] [--revision REVISION]
                  [--code-revision CODE_REVISION]
                  [--tokenizer-revision TOKENIZER_REVISION]
                  [--tokenizer-mode {auto,slow,mistral,custom}]
                  [--trust-remote-code]
                  [--allowed-local-media-path ALLOWED_LOCAL_MEDIA_PATH]
                  [--download-dir DOWNLOAD_DIR]
                  [--load-format {auto,pt,safetensors,npcache,dummy,tensorizer,sharded_state,gguf,bitsandbytes,mistral,runai_streamer}]
                  [--config-format {auto,hf,mistral}]
                  [--dtype {auto,half,float16,bfloat16,float,float32}]
                  [--kv-cache-dtype {auto,fp8,fp8_e5m2,fp8_e4m3}]
                  [--max-model-len MAX_MODEL_LEN]
                  [--guided-decoding-backend GUIDED_DECODING_BACKEND]
                  [--logits-processor-pattern LOGITS_PROCESSOR_PATTERN]
                  [--model-impl {auto,vllm,transformers}]
                  [--distributed-executor-backend {ray,mp,uni,external_launcher}]
                  [--pipeline-parallel-size PIPELINE_PARALLEL_SIZE]
                  [--tensor-parallel-size TENSOR_PARALLEL_SIZE]
                  [--enable-expert-parallel]
                  [--max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS]
                  [--ray-workers-use-nsight] [--block-size {8,16,32,64,128}]
                  [--enable-prefix-caching | --no-enable-prefix-caching]
                  [--disable-sliding-window] [--use-v2-block-manager]
                  [--num-lookahead-slots NUM_LOOKAHEAD_SLOTS] [--seed SEED]
                  [--swap-space SWAP_SPACE] [--cpu-offload-gb CPU_OFFLOAD_GB]
                  [--gpu-memory-utilization GPU_MEMORY_UTILIZATION]
                  [--num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE]
                  [--max-num-batched-tokens MAX_NUM_BATCHED_TOKENS]
                  [--max-num-partial-prefills MAX_NUM_PARTIAL_PREFILLS]
                  [--max-long-partial-prefills MAX_LONG_PARTIAL_PREFILLS]
                  [--long-prefill-token-threshold LONG_PREFILL_TOKEN_THRESHOLD]
                  [--max-num-seqs MAX_NUM_SEQS] [--max-logprobs MAX_LOGPROBS]
                  [--disable-log-stats]
                  [--quantization {aqlm,awq,deepspeedfp,tpu_int8,fp8,ptpc_fp8,fbgemm_fp8,modelopt,nvfp4,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_SCALING] [--rope-theta ROPE_THETA]
                  [--hf-overrides HF_OVERRIDES] [--enforce-eager]
                  [--max-seq-len-to-capture MAX_SEQ_LEN_TO_CAPTURE]
                  [--disable-custom-all-reduce]
                  [--tokenizer-pool-size TOKENIZER_POOL_SIZE]
                  [--tokenizer-pool-type TOKENIZER_POOL_TYPE]
                  [--tokenizer-pool-extra-config TOKENIZER_POOL_EXTRA_CONFIG]
                  [--limit-mm-per-prompt LIMIT_MM_PER_PROMPT]
                  [--mm-processor-kwargs MM_PROCESSOR_KWARGS]
                  [--disable-mm-preprocessor-cache] [--enable-lora]
                  [--enable-lora-bias] [--max-loras MAX_LORAS]
                  [--max-lora-rank MAX_LORA_RANK]
                  [--lora-extra-vocab-size LORA_EXTRA_VOCAB_SIZE]
                  [--lora-dtype {auto,float16,bfloat16}]
                  [--long-lora-scaling-factors LONG_LORA_SCALING_FACTORS]
                  [--max-cpu-loras MAX_CPU_LORAS] [--fully-sharded-loras]
                  [--enable-prompt-adapter]
                  [--max-prompt-adapters MAX_PROMPT_ADAPTERS]
                  [--max-prompt-adapter-token MAX_PROMPT_ADAPTER_TOKEN]
                  [--device {auto,cuda,neuron,cpu,openvino,tpu,xpu,hpu}]
                  [--num-scheduler-steps NUM_SCHEDULER_STEPS]
                  [--use-tqdm-on-load | --no-use-tqdm-on-load]
                  [--multi-step-stream-outputs [MULTI_STEP_STREAM_OUTPUTS]]
                  [--scheduler-delay-factor SCHEDULER_DELAY_FACTOR]
                  [--enable-chunked-prefill [ENABLE_CHUNKED_PREFILL]]
                  [--speculative-model SPECULATIVE_MODEL]
                  [--speculative-model-quantization {aqlm,awq,deepspeedfp,tpu_int8,fp8,ptpc_fp8,fbgemm_fp8,modelopt,nvfp4,marlin,gguf,gptq_marlin_24,gptq_marlin,awq_marlin,gptq,compressed-tensors,bitsandbytes,qqq,hqq,experts_int8,neuron_quant,ipex,quark,moe_wna16,None}]
                  [--num-speculative-tokens NUM_SPECULATIVE_TOKENS]
                  [--speculative-disable-mqa-scorer]
                  [--speculative-draft-tensor-parallel-size SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE]
                  [--speculative-max-model-len SPECULATIVE_MAX_MODEL_LEN]
                  [--speculative-disable-by-batch-size SPECULATIVE_DISABLE_BY_BATCH_SIZE]
                  [--ngram-prompt-lookup-max NGRAM_PROMPT_LOOKUP_MAX]
                  [--ngram-prompt-lookup-min NGRAM_PROMPT_LOOKUP_MIN]
                  [--spec-decoding-acceptance-method {rejection_sampler,typical_acceptance_sampler}]
                  [--typical-acceptance-sampler-posterior-threshold TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_THRESHOLD]
                  [--typical-acceptance-sampler-posterior-alpha TYPICAL_ACCEPTANCE_SAMPLER_POSTERIOR_ALPHA]
                  [--disable-logprobs-during-spec-decoding [DISABLE_LOGPROBS_DURING_SPEC_DECODING]]
                  [--model-loader-extra-config MODEL_LOADER_EXTRA_CONFIG]
                  [--ignore-patterns IGNORE_PATTERNS]
                  [--preemption-mode PREEMPTION_MODE]
                  [--served-model-name SERVED_MODEL_NAME [SERVED_MODEL_NAME ...]]
                  [--qlora-adapter-name-or-path QLORA_ADAPTER_NAME_OR_PATH]
                  [--show-hidden-metrics-for-version SHOW_HIDDEN_METRICS_FOR_VERSION]
                  [--otlp-traces-endpoint OTLP_TRACES_ENDPOINT]
                  [--collect-detailed-traces COLLECT_DETAILED_TRACES]
                  [--disable-async-output-proc]
                  [--scheduling-policy {fcfs,priority}]
                  [--scheduler-cls SCHEDULER_CLS]
                  [--override-neuron-config OVERRIDE_NEURON_CONFIG]
                  [--override-pooler-config OVERRIDE_POOLER_CONFIG]
                  [--compilation-config COMPILATION_CONFIG]
                  [--kv-transfer-config KV_TRANSFER_CONFIG]
                  [--worker-cls WORKER_CLS]
                  [--worker-extension-cls WORKER_EXTENSION_CLS]
                  [--generation-config GENERATION_CONFIG]
                  [--override-generation-config OVERRIDE_GENERATION_CONFIG]
                  [--enable-sleep-mode] [--calculate-kv-scales]
                  [--additional-config ADDITIONAL_CONFIG] [--enable-reasoning]
                  [--reasoning-parser {deepseek_r1}]

命名參數(shù)
--model
要使用的 Huggingface 模型的名稱或路徑。
默認(rèn)值:"facebook/opt-125m"

--task
可選值:
auto, generate, embedding, embed,
classify, score, reward, transcription
模型的任務(wù)類型:每個(gè) vLLM 實(shí)例僅支持一個(gè)任務(wù),
即使同一模型可以用于多個(gè)任務(wù)。當(dāng)模型僅支持一個(gè)任務(wù)時(shí),
可以使用 "auto" 自動(dòng)選擇;否則,必須明確指定要使用的任務(wù)。
默認(rèn)值:"auto"

--tokenizer
要使用的 Huggingface 分詞器的名稱或路徑
如果未指定,則使用模型的名稱或路徑。

--hf-config-path
要使用的 Huggingface 配置文件的名稱或路徑。
如果未指定,則使用模型的名稱或路徑。

--skip-tokenizer-init
跳過分詞器和反分詞器的初始化。
期望輸入中包含有效的 prompt_token_ids,
并且 prompt 為 None。生成的輸出將包含 token ID。

--revision
要使用的特定模型版本??梢允欠种Q、
標(biāo)簽名稱或提交 ID。如果未指定,則使用默認(rèn)版本。

--code-revision
Hugging Face Hub 上模型代碼的特定版本。
可以是分支名稱、標(biāo)簽名稱或提交 ID。如果未指定,則使用默認(rèn)版本。

--tokenizer-revision
要使用的 Huggingface 分詞器的版本。
可以是分支名稱、標(biāo)簽名稱或提交 ID。如果未指定,則使用默認(rèn)版本。

--tokenizer-mode
可選值:auto, slow, mistral, custom
分詞器模式。
"auto":如果可用,則使用快速分詞器。
"slow":始終使用慢速分詞器。
"mistral":始終使用 mistral_common 分詞器。
"custom":使用 --tokenizer 選擇預(yù)注冊(cè)的分詞器。
默認(rèn)值:"auto"

--trust-remote-code
信任來自 Huggingface 的遠(yuǎn)程代碼。

--allowed-local-media-path
允許 API 請(qǐng)求從服務(wù)器文件系統(tǒng)指定的目錄中讀取本地圖像或視頻。
這是一個(gè)安全風(fēng)險(xiǎn),應(yīng)僅在受信任的環(huán)境中啟用。

--download-dir
下載和加載權(quán)重的目錄,
默認(rèn)為 Huggingface 的默認(rèn)緩存目錄。

--load-format
可選值:
auto, pt, safetensors, npcache,
dummy, tensorizer, sharded_state,
gguf, bitsandbytes, mistral, runai_streamer
加載模型權(quán)重的格式。
"auto":
嘗試以 safetensors 格式加載權(quán)重,
如果不可用,則回退到 pytorch bin 格式。
"pt":
以 pytorch bin 格式加載權(quán)重。
"safetensors":
以 safetensors 格式加載權(quán)重。
"npcache":
以 pytorch 格式加載權(quán)重,并存儲(chǔ) numpy 緩存以加速加載。
"dummy":
用隨機(jī)值初始化權(quán)重,主要用于性能分析。
"tensorizer":
使用 CoreWeave 的 tensorizer 加載權(quán)重。
有關(guān)更多信息,請(qǐng)參閱示例部分中的 Tensorize vLLM Model 腳本。
"runai_streamer":
使用 Run:ai Model Streamer 加載 Safetensors 權(quán)重。
"bitsandbytes":
使用 bitsandbytes 量化加載權(quán)重。
默認(rèn)值: "auto"

--config-format
可選值: auto, hf, mistral
加載模型配置的格式。

"auto":如果可用,則嘗試以 hf 格式加載配置
否則嘗試以 mistral 格式加載。
默認(rèn)值:"ConfigFormat.AUTO"

--dtype
可選值: auto, half, float16,
bfloat16, float, float32
模型權(quán)重和激活的數(shù)據(jù)類型。
"auto":
對(duì)于 FP32 和 FP16 模型,使用 FP16 精度;
對(duì)于 BF16 模型,使用 BF16 精度。
"half":
使用 FP16 精度。推薦用于 AWQ 量化。
"float16":
與 "half" 相同。
"bfloat16":
在精度和范圍之間取得平衡。
"float":
FP32 精度的簡寫。
"float32":
使用 FP32 精度。
默認(rèn)值: "auto"

--kv-cache-dtype
可選值: auto, fp8, fp8_e5m2, fp8_e4m3
KV 緩存存儲(chǔ)的數(shù)據(jù)類型。如果為 "auto",
則使用模型的數(shù)據(jù)類型。
CUDA 11.8+ 支持 fp8(即 fp8_e4m3)和 fp8_e5m2。
ROCm (AMD GPU) 支持 fp8(即 fp8_e4m3)。
默認(rèn)值: "auto"

--max-model-len
模型的上下文長度。如果未指定,則從模型配置中自動(dòng)推導(dǎo)。

--guided-decoding-backend
默認(rèn)將用于引導(dǎo)解碼(JSON 模式 / 正則表達(dá)式等)的引擎。
目前支持 outlines-dev/outlines、mlc-ai/xgrammar
和 noamgat/lm-format-enforcer??梢酝ㄟ^ guided_decoding_backend
參數(shù)在每個(gè)請(qǐng)求中覆蓋??梢栽诤蠖嗣Q后附加逗號(hào)分隔的列表來提供后端特定的選項(xiàng)。
有效的后端及其所有可用選項(xiàng)為:
[xgrammar:no-fallback, xgrammar:disable-any-whitespace, outlines:no-fallback, lm-format-enforcer:no-fallback]。
默認(rèn)值:"xgrammar"

--logits-processor-pattern
可選的正則表達(dá)式模式,
指定可以通過 logits_processors 額外完成參數(shù)傳遞的有效
logits 處理器限定名稱。
默認(rèn)為 None,表示不允許任何處理器。

--model-impl
可選值: auto, vllm, transformers
要使用的模型實(shí)現(xiàn)。
"auto":
如果存在 vLLM 實(shí)現(xiàn),則嘗試使用 vLLM 實(shí)現(xiàn);
否則回退到 Transformers 實(shí)現(xiàn)。
"vllm":
使用 vLLM 模型實(shí)現(xiàn)。
"transformers":
使用 Transformers 模型實(shí)現(xiàn)。
默認(rèn)值:"auto"

--distributed-executor-backend
可選值: ray, mp, uni, external_launcher
用于分布式模型工作者的后端,
可以是「ray」或「mp(多進(jìn)程)」。
如果 pipeline_parallel_size 和 tensor_parallel_size 的乘積小于或等于可用 GPU 的數(shù)量,
則將使用「mp」以保持在單個(gè)主機(jī)上處理。否則,如果安裝了 Ray,則默認(rèn)使用「ray」,
否則會(huì)失敗。注意,TPU 僅支持 Ray 進(jìn)行分布式推理。

--pipeline-parallel-size, -pp
流水線階段的數(shù)量。
默認(rèn)值:1

--tensor-parallel-size, -tp
張量并行副本的數(shù)量。
默認(rèn)值:1

--enable-expert-parallel
對(duì) MoE 層使用專家并行而不是張量并行。

--max-parallel-loading-workers
以多個(gè)批次順序加載模型
以避免在使用張量并行和大模型時(shí)出現(xiàn) RAM 內(nèi)存不足 (OOM)。

--ray-workers-use-nsight
如果指定,則使用 nsight 分析 Ray 工作線程。

--block-size
可選值: 8, 16, 32, 64, 128
連續(xù) token 塊的 token 塊大小。
在 neuron 設(shè)備上忽略此參數(shù),并設(shè)置為 --max-model-len。
在 CUDA 設(shè)備上,僅支持最大為 32 的塊大小。
在 HPU 設(shè)備上,塊大小默認(rèn)為 128。

--enable-prefix-caching, --no-enable-prefix-caching
啟用自動(dòng)前綴緩存。使用 --no-enable-prefix-caching 顯式禁用。

--disable-sliding-window
禁用滑動(dòng)窗口,限制為滑動(dòng)窗口大小。

--use-v2-block-manager
[已棄用] 塊管理器 v1 已被移除,SelfAttnBlockSpaceManager(即塊管理器 v2)現(xiàn)在是默認(rèn)值
將此標(biāo)志設(shè)置為 True 或 False 對(duì) vLLM 行為沒有影響。

--num-lookahead-slots
推測(cè)解碼所需的實(shí)驗(yàn)性調(diào)度配置。未來將被推測(cè)配置取代;
目前用于支持正確性測(cè)試。
默認(rèn)值:0

--seed
操作的隨機(jī)種子。

--swap-space
每個(gè) GPU 的 CPU 交換空間大小 (GiB)。
默認(rèn)值:4

--cpu-offload-gb
每個(gè) GPU 卸載到 CPU 的空間 (GiB)
默認(rèn)值為 0,表示不卸載。
直觀地說,此參數(shù)可以看作是一種虛擬增加 GPU 內(nèi)存大小的方法。
例如,如果你有一個(gè) 24 GB 的 GPU 并將此值設(shè)置為 10,
則虛擬上可以將其視為 34 GB 的 GPU。
然后你可以加載一個(gè) 13B 的 BF16 權(quán)重模型,
該模型至少需要 26 GB 的 GPU 內(nèi)存。
請(qǐng)注意,這需要快速的 CPU-GPU 互連,
因?yàn)椴糠帜P蜁?huì)在每次模型前向傳遞時(shí)從 CPU 內(nèi)存動(dòng)態(tài)加載到 GPU 內(nèi)存。
默認(rèn)值:0

--gpu-memory-utilization
用于模型執(zhí)行器的 GPU 內(nèi)存比例,范圍為 0 到 1。
例如,值為 0.5 表示 50% 的 GPU 內(nèi)存利用率。
如果未指定,則使用默認(rèn)值 0.9。這是每個(gè)實(shí)例的限制,
僅適用于當(dāng)前的 vLLM 實(shí)例。
即使在同一 GPU 上運(yùn)行另一個(gè) vLLM 實(shí)例,也不會(huì)影響此設(shè)置。
例如,如果你在同一 GPU 上運(yùn)行兩個(gè) vLLM 實(shí)例,可以將每個(gè)實(shí)例的 GPU 內(nèi)存利用率設(shè)置為 0.5。
默認(rèn)值:0.9

--num-gpu-blocks-override
如果指定,則忽略 GPU 分析結(jié)果并使用此 GPU 塊數(shù)。用于測(cè)試搶占。

--max-num-batched-tokens
每次迭代的最大批處理 token 數(shù)。

--max-num-partial-prefills
對(duì)于分塊預(yù)填充,最大并發(fā)部分預(yù)填充數(shù)。默認(rèn)為 1。
默認(rèn)值:1

--max-long-partial-prefills
對(duì)于分塊預(yù)填充,超過 --long-prefill-token-threshold 的提示詞的最大并發(fā)預(yù)填充數(shù)。
將此值設(shè)置為小于 --max-num-partial-prefills
可以在某些情況下允許較短的提示詞插隊(duì)到較長的提示詞前面,從而改善延遲。默認(rèn)為 1。
默認(rèn)值:1

--long-prefill-token-threshold
對(duì)于分塊預(yù)填充,如果提示詞長度超過此 token 數(shù),則視為長提示詞。
默認(rèn)為模型上下文長度的 4%。
默認(rèn)值:0

--max-num-seqs
每次迭代的最大序列數(shù)。

--max-logprobs
返回的最大 log probs 數(shù),logprobs 在 SamplingParams 中指定。
默認(rèn)值:20

--disable-log-stats
禁用統(tǒng)計(jì)日志記錄。

--quantization, -q
可選值:
aqlm, awq, deepspeedfp, tpu_int8, fp8, ptpc_fp8,
fbgemm_fp8, modelopt, nvfp4, marlin, gguf,
gptq_marlin_24, gptq_marlin, awq_marlin, gptq,
compressed-tensors, bitsandbytes, qqq, hqq,
experts_int8, neuron_quant, ipex, quark, moe_wna16, None

用于量化權(quán)重的方法。如果為 None,
則首先檢查模型配置文件中的 quantization_config 屬性。
如果該屬性為 None,則假定模型權(quán)重未量化,
并使用 dtype 確定權(quán)重的數(shù)據(jù)類型。

--rope-scaling
RoPE 縮放的 JSON 格式配置。例如: {"rope_type":"dynamic","factor":2.0}。

--rope-theta
RoPE 的 theta 值。與 rope_scaling 一起使用。
在某些情況下,更改 RoPE 的 theta 值可以提高縮放模型的性能。

--hf-overrides
HuggingFace 配置的額外參數(shù)。
這應(yīng)該是一個(gè) JSON 字符串,將被解析為字典。

--enforce-eager
始終使用 eager 模式的 PyTorch。
如果為 False,則將在混合模式下使用 eager 模式和 CUDA 圖,
以實(shí)現(xiàn)最佳性能和靈活性。

--max-seq-len-to-capture
CUDA 圖覆蓋的最大序列長度。當(dāng)序列的上下文長度超過此值時(shí),
將回退到 eager 模式。此外,對(duì)于編碼器-解碼器模型,
如果編碼器輸入的序列長度超過此值,也將回退到 eager 模式。
默認(rèn)值:8192

--disable-custom-all-reduce
參見 ParallelConfig。

--tokenizer-pool-size
用于異步分詞的分詞器池大小。如果為 0,則使用同步分詞。
默認(rèn)值:0

--tokenizer-pool-type
用于異步分詞的分詞器池類型。
如果 tokenizer_pool_size 為 0,則忽略此參數(shù)。
默認(rèn)值:「ray」

--tokenizer-pool-extra-config
分詞器池的額外配置。這應(yīng)該是一個(gè) JSON 字符串,將被解析為字典。
如果 tokenizer_pool_size 為 0,則忽略此參數(shù)。

--limit-mm-per-prompt
對(duì)于每個(gè)多模態(tài)插件,可以設(shè)置每個(gè)提示詞允許的輸入實(shí)例數(shù)量。
輸入格式為逗號(hào)分隔的列表,例如:「image=16,video=2」,
表示每個(gè)提示詞最多允許上傳 16 張圖片和 2 個(gè)視頻。如果不進(jìn)行設(shè)置,
系統(tǒng)默認(rèn)每種模態(tài)最多允許 1 個(gè)輸入實(shí)例。

--mm-processor-kwargs
多模態(tài)輸入映射/處理的覆蓋配置,例如圖像處理器。
例如: {"num_crops": 4}。

--disable-mm-preprocessor-cache
如果為 true,則禁用多模態(tài)預(yù)處理器/映射器的緩存。(不推薦)

--enable-lora
如果為 True,則啟用 LoRA 適配器的處理。

--enable-lora-bias
如果為 True,則為 LoRA 適配器啟用偏置。

--max-loras
單個(gè)批次中 LoRA 的最大數(shù)量。
默認(rèn)值:1

--max-lora-rank
LoRA 的最大秩。
默認(rèn)值:16

--lora-extra-vocab-size
LoRA 適配器中可能存在的額外詞匯表的最大大小
(添加到基礎(chǔ)模型詞匯表中)。
默認(rèn)值:256

--lora-dtype
可選值:auto, float16, bfloat16
LoRA 的數(shù)據(jù)類型。如果為 auto,則默認(rèn)為基礎(chǔ)模型的數(shù)據(jù)類型。
默認(rèn)值:「auto」

--long-lora-scaling-factors
指定多個(gè)縮放因子(可以與基礎(chǔ)模型的縮放因子不同,例如 Long LoRA),
以允許同時(shí)使用使用這些縮放因子訓(xùn)練的多個(gè) LoRA 適配器。如果未指定,
則僅允許使用基礎(chǔ)模型縮放因子訓(xùn)練的適配器。

--max-cpu-loras
存儲(chǔ)在 CPU 內(nèi)存中的 LoRA 的最大數(shù)量。
必須大于或等于 max_loras。默認(rèn)為 max_loras。

--fully-sharded-loras
默認(rèn)情況下,LoRA 計(jì)算的一半通過張量并行進(jìn)行分片。
啟用此選項(xiàng)將使用完全分片的層。在高序列長度、
最大秩或張量并行大小的情況下,這可能會(huì)更快。

--enable-prompt-adapter
如果為 True,則啟用 PromptAdapters 的處理。

--max-prompt-adapters
單個(gè)批次中 PromptAdapters 的最大數(shù)量。
默認(rèn)值:1

--max-prompt-adapter-token
PromptAdapters 的最大 token 數(shù)量。
默認(rèn)值:0

--device
可選值: auto, cuda, neuron, cpu, openvino, tpu, xpu, hpu
vLLM 執(zhí)行的設(shè)備類型。
默認(rèn)值:「auto」

--num-scheduler-steps
每次調(diào)度器調(diào)用的最大前向步驟數(shù)。
默認(rèn)值:1

--use-tqdm-on-load, --no-use-tqdm-on-load
加載模型權(quán)重時(shí)是否啟用/禁用進(jìn)度條。
默認(rèn)值:True

--multi-step-stream-outputs
如果為 False,則多步驟將在所有步驟結(jié)束時(shí)流式輸出。
默認(rèn)值:True

--scheduler-delay-factor
在調(diào)度下一個(gè)提示詞之前應(yīng)用延遲(延遲因子乘以前一個(gè)提示詞的延遲)。
默認(rèn)值:0.0

--enable-chunked-prefill
如果設(shè)置,則可以根據(jù) max_num_batched_tokens 對(duì)預(yù)填充請(qǐng)求進(jìn)行分塊處理。

--speculative-config
關(guān)于推測(cè)性解碼的配置。應(yīng)為一個(gè)JSON格式的字符串。

--speculative-model
用于推測(cè)解碼的草稿模型的名稱。

--speculative-model-quantization
可選值:
aqlm, awq, deepspeedfp, tpu_int8, fp8, ptpc_fp8,
fbgemm_fp8, modelopt, nvfp4, marlin, gguf, gptq_marlin_24,
gptq_marlin, awq_marlin, gptq, compressed-tensors,
bitsandbytes, qqq, hqq, experts_int8, neuron_quant,
ipex, quark, moe_wna16, None

用于量化草稿模型權(quán)重的方法。如果為 None,則首先檢查模型配置文件中的 quantization_config 屬性。
如果該屬性為 None,則假定模型權(quán)重未量化,并使用 dtype 確定權(quán)重的數(shù)據(jù)類型。

--num-speculative-tokens
在推測(cè)解碼中從草稿模型中采樣的推測(cè) token 數(shù)量。

--speculative-disable-mqa-scorer
如果設(shè)置為 True,則在推測(cè)解碼中禁用 MQA 評(píng)分器,并回退到批次擴(kuò)展。

--speculative-draft-tensor-parallel-size, -spec-draft-tp
推測(cè)解碼中草稿模型的張量并行副本數(shù)量。

--speculative-max-model-len
草稿模型支持的最大序列長度。超過此長度的序列將跳過推測(cè)。

--speculative-disable-by-batch-size
如果排隊(duì)請(qǐng)求的數(shù)量超過此值,則對(duì)新傳入的請(qǐng)求禁用推測(cè)解碼。

--ngram-prompt-lookup-max
推測(cè)解碼中 ngram 提示詞查找窗口的最大大小。

--ngram-prompt-lookup-min
推測(cè)解碼中 ngram 提示詞查找窗口的最小大小。

--spec-decoding-acceptance-method
可選值: rejection_sampler, typical_acceptance_sampler
指定在推測(cè)解碼中草稿 token 驗(yàn)證期間使用的接受方法。
支持兩種類型的接受例程:

  1. RejectionSampler,不允許更改草稿 token 的接受率;
  2. TypicalAcceptanceSampler,可配置,允許以質(zhì)量為代價(jià)提高接受率,反之亦然。
    默認(rèn)值:「rejection_sampler」

--typical-acceptance-sampler-posterior-threshold
設(shè)置 token 被接受的后驗(yàn)概率的下限閾值。
此閾值由 TypicalAcceptanceSampler 在推測(cè)解碼期間用于做出采樣決策。
默認(rèn)值為 0.09。

--typical-acceptance-sampler-posterior-alpha
TypicalAcceptanceSampler 中基于熵的 token 接受閾值的縮放因子。
通常默認(rèn)為 --typical-acceptance-sampler-posterior-threshold 的平方根,即 0.3。

--disable-logprobs-during-spec-decoding
如果設(shè)置為 True,則在推測(cè)解碼期間不返回 token 的對(duì)數(shù)概率。
如果設(shè)置為 False,則根據(jù) SamplingParams 中的設(shè)置返回對(duì)數(shù)概率。
如果未指定,則默認(rèn)為 True。在推測(cè)解碼期間禁用對(duì)數(shù)概率可以減少延遲,
因?yàn)樘^了提議采樣、目標(biāo)采樣和確定接受 token 后的對(duì)數(shù)概率計(jì)算。

--model-loader-extra-config
這是為模型加載器提供的額外配置信息。它將傳遞給與所選加載格式
(load_format) 對(duì)應(yīng)的模型加載器。這個(gè)配置信息需要是一個(gè) JSON 格式的字符串,
之后會(huì)被解析為一個(gè)字典。

--ignore-patterns
加載模型時(shí)要忽略的模式。默認(rèn)為 original/*/,
以避免重復(fù)加載 llama 的檢查點(diǎn)。
默認(rèn)值:[]

--preemption-mode
如果為 'recompute',則引擎通過重新計(jì)算執(zhí)行搶占;
如果為 'swap',則引擎通過塊交換執(zhí)行搶占。

--served-model-name
API 中使用的模型名稱。如果提供了多個(gè)名稱,
服務(wù)器將響應(yīng)提供的任何名稱。響應(yīng)中模型字段的模型名稱將是此列表中的第一個(gè)名稱。
如果未指定,模型名稱將與 --model 參數(shù)相同。
請(qǐng)注意,此名稱也將用于 Prometheus 指標(biāo)的 model_name 標(biāo)簽內(nèi)容,
如果提供了多個(gè)名稱,則 metrics 標(biāo)簽將采用第一個(gè)名稱。

--qlora-adapter-name-or-path
QLoRA 適配器的名稱或路徑。

--show-hidden-metrics-for-version
啟用自指定版本以來已隱藏的已棄用 Prometheus 指標(biāo)。
例如,如果某個(gè)先前已棄用的指標(biāo)自 v0.7.0 版本以來已隱藏,
則可以使用 --show-hidden-metrics-for-version=0.7 作為臨時(shí)解決方案,
同時(shí)遷移到新指標(biāo)。該指標(biāo)可能會(huì)在即將發(fā)布的版本中完全刪除。

--otlp-traces-endpoint
OpenTelemetry 跟蹤將發(fā)送到的目標(biāo) URL。

--collect-detailed-traces
有效選項(xiàng)為 model、worker、all。
僅在設(shè)置了 --otlp-traces-endpoint 時(shí)設(shè)置此選項(xiàng)才有意義。
如果設(shè)置,它將為指定模塊收集詳細(xì)的跟蹤信息。
這涉及使用可能昂貴或阻塞的操作,因此可能會(huì)影響性能。

--disable-async-output-proc
禁用異步輸出處理。這可能會(huì)導(dǎo)致性能下降。

--scheduling-policy
可選值:fcfs, priority
要使用的調(diào)度策略。
「fcfs」(先到先服務(wù),即按請(qǐng)求到達(dá)的順序處理;默認(rèn))或
「priority」(根據(jù)給定的優(yōu)先級(jí)處理請(qǐng)求,較低的值意味著較早處理,到達(dá)時(shí)間決定任何平局)。
默認(rèn)值:「fcfs」

--scheduler-cls

要使用的調(diào)度器類?!竩llm.core.scheduler.Scheduler」是默認(rèn)調(diào)度器。
可以是類直接路徑,也可以是形式為「mod.custom_class」的類路徑。
默認(rèn)值:「vllm.core.scheduler.Scheduler」

--override-neuron-config
覆蓋或設(shè)置 neuron 設(shè)備配置。例如: {"cast_logits_dtype": "bloat16"}。

--override-pooler-config
覆蓋或設(shè)置池化模型的池化方法
例如: {"pooling_type": "mean", "normalize": false}。

--compilation-config, -O
模型的 torch.compile 配置。當(dāng)它是一個(gè)數(shù)字 (0、1、2、3) 時(shí),
它將被解釋為優(yōu)化級(jí)別。注意:級(jí)別 0 是沒有任何優(yōu)化的默認(rèn)級(jí)別。
級(jí)別 1 和 2 僅用于內(nèi)部測(cè)試。級(jí)別 3 是生產(chǎn)推薦的級(jí)別。要指定完整的編譯配置,
請(qǐng)使用 JSON 字符串。遵循傳統(tǒng)編譯器的約定,也支持使用不帶空格的 -O。-O3 等同于 -O 3。

--kv-transfer-config
分布式 KV 緩存?zhèn)鬏數(shù)呐渲谩?yīng)該是一個(gè) JSON 字符串。

--worker-cls
用于分布式執(zhí)行的 worker 類。
默認(rèn)值:「auto」

--worker-extension-cls
worker 類之上的 worker 擴(kuò)展類,
如果你只想向 worker 類添加新功能而不更改現(xiàn)有功能,則此功能很有用。
默認(rèn)值:""

--generation-config
生成配置的文件夾路徑。默認(rèn)為 'auto',生成配置將從模型路徑加載。
如果設(shè)置為 'vllm',則不加載生成配置,將使用 vLLM 默認(rèn)值。
如果設(shè)置為文件夾路徑,則從指定的文件夾路徑加載生成配置。
如果生成配置中指定了 max_new_tokens,則它將設(shè)置服務(wù)器范圍內(nèi)所有請(qǐng)求的輸出 token 數(shù)量的限制。
默認(rèn)值:auto

--override-generation-config
以 JSON 格式覆蓋或設(shè)置生成配置。
例如: {"temperature": 0.5}。如果與 --generation-config=auto 一起使用,
則覆蓋參數(shù)將與模型的默認(rèn)配置合并。如果 generation-config 為 None,則僅使用覆蓋參數(shù)。

--enable-sleep-mode
啟用引擎的睡眠模式。(僅支持 cuda 平臺(tái))

--calculate-kv-scales
當(dāng) kv-cache-dtype 為 fp8 時(shí),啟用動(dòng)態(tài)計(jì)算 k_scale 和 v_scale。
如果 calculate-kv-scales 為 false,那么如果模型檢查點(diǎn)中有可用的值,
將會(huì)從模型檢查點(diǎn)中加載這些縮放比例。否則,比例將默認(rèn)為 1.0。

--additional-config
以 JSON 格式為指定平臺(tái)提供的額外配置。
不同平臺(tái)可能支持不同的配置。確保配置對(duì)你使用的平臺(tái)有效
輸入格式類似于 {"config_key":"config_value"}。

--enable-reasoning
是否啟用模型的 reasoning_content。如果啟用,模型將能夠生成推理內(nèi)容。

--reasoning-parser
可選值:deepseek_r1
根據(jù)你使用的模型選擇推理解析器
這用于將推理內(nèi)容解析為 OpenAI API 格式。
如果啟用了 --enable-reasoning 功能,則此選項(xiàng)是必需的。

異步引擎參數(shù)
以下是異步引擎的附加參數(shù):
usage: vllm serve [-h] [--disable-log-requests]
命名參數(shù)
--disable-log-requests
禁用請(qǐng)求日志記錄。

原文地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容