简要介绍典型quantization方式
AWQ
重点处理少量最重要的权重
- calib set推一遍forward,看激活值
- 太大的激活值对应的权重就定一个放大因子,让这些权重因为变大从而在量化时保留更多细节;输入的激活值相应缩小。
- 激活值一般还是FP16
- 速度快,泛化性更强(和GPTQ相比而言)
典型方案
通常的量化方案是:
-
注意模型尺寸
- 太小的(<3B)谨慎使用量化,这个道理对LLM也是适用的
-
使用量化框架将原始权重做成量化版本
- QAT:能训再用,一般魔改STE
- PTQ:通常直接AWQ
- 准备calib set(前向推理统计分析权重值,这个不用太大但要包含足够比例的业务数据)
- 定量化格式(AWQ基本就是W4A16,这个就是最常用的;新卡支持FP8要用其他工具,ModelOpt之类)
- 注:目前部署的时候一般不会NF4
-
推理框架直接加载
- W4A16-Marlin
- kvcache的量化在推理时开启