跳到内容

BitsAndBytes

vLLM 现已支持 BitsAndBytes,以实现更高效的模型推理。BitsAndBytes 对模型进行量化,从而减少内存使用并提高性能,同时不会显著牺牲准确性。与其他量化方法相比,BitsAndBytes 无需使用输入数据校准量化模型。

以下是在 vLLM 中使用 BitsAndBytes 的步骤。

pip install bitsandbytes>=0.46.1

vLLM 会读取模型的配置文件,并支持即时量化和预量化检查点。

您可以在 Hugging Face 上找到 bitsandbytes 量化模型。通常,这些仓库会有一个包含 quantization_config 部分的 config.json 文件。

读取量化检查点

对于预量化检查点,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