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)以执行模型。这减少了模型权重的设备内存占用,因为只有量化后的权重存储在设备内存中。