Std:敏感层分析算法说明¶
简介¶
- 概述:std 度量用于
msmodelslim analyze的linear范围分析:在线性层(及支持的卷积层)激活上采集统计量,用数值范围与标准差的比值作为敏感度分数,对线性层粒度排序。 - 核心思想:量化误差与动态范围、离散程度相关;在激活标准差较大时,相同动态范围下的相对扰动更小,故用
max(|max|,|min|)/std形式的 score 刻画层对量化的敏感程度。
使用前准备¶
安装 msModelSlim 工具,详情请参见《msModelSlim工具安装指南》。
原理¶
- 统计量:在校准前向过程中,对目标层激活统计全局最大/最小值及基于数据中心平移后的标准差。
- 分数(score):
- $\text{abs_max} = \max(|\text{max_value}|, |\text{min_value}|)$
- $\text{score} = \text{abs_max} / \text{std}$(实现中对 $\text{std}=0$ 等情况有防护处理)
- 解读:score 越大表示该层对量化越敏感,反映其激活具有较大的范围/波动比值;具体阈值需结合模型与业务精度要求判断。
适用要求¶
- 推荐场景:常规量化前的敏感层粗筛。
- 计算特点:实现相对轻量,运行速度较快。
- 模型适配:无需模型适配器额外实现分析接口;
model_type支持范围参见参见《大模型支持矩阵》。
功能介绍¶
命令行示例¶
msmodelslim analyze linear \
--model_type Qwen2.5-7B-Instruct \
--model_path ${model_path} \
--metrics std \
--calib_dataset ${calib_dataset} \
--pattern "*.down_proj*" "*.o_proj*" \
--topk 15 \
--device npu
命令行参数说明¶
| 参数 | 说明 |
|---|---|
linear |
线性层敏感度分析 |
--metrics |
指定分析算法,取值为 std 时使用本算法 |
--pattern |
层名通配符,过滤待分析线性层 |
完整参数见敏感层分析工具使用指南参数说明。
FAQ¶
与其他 linear 指标(quantile、kurtosis)如何选用?¶
现象: 不确定 std 与 quantile、kurtosis 如何取舍,或希望了解各指标侧重点。
解决方案: 三者均针对线性层激活分布,std 侧重范围与离散度比值;若数据含较多离群点可配合 quantile;若关注尖峰与尾部可配合 kurtosis。可阅读对应算法说明后按场景选择。