qwen3 中文文档 下载 App

Qwen3 GPTQ 量化部署 — AutoGPTQ 4bit 量化方案

GPTQ vs AWQ

两者都是主流的 4bit 后训练量化方法,效果接近但原理不同:

方面GPTQAWQ
核心思想最小化每层的量化误差保留最重要的权重为高精度
量化速度较慢(需要逐层重算)较快
精度好略好
校准数据量需要较少需要较多
推理速度快快
生态更成熟(ExLlama 等)快速发展中

安装

pip install auto-gptq transformers accelerate

验证安装:

from auto_gptq import AutoGPTQForCausalLM
print("GPTQ 安装成功")

加载 GPTQ 量化模型

Transformers

from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
from transformers import AutoTokenizer

model_name = "Qwen/Qwen3-8B-Instruct-GPTQ"  # 检查 HF 是否有
tokenizer = AutoTokenizer.from_pretrained(model_name)

model = AutoGPTQForCausalLM.from_quantized(
    model_name,
    use_safetensors=True,
    device="cuda:0",
    disable_exllama=False,
    disable_exllamav2=False
)

ExLlamaV2(更高推理性能)

pip install exllamav2

ExLlamaV2 是专为 GPTQ 量化模型设计的高性能推理引擎。

vLLM

pip install auto-gptq
vllm serve Qwen/Qwen3-8B-Instruct-GPTQ \
    --quantization gptq \
    --port 8000

自己量化 GPTQ 模型

from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
from transformers import AutoTokenizer

model_path = "Qwen/Qwen3-8B"
quant_path = "Qwen3-8B-GPTQ"

quant_config = BaseQuantizeConfig(
    bits=4,                   # 4bit 量化
    group_size=128,           # 分组大小
    desc_act=False,           # 是否按激活排序(设为 False 更兼容)
)

# 加载原生模型
model = AutoGPTQForCausalLM.from_pretrained(
    model_path,
    quantized=False,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_path)

# 准备校准数据(少量文本即可)
examples = [
    tokenizer(
        "Qwen3 是阿里巴巴通义实验室发布的开源大语言模型。",
        return_tensors="pt"
    )
]

# 量化
model.quantize(
    examples,
    batch_size=1,
    use_cache=True
)

# 保存
model.save_quantized(quant_path, use_safetensors=True)
tokenizer.save_pretrained(quant_path)

GPTQ 量化比 AWQ 慢,但校准数据要求更少。

GGUF vs GPTQ vs AWQ

三者都是量化格式,但生态不同:

格式主要用户优势
GPTQTransformers / vLLM / SGLang精度好,生态成熟
AWQTransformers / vLLM / SGLang量化快,激活感知
GGUFOllama / LM Studio / llama.cpp跨平台,CPU/GPU 通吃

如果你用 Ollama 或 LM Studio,只能用 GGUF。如果用 Python 推理框架,AWQ 和 GPTQ 都可以。

相关阅读