qwen3 中文文档 下载 App

Qwen3 AWQ 量化部署 — 4bit 量化让大模型跑得动

为什么需要量化

一个 FP16 的 Qwen3-8B 需要 16GB 显存,很多用户的 GPU 装不下。量化可以显著减小模型体积:

量化格式Qwen3-8B 大小精度损失
FP16(原生)~16GB无
8bit~8GB极小
4bit(AWQ)~5GB小
4bit(GPTQ)~5GB小
2bit~2.5GB较大

AWQ 原理

AWQ(Activation-aware Weight Quantization)的核心思想:

  1. 对每一层权重做重要性分析
  2. 保留权重绝对值最大的 1% 为 FP16(避免显著精度损失)
  3. 其余 99% 量化到 4bit
  4. 量化时考虑激活分布,选择最优量化范围

相比传统 per-tensor 量化,AWQ 的 per-group + 激活感知策略让精度损失更小。

使用 Hugging Face AWQ 量化模型

Qwen3 的部分规格已经有社区贡献的 AWQ 量化版在 Hugging Face 上。

Transformers 加载

pip install autoawq transformers accelerate
from transformers import AutoModelForCausalLM, AutoTokenizer

# 加载 AWQ 量化版(模型名通常带 -awq 后缀)
model_name = "Qwen/Qwen3-8B-Instruct-AWQ"  # 示例,检查 HF 是否有这个仓库
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
# 之后和原生加载一样的使用方式

用 AutoAWQ 自己量化

如果 Hugging Face 上没有你要的规格,可以自己量化:

pip install autoawq
from autoawq import AutoAWQForCausalLM

model_path = "Qwen/Qwen3-8B"
quant_path = "Qwen3-8B-AWQ"
quant_config = {
    "zero_point": True,
    "q_group_size": 128,
    "w_bit": 4,
    "version": "GEMM"
}

# 加载模型
model = AutoAWQForCausalLM.from_pretrained(model_path)

# 量化
model.quantize(
    tokenizer,
    quant_config=quant_config,
    calib_data="pileval",
    calib_length=512,
    calib_samples=128
)

# 保存量化后的模型
model.save_quantized(quant_path)

量化需要一组校准数据来统计激活分布,pileval 是常用的校准数据集。

AWQ vs GPTQ

方面AWQGPTQ
量化精度略好(激活感知)好
量化速度较快较慢(需要重算误差)
推理速度快快
工具链AutoAWQAutoGPTQ
支持的推理框架Transformers + vLLM + SGLangTransformers + vLLM + SGLang + ExLlama

两者都是 4bit 量化,精度损失接近。AWQ 量化更快,GPTQ 推理生态更丰富一些。

在推理框架中使用 AWQ

vLLM

pip install autoawq
vllm serve Qwen/Qwen3-8B-Instruct-AWQ \
    --quantization awq \
    --port 8000

SGLang

SGLang 也支持 AWQ 量化模型,直接加载即可:

python -m sglang.launch_server \
    --model-path Qwen/Qwen3-8B-Instruct-AWQ \
    --quantization awq \
    --port 30000

Ollama

Ollama 不直接支持 AWQ,但可以加载 GGUF 格式(GGUF 内部使用自己的量化算法)。如果想在 Ollama 里用 AWQ 量化模型,需要先转换成 GGUF。

显存估算(量化后)

规格FP16 原生AWQ 4bit8bit
Qwen3-0.6B1.2GB0.4GB0.6GB
Qwen3-4B8GB2.5GB4GB
Qwen3-8B16GB5GB8GB
Qwen3-14B28GB8GB14GB
Qwen3-32B64GB16GB32GB
Qwen3-30B-A3B60GB15GB30GB

量化的精度损失

量化不是无损的。4bit 量化可能导致:

实际使用中,绝大多数场景下 4bit 量化模型的表现和原生模型差异很小。

相关阅读