Appearance
Importance Matrix (imatrix) 通过校准数据统计各张量的重要性,指导量化时保留关键权重,提升量化模型的质量。
为什么需要 imatrix
标准量化对所有权重一视同仁,但模型中不同权重对输出的影响差异很大。imatrix 识别出更"重要"的权重,在量化时给予更高精度,从而在相同压缩率下获得更好的模型质量。
核心原理
- 收集统计 — 在校准数据上运行推理,记录每个张量的激活值
- 计算重要性 — 基于激活值的统计量(如方差、范数)评估重要性
- 指导量化 — 重要的张量使用更高精度的量化类型
bash
# 步骤 1: 生成 imatrix
./llama-imatrix -m model-F16.gguf -f calibration.txt -o imatrix.dat
# 步骤 2: 使用 imatrix 量化
./llama-quantize --imatrix imatrix.dat model-F16.gguf model-Q4_K_M.gguf Q4_K_M校准数据通常使用 ~100K-1M token 的多样化文本。
在源码中的实现
tools/imatrix/— imatrix 生成工具ggml/src/ggml-quants.c— 量化时使用 imatrix 数据tools/quantize/— 量化工具支持--imatrix参数
相关概念
- quantization — imatrix 服务的量化过程
- gguf — imatrix 数据可以嵌入 GGUF 文件
- ggml — 量化在 GGML 层实现