量化模型加载与推理
入门·10 分钟·通过可运行代码讲解「量化模型加载与推理」,覆盖环境准备、核心代码、参数说明、异常处理、工程化改造和练习任务,适合 AI 编程入门。
量化模型加载与推理
量化模型通过降低参数精度减少显存和内存占用,让普通设备也能运行较大的模型。学习量化模型时,要同时关注能否加载、推理速度和质量损失。
量化格式是什么
常见精度包括 FP16、INT8、INT4。精度越低,模型越小,速度可能越快,但效果也可能下降。
例如同一个 7B 模型,FP16 可能需要十几 GB 显存,4bit 量化后占用会明显下降。
使用场景
- 本地聊天助手;
- 边缘设备推理;
- 成本敏感的批处理;
- 快速原型验证;
- 无法使用大显存服务器的学习环境。
加载模型的伪代码
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = 'your-quantized-model'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map='auto'
)
inputs = tokenizer('用三句话解释量化模型', return_tensors='pt')
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
不同量化方案需要不同依赖,例如 bitsandbytes、GGUF、GPTQ、AWQ 等。
评估不能省
量化后要用真实任务测试:
- 简单问答是否正常;
- 长文本是否退化;
- 代码生成是否变差;
- 专业术语是否混乱;
- 推理速度是否符合预期。
不要只问一个“你好”就认为模型可用。
常见问题
- CUDA 或驱动版本不匹配;
- 模型格式和加载库不兼容;
- 显存仍然不足;
- 输出乱码;
- 速度比预期慢;
- 量化后质量下降明显。
小结
量化模型加载的目标是在资源有限时获得可接受效果。选择量化版本时,要同时比较内存、速度和质量,并保留评估记录。