1. 引言
量化的本质:通过将模型参数从高精度(例如32位)降低到低精度(例如8位),来缩小模型体积。
本文将采用一种训练后量化方法GPTQ,对前文已经训练并合并过的模型文件进行量化,通过比较模型量化前后的评测指标,来测试量化对模型性能的影响。
GPTQ的核心思想在于:将所有权重压缩到8位或4位量化中,通过最小化与原始权重的均方误差来实现。在推理过程中,它将动态地将权重解量化为float16,以提高性能,同时保持较低的内存占用率。
注:均方误差是评估两个数值数据集之间差异的一种常用方法,它通过计算量化后权重与原始权重之间的均方误差,并使之最小化,来减少量化过程中引入的误差,以保持模型在推理时的性能。
2. 量化过程
2.1 加载量化模型
首先引入必要的包,其中:
- auto_gptq: 一个用于模型量化的库,通常用于减少模型的内存占用和计算消耗。
- AutoGPTQForCausalLM: 用于加载和使用经过量化的因果语言模型。
- BaseQuantizeConfig: 定义量化模型时所需的参数