來源 examples/offline_inference/basic

基礎#

LLM 類提供了用於執行離線推理的主要 Python 介面,即在不使用單獨的模型推理伺服器的情況下與模型進行互動。

用法#

此示例中的第一個指令碼展示了 vLLM 最基本的使用方法。如果您是 Python 和 vLLM 的新手,您應該從這裡開始。

python examples/offline_inference/basic/basic.py

其餘指令碼包含一個 引數解析器,您可以使用它傳遞任何與 LLM 相容的引數。嘗試使用 --help 執行指令碼以獲取所有可用引數的列表。

python examples/offline_inference/basic/classify.py
python examples/offline_inference/basic/embed.py
python examples/offline_inference/basic/score.py

聊天和生成指令碼也接受 取樣引數max_tokenstemperaturetop_ptop_k

python examples/offline_inference/basic/chat.py
python examples/offline_inference/basic/generate.py

特性#

在支援傳遞引數的指令碼中,您可以嘗試以下特性。

預設生成配置#

--generation-config 引數指定在呼叫 LLM.get_default_sampling_params() 時從哪裡載入生成配置。如果設定為 'auto',則將從模型路徑載入生成配置。如果設定為資料夾路徑,則將從指定的資料夾路徑載入生成配置。如果未提供,則將使用 vLLM 預設設定。

如果在生成配置中指定了 max_new_tokens,則它會為所有請求設定伺服器範圍的輸出令牌數量限制。

使用以下引數親自嘗試一下

--generation-config auto

量化#

AQLM#

vLLM 支援使用 AQLM 量化的模型。

透過將以下模型之一傳遞給 --model 引數親自嘗試一下

  • ISTA-DASLab/Llama-2-7b-AQLM-2Bit-1x16-hf

  • ISTA-DASLab/Llama-2-7b-AQLM-2Bit-2x8-hf

  • ISTA-DASLab/Llama-2-13b-AQLM-2Bit-1x16-hf

  • ISTA-DASLab/Mixtral-8x7b-AQLM-2Bit-1x16-hf

  • BlackSamorez/TinyLlama-1_1B-Chat-v1_0-AQLM-2Bit-1x16-hf

其中一些模型可能對於單個 GPU 來說太大。您可以透過將 --tensor-parallel-size 設定為所需 GPU 的數量,將它們拆分到多個 GPU 上。

GGUF#

vLLM 支援使用 GGUF 量化的模型。

透過下載 GUFF 量化模型並使用以下引數親自嘗試一下

from huggingface_hub import hf_hub_download
repo_id = "bartowski/Phi-3-medium-4k-instruct-GGUF"
filename = "Phi-3-medium-4k-instruct-IQ2_M.gguf"
print(hf_hub_download(repo_id, filename=filename))
--model {local-path-printed-above} --tokenizer microsoft/Phi-3-medium-4k-instruct

CPU 解除安裝#

--cpu-offload-gb 引數可以被視為增加 GPU 記憶體大小的虛擬方法。例如,如果您有一個 24 GB 的 GPU 並將其設定為 10,實際上您可以將其視為 34 GB 的 GPU。然後,您可以載入具有 BF16 權重的 13B 模型,這至少需要 26GB 的 GPU 記憶體。請注意,這需要快速的 CPU-GPU 互連,因為模型的一部分在每個模型前向傳遞中都會從 CPU 記憶體動態載入到 GPU 記憶體。

使用以下引數親自嘗試一下

--model meta-llama/Llama-2-13b-chat-hf --cpu-offload-gb 10

示例材料#