BitsAndBytes#

vLLM 现在支持 BitsAndBytes 以实现更高效的模型推理。BitsAndBytes 通过量化模型来减少内存使用并提高性能,同时不会显著牺牲准确性。与其他量化方法相比,BitsAndBytes 消除了使用输入数据校准量化模型的需求。

以下是使用 BitsAndBytes 与 vLLM 的步骤。

$ pip install bitsandbytes>=0.44.0

vLLM 读取模型的配置文件,并支持飞行中量化和预量化检查点。

你可以在 https://huggingface.co/models?other=bitsandbytes 找到 bitsandbytes 量化的模型。通常,这些仓库会有一个包含 quantization_config 部分的 config.json 文件。

读取量化检查点。#

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, \
quantization="bitsandbytes", load_format="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", load_format="bitsandbytes")