BitsAndBytes#
vLLM 现在支持 BitsAndBytes,以实现更高效的模型推理。BitsAndBytes 量化模型以减少内存使用并提高性能,而不会显着牺牲准确性。与其他量化方法相比,BitsAndBytes 消除了使用输入数据校准量化模型的需求。
以下是使用 vLLM 利用 BitsAndBytes 的步骤。
pip install bitsandbytes>=0.45.3
vLLM 读取模型的配置文件,并支持运行时量化和预量化检查点。
您可以在 https://hugging-face.cn/models?other=bitsandbytes 上找到 bitsandbytes 量化模型。通常,这些仓库都有一个 config.json 文件,其中包含 quantization_config 部分。
读取量化检查点#
对于预量化检查点,vLLM 将尝试从配置文件中推断量化方法,因此您无需显式指定量化参数。
from vllm import LLM
import torch
# unsloth/tinyllama-bnb-4bit is a pre-quantized checkpoint.
model_id = "unsloth/tinyllama-bnb-4bit"
llm = LLM(model=model_id, dtype=torch.bfloat16, trust_remote_code=True)
运行时量化:加载为 4 位量化#
对于使用 BitsAndBytes 的运行时 4 位量化,您需要显式指定量化参数。
from vllm import LLM
import torch
model_id = "huggyllama/llama-7b"
llm = LLM(model=model_id, dtype=torch.bfloat16, trust_remote_code=True, \
quantization="bitsandbytes")
OpenAI 兼容服务器#
将以下内容附加到您的模型参数中,以进行 4 位运行时量化
--quantization bitsandbytes