AntiOutlierConfig
功能说明
构建用于异常值抑制的config。
函数原型
AntiOutlierConfig(w_bit=8, a_bit=8, w_signed=True, a_signed=False, w_sym=True, a_sym=False, alpha=0.5, os_k=100, ch_align=True, w_adjust=True, anti_method="m1", dev_type="cpu", dev_id=0)
参数说明
参数名 |
输入/返回值 |
含义 |
使用限制 |
---|---|---|---|
w_bit |
输入 |
权重量化bit。 |
可选。 数据类型:int。 默认为8,可选值为[4,8,16]。 |
a_bit |
输入 |
激活层量化bit。 |
可选。 数据类型:int。 默认为8,可选值为[8,16]。 |
w_signed |
输入 |
是否对权重进行符号量化。 |
可选。 数据类型:bool。 默认为True。 |
a_signed |
输入 |
是否对激活值进行符号量化。 |
可选。 数据类型:bool。 默认为False。 |
w_sym |
输入 |
权重是否对称量化。 |
可选。 数据类型:bool。 默认为True。 |
a_sym |
输入 |
激活值是否对称量化。 |
可选。 数据类型:bool。 默认为False。 |
alpha |
输入 |
m1方法异常值抑制程度。 |
可选。 数据类型:float。 取值范围[0,1],默认值为0.5。 |
os_k |
输入 |
m2方法抑制迭代次数。 |
可选。 数据类型:int。 默认值:100。 |
ch_align |
输入 |
是否使用通道对齐方式。 |
可选。 数据类型:bool。 默认为True。 |
w_adjust |
输入 |
是否调整权重。 |
可选。 数据类型:bool。 默认为True。 |
anti_method |
输入 |
异常值抑制anti_outlier使用方法。 |
数据类型:string 可选值['m1', 'm2']。
|
dev_type |
输入 |
device类型。 |
可选。 数据类型:object。 可选值:['cpu', 'cuda', 'npu'],默认为'cpu',不支持用户修改。 |
dev_id |
输入 |
DEVICE ID。 |
可选。 数据类型:int。 取值范围[0,8],默认值为0。 |
调用示例
from modelslim.pytorch.llm_ptq.anti_outlier import AntiOutlier, AntiOutlierConfig anti_config = AntiOutlierConfig(anti_method="m2") anti_outlier = AntiOutlier(model, calib_data=dataset_calib, cfg=anti_config, model_type='Llama') anti_outlier.process() calibrator = Calibrator(model, quant_config, calib_data=dataset_calib, disable_level='L0') calibrator.run(int_infer=False) calibrator.save(qaunt_weight_save_path)