量化对大模型影响有多大?——KL散度测试深度解析
2023-11-23AI大模型量化KL散度技术分析
引言
在AI领域,量化是一种常用的技术,它通过减少模型中参数的位数来压缩模型大小,从而减少存储和计算需求。然而,量化也会导致模型精度的损失。本文将通过KL散度测试,探讨量化对大型AI模型的实际影响。
量化与模型性能
量化通常使用的指标是困惑度(perplexity),但这个指标并不详尽,只能大致反映模型对选定样本的预测能力。因此,我们使用KL散度来比较不同量化级别的模型概率相似性。
以下是Mistral 7b模型在不同量化级别下的KL散度变化:
- fp16 = 约0(原始概率)
- Q8_0 = 约0.06
- Q6_K = 约0.1
- Q5_K_M = 约0.3
- Q4_K_M = 约1.0
- Q3_K_M = 约3.7
- Q2_K = 约8.2
这些数据显示,随着量化级别的降低,模型的概率相似性损失增加。
高难度Token的影响
如果我们专注于那些受量化影响最大的Token,情况会变得更加明显。例如,对于顶部约5%受量化影响最大的Token,量化级别越低,它们的KL散度差异越大。
不同模型大小的比较
我们还对13b模型进行了类似的测试。结果表明,尽管参数量更多的模型受量化影响较小,但即便是对于13b模型,极端量化的影响仍然相当明显。
例如,13b模型的Q2_K量化级别平均KL散度为0.058,而Mistral 7b模型的同一量化级别为0.082。
结论
通过KL散度测试,我们可以更客观地理解量化对大型AI模型的实际影响。这些测试结果有助于我们在选择量化级别时做出更明智的决策,并对模型性能有更准确的预期。
参考链接与图片
相关数据表格
以下是70B模型在不同量化级别下的困惑度表格:
| Quantization | Model size (GiB) | Perplexity | Delta to fp16 |
|---|---|---|---|
| Q4_0 | 36.20 | 3.5550 | 3.61% |
| Q4_1 | 40.20 | 3.5125 | 2.37% |
| Q5_0 | 44.20 | 3.4744 | 1.26% |
| Q2_K | 27.27 | 3.7339 | 8.82% |
| … | … | … | … |
| fp16 | 128.5 | 3.4313 | - |
这些数据表明,直到5位量化,甚至往往是4位量化,模型性能都能保持良好,但之后性能下降会变得非常明显。
结语
量化确实会对大型AI模型的性能产生影响,但通过合理选择量化级别和参数量,我们仍然可以在保证性能的同时,实现模型的压缩和优化。希望这些测试能为AI领域的研究者和开发者提供有价值的参考。