量化模型加载与推理

入门·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 或驱动版本不匹配;
  • 模型格式和加载库不兼容;
  • 显存仍然不足;
  • 输出乱码;
  • 速度比预期慢;
  • 量化后质量下降明显。

小结

量化模型加载的目标是在资源有限时获得可接受效果。选择量化版本时,要同时比较内存、速度和质量,并保留评估记录。