跳到主要内容

快速开始

方式一: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 有提升(或可接受)

下一步