快速开始
方式一:Ollama 使用预量化模型(最简单)
Ollama 内置大量预量化模型,无需自己量化:
ollama run qwen2:7b
模型会自动下载已量化版本(通常为 Q4 档位),可直接体验量化效果。
方式二:llama.cpp 量化 GGUF
1. 克隆 llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
2. 下载原始模型(Hugging Face 格式)
# 使用 huggingface-cli 或 git lfs
huggingface-cli download Qwen/Qwen2-7B-Instruct --local-dir ./models/qwen2-7b
3. 转为 GGUF 并量化
# 转为 FP16 GGUF
python convert_hf_to_gguf.py ./models/qwen2-7b --outfile qwen2-7b-fp16.gguf
# 量化为 Q4_K_M(推荐平衡质量与大小)
./llama-quantize qwen2-7b-fp16.gguf qwen2-7b-q4_k_m.gguf Q4_K_M
4. 运行
./llama-cli -m qwen2-7b-q4_k_m.gguf -p "你好" -n 256
方式三:AutoGPTQ 量化(GPU)
安装
pip install auto-gptq
量化脚本示例
from transformers import AutoModelForCausalLM
from auto_gptq import BaseQuantizeConfig
from auto_gptq import AutoGPTQForCausalLM
model_name = "Qwen/Qwen2-7B-Instruct"
quantize_config = BaseQuantizeConfig(bits=4, group_size=128, desc_act=False)
model = AutoGPTQForCausalLM.from_pretrained(model_name, quantize_config)
# 准备校准数据(列表 of 字符串)
calib_data = ["sample text 1", "sample text 2", ...] # 通常 128-512 条
model.quantize(calib_data)
model.save_quantized("./qwen2-7b-gptq")
量化后的模型可由 vLLM、ExLlama 等加载。
常用量化档位(GGUF)
| 档位 | 大小(相对) | 质量 | 适用场景 |
|---|---|---|---|
| Q2_K | 最小 | 较低 | 显存极限 |
| Q4_K_M | 小 | 较好 | 推荐默认 |
| Q5_K_M | 中 | 好 | 追求质量 |
| Q8_0 | 大 | 接近 FP16 | 高质量、显存够 |
验证清单
- 量化后模型可正常加载
- 简单问答输出合理
- 显存占用符合预期
- 速度相对 FP16 有提升(或可接受)