FP8 INC¶
vLLM 支援使用 Intel® Neural Compressor (INC) 在 Intel® Gaudi® 2 和 Intel® Gaudi® 3 AI 加速器上進行 FP8(8 位浮點)權重和啟用量化。目前,量化僅在 Llama 模型上進行了驗證。
Intel Gaudi 支援對各種模組和函式進行量化,包括但不限於 Linear、KVCache、Matmul 和 Softmax。有關更多資訊,請參閱:支援的模組\支援的函式\自定義修補模組。
注意
在 Gaudi 加速器上使用 vLLM 執行量化模型需要測量檔案。FP8 模型校準過程在 vLLM HPU 擴充套件包中有描述。
注意
QUANT_CONFIG 是一個環境變數,它指向測量或量化 JSON 配置檔案。測量配置檔案在校準過程中用於收集給定模型的測量值。量化配置檔案在推理過程中使用。
使用 FP8 執行線上推理¶
完成模型校準過程並收集測量值後,您可以使用以下命令透過 vLLM 執行 FP8 推理
export QUANT_CONFIG=/path/to/quant/config/inc/meta-llama-3.1-405b-instruct/maxabs_measure_g3.json
vllm serve meta-llama/Llama-3.1-405B-Instruct --quantization inc --kv-cache-dtype fp8_inc --tensor_paralel_size 8
提示
使用 FP8 模型時,您可能會遇到由 FP8 操作的長時間編譯引起的超時。為解決此問題,您可以使用以下環境變數:VLLM_ENGINE_ITERATION_TIMEOUT_S - 用於調整 vLLM 伺服器超時。您可以設定秒數,例如 600 等於 10 分鐘。VLLM_RPC_TIMEOUT - 用於調整 OpenAI 相容 API 使用的 RPC 協議超時。此值以微秒為單位,例如 600000 等於 10 分鐘。
使用 FP8 執行離線推理¶
要執行離線推理(在完成模型校準過程後)
- 將“QUANT_CONFIG”環境變數設定為指向具有 QUANTIZE 模式的 JSON 配置檔案。
- 將
quantization=inc和kv_cache_dtype=fp8_inc作為引數傳遞給LLM物件。 - 在執行結束時呼叫 model_executor 的 shutdown 方法。
from vllm import LLM
llm = LLM("llama3.1/Meta-Llama-3.1-8B-Instruct", quantization="inc", kv_cache_dtype="fp8_inc")
...
# Call llm.generate on the required prompts and sampling params.
...
llm.llm_engine.model_executor.shutdown()
用於模型權重上傳的裝置¶
未量化的權重首先載入到 CPU,然後進行量化並傳輸到目標裝置(HPU)以執行模型。這減少了模型權重的裝置記憶體佔用,因為只有量化後的權重儲存在裝置記憶體中。