跳到內容

引擎引數

引擎引數控制 vLLM 引擎的行為。

引擎引數類 EngineArgsAsyncEngineArgsvllm.config 中定義的配置類的組合。因此,如果您對開發者文件感興趣,我們建議檢視這些配置類,因為它們是型別、預設值和文件字串的真實來源。

EngineArgs

--disable-log-stats

停用日誌統計。

預設值:False

--enable-prompt-adapter

[已棄用] 提示介面卡已被移除。將此標誌設定為 True 或 False 對 vLLM 行為沒有影響。

預設值:False

ModelConfig

模型配置。

--model

要使用的 Hugging Face 模型的名稱或路徑。當未指定 served_model_name 時,它也用作指標輸出中 model_name 標籤的內容。

預設值:Qwen/Qwen3-0.6B

--task

可能選項:auto, classify, draft, embed, embedding, generate, reward, score, transcription

使用模型的任務。如果模型支援多個模型執行器,則此引數用於選擇要執行的模型執行器。

請注意,模型可能使用相同的模型執行器支援其他任務。

預設值:auto

--tokenizer

要使用的 Hugging Face 分詞器的名稱或路徑。如果未指定,將使用模型名稱或路徑。

預設值:None

--tokenizer-mode

可能選項:auto, custom, mistral, slow

分詞器模式

  • “auto”將使用快速分詞器(如果可用)。

  • “slow”將始終使用慢速分詞器。

  • “mistral”將始終使用來自 mistral_common 的分詞器。

  • “custom”將使用 --tokenizer 選擇預註冊的分詞器。

預設值:auto

--trust-remote-code, --no-trust-remote-code

下載模型和分詞器時,信任遠端程式碼(例如,來自 HuggingFace)。

預設值:False

--dtype

可能選項:auto, bfloat16, float, float16, float32, half

模型權重和啟用的資料型別

  • “auto”將對 FP32 和 FP16 模型使用 FP16 精度,對 BF16 模型使用 BF16 精度。

  • “half”用於 FP16。推薦用於 AWQ 量化。

  • “float16”與“half”相同。

  • “bfloat16”用於在精度和範圍之間取得平衡。

  • “float”是 FP32 精度的簡寫。

  • “float32”用於 FP32 精度。

預設值:auto

--seed

用於重現性的隨機種子。在 V0 中初始化為 None,但在 V1 中初始化為 0。

預設值:None

--hf-config-path

要使用的 Hugging Face 配置的名稱或路徑。如果未指定,將使用模型名稱或路徑。

預設值:None

--allowed-local-media-path

允許 API 請求從伺服器檔案系統指定的目錄讀取本地影像或影片。這存在安全風險。應僅在受信任的環境中啟用。

預設值:``

--revision

要使用的特定模型版本。它可以是分支名稱、標籤名稱或提交 ID。如果未指定,將使用預設版本。

預設值:None

--code-revision

用於 Hugging Face Hub 上模型程式碼的特定修訂版本。它可以是分支名稱、標籤名稱或提交 ID。如果未指定,將使用預設版本。

預設值:None

--rope-scaling

RoPE 縮放配置。例如,{"rope_type":"dynamic","factor":2.0}

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:{}

--rope-theta

RoPE theta。與 rope_scaling 一起使用。在某些情況下,更改 RoPE theta 會提高縮放模型的效能。

預設值:None

--tokenizer-revision

用於 Hugging Face Hub 上分詞器的特定修訂版本。它可以是分支名稱、標籤名稱或提交 ID。如果未指定,將使用預設版本。

預設值:None

--max-model-len

模型上下文長度(提示和輸出)。如果未指定,將從模型配置中自動派生。

透過 --max-model-len 傳遞時,支援以人類可讀格式的 k/m/g/K/M/G。示例

  • 1k -> 1000

  • 1K -> 1024

  • 25.6k -> 25,600

預設值:None

--quantization, -q

用於量化權重的M方法。如果為 None,我們首先檢查模型配置檔案中的 quantization_config 屬性。如果該屬性也為 None,我們假定模型權重未量化,並使用 dtype 來確定權重的D資料型別。

預設值:None

--enforce-eager, --no-enforce-eager

是否始終使用 eager-mode PyTorch。如果為 True,我們將停用 CUDA 圖並始終在 eager 模式下執行模型。如果為 False,我們將混合使用 CUDA 圖和 eager 執行以實現最大效能和靈活性。

預設值:False

--max-seq-len-to-capture

CUDA 圖覆蓋的最大序列長度。當序列的上下文長度大於此值時,我們將退回到 eager 模式。此外,對於編碼器-解碼器模型,如果編碼器輸入的序列長度大於此值,我們將退回到 eager 模式。

預設值:8192

--max-logprobs

SamplingParams 中指定了 logprobs 時,要返回的最大對數機率數量。預設值來自 OpenAI 聊天完成 API 的預設值。

預設值:20

--logprobs-mode

可能選項:processed_logits, processed_logprobs, raw_logits, raw_logprobs

指示 logprobs 和 prompt_logprobs 中返回的內容。支援的模式:1) raw_logprobs, 2) processed_logprobs, 3) raw_logits, 4) processed_logits。Raw 表示應用 logit 處理器(如停用詞)之前的值。Processed 表示應用此類處理器之後的值。

預設值:raw_logprobs

--disable-sliding-window, --no-disable-sliding-window

是否停用滑動視窗。如果為 True,我們將停用模型的滑動視窗功能,限制到滑動視窗大小。如果模型不支援滑動視窗,則忽略此引數。

預設值:False

--disable-cascade-attn, --no-disable-cascade-attn

停用 V1 的級聯注意力。雖然級聯注意力不會改變數學上的正確性,但停用它可以有助於防止潛在的數值問題。請注意,即使將其設定為 False,級聯注意力也只會在啟發式演算法認為有益時才使用。

預設值:False

--skip-tokenizer-init, --no-skip-tokenizer-init

跳過分詞器和反分詞器的初始化。期望輸入提供有效的 prompt_token_idsNone 作為提示。生成的輸出將包含 token ID。

預設值:False

--enable-prompt-embeds, --no-enable-prompt-embeds

如果為 True,則透過 prompt_embeds 鍵啟用將文字嵌入作為輸入傳遞。請注意,啟用此功能將使圖編譯所需的時間加倍。

預設值:False

--served-model-name

API 中使用的模型名稱。如果提供了多個名稱,伺服器將響應其中任何一個提供的名稱。響應的模型欄位中的模型名稱將是此列表中的第一個名稱。如果未指定,模型名稱將與 --model 引數相同。請注意,此名稱也將用於 prometheus 指標的 model_name 標籤內容中,如果提供了多個名稱,則指標標籤將採用第一個名稱。

預設值:None

--disable-async-output-proc

停用非同步輸出處理。這可能導致效能下降。

預設值:False

--config-format

可能選項:auto, hf, mistral

要載入的模型配置格式

  • “auto”將嘗試以 hf 格式載入配置(如果可用),否則將嘗試以 mistral 格式載入。

  • “hf”將以 hf 格式載入配置。

  • “mistral”將以 mistral 格式載入配置。

預設值:auto

--hf-token

用於遠端檔案的 HTTP bearer 授權令牌。如果為 True,將使用執行 huggingface-cli login 時生成的令牌(儲存在 ~/.huggingface 中)。

預設值:None

--hf-overrides

如果是一個字典,則包含要轉發到 Hugging Face 配置的引數。如果是一個可呼叫物件,則呼叫它來更新 HuggingFace 配置。

預設值:{}

--override-neuron-config

初始化非預設的 neuron 配置或覆蓋特定於 Neuron 裝置的預設 neuron 配置,此引數將用於配置無法從 vllm 引數中收集的 neuron 配置。例如 {"cast_logits_dtype": "bfloat16"}

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:{}

--override-pooler-config

初始化非預設的池化配置或覆蓋池化模型的預設池化配置。例如 {"pooling_type": "mean", "normalize": false}

預設值:None

--logits-processor-pattern

可選的正則表示式模式,指定可以透過 logits_processors 額外補全引數傳遞的有效 logits 處理器合格名稱。預設為 None,表示不允許任何處理器。

預設值:None

--generation-config

生成配置的資料夾路徑。預設為 "auto",生成配置將從模型路徑載入。如果設定為 "vllm",則不載入生成配置,將使用 vLLM 預設值。如果設定為資料夾路徑,則將從指定的資料夾路徑載入生成配置。如果在生成配置中指定了 max_new_tokens,則它會為所有請求設定伺服器範圍內的輸出 token 數量限制。

預設值:auto

--override-generation-config

覆蓋或設定生成配置。例如 {"temperature": 0.5}。如果與 --generation-config auto 一起使用,則覆蓋引數將與模型的預設配置合併。如果與 --generation-config vllm 一起使用,則只使用覆蓋引數。

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:{}

--enable-sleep-mode, --no-enable-sleep-mode

啟用引擎的睡眠模式(僅支援 cuda 平臺)。

預設值:False

--model-impl

可能選項:auto, vllm, transformers

要使用的模型實現

  • “auto”將嘗試使用 vLLM 實現(如果存在),如果沒有可用的 vLLM 實現,則退回到 Transformers 實現。

  • “vllm”將使用 vLLM 模型實現。

  • “transformers”將使用 Transformers 模型實現。

預設值:auto

--override-attention-dtype

覆蓋注意力的 dtype

預設值:None

LoadConfig

載入模型權重的配置。

--load-format

要載入的模型權重格式

  • “auto”將嘗試以 safetensors 格式載入權重,如果 safetensors 格式不可用,則退回到 pytorch bin 格式。

  • “pt”將以 pytorch bin 格式載入權重。

  • “safetensors”將以 safetensors 格式載入權重。

  • “npcache”將以 pytorch 格式載入權重,並存儲 numpy 快取以加速載入。

  • “dummy”將用隨機值初始化權重,這主要用於效能分析。

  • “tensorizer”將使用 CoreWeave 的 tensorizer 庫進行快速權重載入。有關更多資訊,請參閱示例部分中的 Tensorize vLLM Model 指令碼。

  • “runai_streamer”將使用 Run:ai 模型流式載入器載入 Safetensors 權重。

  • “bitsandbytes”將使用 bitsandbytes 量化載入權重。

  • “sharded_state”將從預分片的檢查點檔案載入權重,支援高效載入張量並行模型。

  • “gguf”將從 GGUF 格式檔案載入權重(詳細資訊請參閱 https://github.com/ggml-org/ggml/blob/master/docs/gguf.md)。

  • “mistral”將從 Mistral 模型使用的合併 safetensors 檔案載入權重。

  • 其他自定義值可以透過外掛支援。

預設值:auto

--download-dir

下載和載入權重的目錄,預設為 Hugging Face 的預設快取目錄。

預設值:None

--model-loader-extra-config

模型載入器的額外配置。這將傳遞給與所選 load_format 對應的模型載入器。

預設值:{}

--ignore-patterns

載入模型時要忽略的模式列表。預設為 "original/*/",以避免重複載入 llama 的檢查點。

預設值:None

--use-tqdm-on-load, --no-use-tqdm-on-load

載入模型權重時是否啟用 tqdm 顯示進度條。

預設值:True

--pt-load-map-location

pt_load_map_location: 載入 pytorch 檢查點的對映位置,支援只能在特定裝置(如 "cuda")上載入的檢查點,這等同於 {"": "cuda"}。另一種支援的格式是從不同裝置進行對映,例如從 GPU 1 到 GPU 0:{"cuda:1": "cuda:0"}。請注意,從命令列傳遞時,字典中的字串需要雙引號才能進行 JSON 解析。有關更多詳細資訊,請參閱 https://pytorch.org/docs/stable/generated/torch.load.html 中 map_location 的原始文件。

預設值:cpu

DecodingConfig

包含引擎解碼策略的資料類。

--guided-decoding-backend

可能選項:auto, guidance, lm-format-enforcer, outlines, xgrammar

預設情況下,將使用哪個引擎進行引導式解碼(JSON 模式/正則表示式等)。使用“auto”時,我們將根據請求內容和後端庫當前支援的功能做出有傾向性的選擇,因此其行為在每個版本中都可能發生變化。

預設值:auto

--guided-decoding-disable-fallback, --no-guided-decoding-disable-fallback

如果為 True,vLLM 在出錯時將不會回退到不同的後端。

預設值:False

--guided-decoding-disable-any-whitespace, --no-guided-decoding-disable-any-whitespace

如果為 True,模型在引導式解碼期間將不會生成任何空格。此功能僅支援 xgrammar 和 guidance 後端。

預設值:False

--guided-decoding-disable-additional-properties, --no-guided-decoding-disable-additional-properties

如果為 True,則 guidance 後端將不在 JSON 模式中使用 additionalProperties。此功能僅支援 guidance 後端,用於使其行為與 outlinesxgrammar 更好地對齊。

預設值:False

--reasoning-parser

可能選項:deepseek_r1, glm45, granite, hunyuan_a13b, mistral, qwen3

根據您使用的模型選擇推理解析器。這用於將推理內容解析為 OpenAI API 格式。

預設值:``

ParallelConfig

分散式執行的配置。

--distributed-executor-backend

可能選項:external_launcher, mp, ray, uni, None

用於分散式模型工作者的後端,可以是“ray”或“mp”(多程序)。如果 pipeline_parallel_size 和 tensor_parallel_size 的乘積小於或等於可用 GPU 的數量,則將使用“mp”以在單個主機上保持處理。否則,如果安裝了 Ray,則預設為“ray”,否則將失敗。請注意,tpu 僅支援 Ray 進行分散式推理。

預設值:None

--pipeline-parallel-size, -pp

管道並行組的數量。

預設值:1

--tensor-parallel-size, -tp

張量並行組的數量。

預設值:1

--data-parallel-size, -dp

資料並行組的數量。MoE 層將根據張量並行大小和資料並行大小的乘積進行分片。

預設值:1

--data-parallel-rank, -dpn

此例項的資料並行等級。設定後,啟用外部負載均衡器模式。

預設值:None

--data-parallel-start-rank, -dpr

次級節點的資料並行起始等級。

預設值:None

--data-parallel-size-local, -dpl

在此節點上執行的資料並行副本數量。

預設值:None

--data-parallel-address, -dpa

資料並行叢集頭節點的地址。

預設值:None

--data-parallel-rpc-port, -dpp

資料並行 RPC 通訊埠。

預設值:None

--data-parallel-backend, -dpb

資料並行後端,可以是“mp”或“ray”。

預設值:mp

--data-parallel-hybrid-lb, --no-data-parallel-hybrid-lb

是否使用“混合”DP LB 模式。僅適用於線上服務且 data_parallel_size > 0 的情況。啟用在“每節點”基礎上執行 AsyncLLM 和 API 伺服器,其中 vLLM 在本地資料並行等級之間進行負載均衡,但外部 LB 在 vLLM 節點/副本之間進行負載均衡。與 --data-parallel-start-rank 結合明確設定。

預設值:False

--enable-expert-parallel, --no-enable-expert-parallel

對 MoE 層使用專家並行而非張量並行。

預設值:False

--enable-eplb, --no-enable-eplb

為 MoE 層啟用專家並行負載均衡。

預設值:False

--num-redundant-experts

用於專家並行的冗餘專家數量。

預設值:0

--eplb-window-size

專家負載記錄的視窗大小。

預設值:1000

--eplb-step-interval

在專家並行中重新排列專家的間隔。

請注意,如果此值大於 EPLB 視窗大小,則只有最後 eplb_window_size 步的指標將用於重新排列專家。

預設值:3000

--eplb-log-balancedness, --no-eplb-log-balancedness

記錄專家並行每一步的平衡性。預設情況下此功能是關閉的,因為它會導致通訊開銷。

預設值:False

--max-parallel-loading-workers

分批順序載入模型時,並行載入 worker 的最大數量。為避免在使用張量並行和大型模型時出現 RAM OOM。

預設值:None

--ray-workers-use-nsight, --no-ray-workers-use-nsight

是否使用 nsight 分析 Ray worker,請參閱 https://docs.ray.io/en/latest/ray-observability/user-guides/profiling.html#profiling-nsight-profiler。

預設值:False

--disable-custom-all-reduce, --no-disable-custom-all-reduce

停用自定義 all-reduce 核心並回退到 NCCL。

預設值:False

--worker-cls

要使用的 worker 類的完整名稱。如果為“auto”,worker 類將根據平臺確定。

預設值:auto

--worker-extension-cls

要使用的 worker 擴充套件類的完整名稱。worker 擴充套件類由 worker 類動態繼承。這用於向 worker 類注入新屬性和方法,以便在 collective_rpc 呼叫中使用。

預設值:``

--enable-multimodal-encoder-data-parallel, --no-enable-multimodal-encoder-data-parallel

對視覺編碼器使用資料並行而不是張量並行。目前僅支援 LLama4。

預設值:False

CacheConfig

KV 快取配置。

--block-size

可能選項:1, 8, 16, 32, 64, 128

連續快取塊以 token 數量表示的大小。在 neuron 裝置上,此引數被忽略並設定為 --max-model-len。在 CUDA 裝置上,僅支援最大 32 的塊大小。在 HPU 裝置上,塊大小預設為 128。

此配置沒有靜態預設值。如果使用者未指定,它將根據當前平臺在 Platform.check_and_update_config() 中設定。

預設值:None

--gpu-memory-utilization

用於模型執行器的 GPU 記憶體比例,範圍從 0 到 1。例如,值為 0.5 意味著 50%% 的 GPU 記憶體利用率。如果未指定,將使用預設值 0.9。這是每個例項的限制,僅適用於當前的 vLLM 例項。即使您在同一 GPU 上執行另一個 vLLM 例項,這也不受影響。例如,如果您在同一 GPU 上執行兩個 vLLM 例項,您可以為每個例項設定 0.5 的 GPU 記憶體利用率。

預設值:0.9

--swap-space

每 GPU 的 CPU 交換空間大小(GiB)。

預設值:4

--kv-cache-dtype

可能選項:auto, fp8, fp8_e4m3, fp8_e5m2, fp8_inc

kv 快取儲存的資料型別。如果為“auto”,將使用模型資料型別。CUDA 11.8+ 支援 fp8 (=fp8_e4m3) 和 fp8_e5m2。ROCm (AMD GPU) 支援 fp8 (=fp8_e4m3)。Intel Gaudi (HPU) 支援 fp8(使用 fp8_inc)。

預設值:auto

--num-gpu-blocks-override

要使用的 GPU 塊數量。如果指定,這將覆蓋分析的 num_gpu_blocks。如果為 None 則不執行任何操作。用於測試搶佔。

預設值:None

--enable-prefix-caching, --no-enable-prefix-caching

是否啟用字首快取。V0 預設停用。V1 預設啟用。

預設值:None

--prefix-caching-hash-algo

可能選項:builtin, sha256, sha256_cbor_64bit

設定字首快取的雜湊演算法

  • “builtin”是 Python 的內建雜湊。

  • “sha256”是抗碰撞的,但具有一定的開銷。此選項在雜湊前使用 Pickle 進行物件序列化。

  • “sha256_cbor_64bit”提供了一個可重現、跨語言相容的雜湊。它使用規範 CBOR 序列化物件,並使用 SHA-256 進行雜湊。結果雜湊由 SHA-256 摘要的低 64 位組成。

預設值:builtin

--cpu-offload-gb

每 GPU 解除安裝到 CPU 的空間大小(以 GiB 為單位)。預設值為 0,表示不解除安裝。直觀上,此引數可以看作是虛擬增加 GPU 記憶體大小的一種方式。例如,如果您有一個 24 GB 的 GPU 並將其設定為 10,則虛擬上可以將其視為 34 GB 的 GPU。然後您可以載入一個帶有 BF16 權重的 13B 模型,該模型至少需要 26GB GPU 記憶體。請注意,這需要快速的 CPU-GPU 互連,因為模型的一部分會在每個模型前向傳遞中動態地從 CPU 記憶體載入到 GPU 記憶體。

預設值:0

--calculate-kv-scales, --no-calculate-kv-scales

當 kv_cache_dtype 為 fp8 時,這將啟用 k_scalev_scale 的動態計算。如果為 False,則如果可用,將從模型檢查點載入這些比例。否則,這些比例將預設為 1.0。

預設值:False

MultiModalConfig

控制多模態模型的行為。

--limit-mm-per-prompt

每個提示允許的每種模態的最大輸入項數。對於每種模態,V0 預設為 1,V1 預設為 999。

例如,要允許每個提示最多 16 張影像和 2 個影片:{"images": 16, "videos": 2}

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:{}

--media-io-kwargs

傳遞給處理媒體輸入的額外引數,以模態為鍵。例如,要為影片設定 num_frames,請設定 --media-io-kwargs '{"video": {"num_frames": 40} }'

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:{}

--mm-processor-kwargs

transformers.AutoProcessor.from_pretrained 獲取的多模態處理器的覆蓋。

可用的覆蓋取決於正在執行的模型。

例如,對於 Phi-3-Vision:{"num_crops": 4}

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:None

--disable-mm-preprocessor-cache, --no-disable-mm-preprocessor-cache

如果為 True,則停用處理後的多模態輸入的快取。

預設值:False

--interleave-mm-strings, --no-interleave-mm-strings

為多模態提示啟用完全交錯支援。

預設值:False

LoRAConfig

LoRA 配置。

--enable-lora, --no-enable-lora

如果為 True,則啟用 LoRA 介面卡處理。

預設值:None

--enable-lora-bias, --no-enable-lora-bias

為 LoRA 介面卡啟用偏置。

預設值:False

--max-loras

單個批次中 LoRA 的最大數量。

預設值:1

--max-lora-rank

最大 LoRA 等級。

預設值:16

--lora-extra-vocab-size

LoRA 介面卡中可能存在的額外詞彙的最大大小(新增到基礎模型詞彙)。

預設值:256

--lora-dtype

可能選項:auto, bfloat16, float16

LoRA 的資料型別。如果為 auto,將預設為基礎模型的資料型別。

預設值:auto

--max-cpu-loras

在 CPU 記憶體中儲存的 LoRA 的最大數量。必須大於等於 max_loras

預設值:None

--fully-sharded-loras, --no-fully-sharded-loras

預設情況下,只有一半的 LoRA 計算與張量並行進行分片。啟用此選項將使用完全分片的層。在高序列長度、最大秩或張量並行大小時,這可能更快。

預設值:False

--default-mm-loras

將特定模態對映到 LoRA 模型路徑的字典;此欄位僅適用於多模態模型,並且當給定模態存在時,模型始終期望 LoRA 處於活動狀態時應利用此欄位。請注意,目前,如果一個請求提供了多個額外的模態,每個模態都有自己的 LoRA,我們不應用 default_mm_loras,因為我們目前每個提示只支援一個 lora 介面卡。在離線模式下執行時,n 個模態的 lora ID 將按照模態名稱的字母順序自動分配為 1 到 n。

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:None

SpeculativeConfig

推測解碼的配置。

--speculative-config

推測解碼的配置。應為 JSON 字串。

預設值:None

ObservabilityConfig

可觀測性配置 - 指標和追蹤。

--show-hidden-metrics-for-version

啟用自指定版本以來已隱藏的已棄用 Prometheus 指標。例如,如果一個先前已棄用的指標自 v0.7.0 釋出以來已被隱藏,您可以使用 --show-hidden-metrics-for-version=0.7 作為臨時退出機制,同時您遷移到新指標。該指標很可能在即將釋出的版本中被完全移除。

預設值:None

--otlp-traces-endpoint

OpenTelemetry 追蹤將傳送到的目標 URL。

預設值:None

--collect-detailed-traces

可能選項:all, model, worker, None, model,worker, model,all, worker,model, worker,all, all,model, all,worker

僅在設定了 --otlp-traces-endpoint 時設定此項才有意義。如果設定,它將收集指定模組的詳細追蹤。這可能涉及使用昂貴和/或阻塞操作,因此可能會對效能產生影響。

請注意,收集每個請求的詳細計時資訊可能代價高昂。

預設值:None

SchedulerConfig

排程器配置。

--max-num-batched-tokens

單次迭代中要處理的最大 token 數量。

此配置沒有靜態預設值。如果使用者未指定,它將根據使用上下文在 EngineArgs.create_engine_config 中設定。

預設值:None

--max-num-seqs

單次迭代中要處理的最大序列數量。

此配置沒有靜態預設值。如果使用者未指定,它將根據使用上下文在 EngineArgs.create_engine_config 中設定。

預設值:None

--max-num-partial-prefills

對於分塊預填充,可以同時部分預填充的最大序列數量。

預設值:1

--max-long-partial-prefills

對於分塊預填充,同時預填充的長度超過 long_prefill_token_threshold 的提示的最大數量。將其設定小於 max_num_partial_prefills 在某些情況下允許較短的提示排在較長提示之前,從而提高延遲。

預設值:1

--cuda-graph-sizes

Cuda 圖捕獲大小 1. 如果未提供,則預設為 [min(max_num_seqs * 2, 512)] 2. 如果提供一個值,則捕獲列表將遵循以下模式:[1, 2, 4] + [i for i in range(8, cuda_graph_sizes + 1, 8)] 3. 如果提供多個值(例如 1 2 128),則捕獲列表將遵循提供的值列表。

預設值:[]

--long-prefill-token-threshold

對於分塊預填充,如果提示的 token 數量超過此值,則認為該請求是長請求。

預設值:0

--num-lookahead-slots

每步每個序列要分配的槽位數量,超出已知 token ID。這用於推測解碼,以儲存可能或可能不被接受的 token 的 KV 啟用。

注意:此項將來將被推測配置取代;目前保留此項是為了啟用正確性測試。

預設值:0

--scheduler-delay-factor

在排程下一個提示之前應用延遲(延遲因子乘以先前提示延遲)。

預設值:0.0

--preemption-mode

可能選項:recompute, swap, None

是執行透過交換還是重新計算的搶佔。如果未指定,我們按如下方式確定模式:我們預設使用重新計算,因為它比交換產生的開銷更低。但是,當序列組具有多個序列(例如,束搜尋)時,目前不支援重新計算。在這種情況下,我們改用交換。

預設值:None

--num-scheduler-steps

每次排程器呼叫時的最大前向步驟數。

預設值:1

--multi-step-stream-outputs, --no-multi-step-stream-outputs

如果為 False,則多步將在所有步驟結束時流式輸出

預設值:True

--scheduling-policy

可能選項:fcfs, priority

要使用的排程策略

  • “fcfs”表示先到先得,即請求按到達順序處理。

  • “priority”表示請求根據給定優先順序(值越低越早處理)和到達時間(決定任何平局)進行處理。

預設值:fcfs

--enable-chunked-prefill, --no-enable-chunked-prefill

如果為 True,預填充請求可以根據剩餘的 max_num_batched_tokens 進行分塊。

預設值:None

--disable-chunked-mm-input, --no-disable-chunked-mm-input

如果設定為 true 並且啟用了分塊預填充,我們不希望部分排程多模態項。僅在 V1 中使用。這確保瞭如果一個請求具有混合提示(如文字 token TTTT 後跟影像 token IIIIIIIIII),其中只有部分影像 token 可以被排程(如 TTTTIIIII,留下 IIIII),它將在一個步驟中作為 TTTT 排程,在下一個步驟中作為 IIIIIIIIII 排程。

預設值:False

--scheduler-cls

要使用的排程器類。“vllm.core.scheduler.Scheduler”是預設排程器。可以直接是類,也可以是“mod.custom_class”形式的類路徑。

預設值:vllm.core.scheduler.Scheduler

--disable-hybrid-kv-cache-manager, --no-disable-hybrid-kv-cache-manager

如果設定為 True,KV 快取管理器將為所有注意力層分配相同大小的 KV 快取,即使存在多種型別的注意力層,如全注意力層和滑動視窗注意力層。

預設值:False

--async-scheduling, --no-async-scheduling

實驗性功能:如果設定為 True,執行非同步排程。這可能有助於減少 CPU 開銷,從而提高延遲和吞吐量。然而,非同步排程目前不支援某些功能,如結構化輸出、推測解碼和管道並行。

預設值:False

VllmConfig

包含所有 vllm 相關配置的資料類。這簡化了在程式碼庫中傳遞不同配置。

--kv-transfer-config

分散式 KV 快取傳輸的配置。

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:None

--kv-events-config

事件釋出的配置。

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:None

--compilation-config, -O

模型的 torch.compile 和 cudagraph 捕獲配置。

作為簡寫,可以使用 -O<n> 直接指定編譯級別 n-O3 等同於 -O.level=3(與 -O='{"level":3}' 相同)。目前,-O和 -O=也受支援,但將來可能會被移除,以支援更清晰的 -O語法。

注意:級別 0 是沒有任何最佳化的預設級別。級別 1 和 2 僅用於內部測試。級別 3 是生產環境推薦的級別,也是 V1 中的預設級別。

您可以這樣指定完整的編譯配置:{"level": 3, "cudagraph_capture_sizes": [1, 2, 4, 8]}

應為有效的 JSON 字串或單獨傳遞的 JSON 鍵。例如,以下引數集是等效的

  • --json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'

  • --json-arg.key1 value1 --json-arg.key2.key3 value2

此外,可以使用 + 單獨傳遞列表元素

  • --json-arg '{"key4": ["value3", "value4", "value5"]}'

  • --json-arg.key4+ value3 --json-arg.key4+='value4,value5'

預設值:{"level":0,"debug_dump_path":"","cache_dir":"","backend":"","custom_ops":[],"splitting_ops":[],"use_inductor":true,"compile_sizes":null,"inductor_compile_config":{"enable_auto_functionalized_v2":false},"inductor_passes":{},"use_cudagraph":true,"cudagraph_num_of_warmups":0,"cudagraph_capture_sizes":null,"cudagraph_copy_inputs":false,"full_cuda_graph":false,"max_capture_size":null,"local_cache_dir":null}

--additional-config

指定平臺的額外配置。不同的平臺可能支援不同的配置。請確保配置對您正在使用的平臺有效。內容必須是可雜湊的。

預設值:{}

AsyncEngineArgs

--disable-log-requests

停用請求日誌記錄。

預設值:False