在本地运行 LLMs 时,GGUF 是目前最流行的格式。它体积小巧、易于分发,并能与 llama.cpp
等推理框架或 ollama
等用户友好工具无缝协作。
但需要明确的是,GGUF 模型与原始版本并不相同。除非使用完整的 16 位版本,否则你运行的实际上是模型的量化版本。这意味着权重参数通常被压缩至 8 位、4 位甚至 2 位精度,以减小体积并经常能加速推理过程。
这类量化通常能较好地保持精度,尤其是 4 位量化,对于中短长度的英文输入任务效果良好。但过往研究表明,在某些场景下(如长序列或多语言输入),模型质量会出现明显下降。
此外还存在一个容易被忽视的问题:推理参数设置。模型发布时,作者通常会推荐温度值(temperature)、top-p 等参数的默认值,这些数值是针对标准测试集调优的。但模型经过量化后,其内部概率分布会发生偏移,原始超参数可能不再是最优选择。
在本文中,我将证明这一点对于极低位宽模型(例如量化至 2 位的 Q2_K 格式模型)尤为显著。我发现量化模型对温度参数(temperature)和 top-p 值异常敏感,即使微小的调整也可能导致准确率明显下降。
为验证这一现象,我在 Qwen3 系列模型上测试了 300 种不同的超参数组合,涵盖 AWQ、bitsandbytes 4-bit 以及 2 位/4 位 GGUF 等多种量化方法。推理过程采用 vLLM 框架,并通过 IFEval 准确率指标评估模型表现。
温度