llmcompressor.modifiers.quantization.calibration
函数
-
calibrate_input_hook–用于校准输入激活的钩子。
-
calibrate_output_hook–用于校准输出激活的钩子。
-
freeze_module_quantization–校准完成后删除观察者。
-
initialize_observer–初始化观察者模块并将其作为子模块附加。
-
update_weight_zp_scale–将层标记为可校准,从而激活观察者。
calibrate_activations
通过调用模块的附加观察者来校准输入或输出激活。
参数
-
(moduleModule) –torch.nn.Module
-
(base_namestr) –用于获取观察者、比例和零点的子字符串。
-
(值Tensor) –将传递给观察者的 torch.Tensor。
源代码位于 llmcompressor/modifiers/quantization/calibration.py
calibrate_input_hook
用于校准输入激活的钩子。将调用观察者在模块的前向传递中应用输入 QDQ 之前更新比例/零点。
源代码位于 llmcompressor/modifiers/quantization/calibration.py
calibrate_output_hook
用于校准输出激活的钩子。将在应用输出 QDQ 之前调用观察者更新比例/零点。
源代码位于 llmcompressor/modifiers/quantization/calibration.py
call_observer
call_observer(
module: Module,
base_name: str,
value: Optional[Tensor] = None,
should_calculate_gparam: bool = False,
should_calculate_qparams: bool = True,
)
使用提供的值调用模块的附加输入/权重/输出观察者。使用观察者的返回值更新模块的比例和零点。
参数
-
(moduleModule) –torch.nn.Module
-
(base_namestr) –用于获取观察者、比例和零点的子字符串。
-
(值Optional[Tensor], 默认值:None) –将传递给观察者以进行激活的 torch.Tensor。如果 base_name 为“weight”,则将使用模块的权重张量。
源代码位于 llmcompressor/modifiers/quantization/calibration.py
freeze_module_quantization
校准完成后删除观察者。
使用 model.apply(freeze_module_quantization) 应用于整个模型。
参数
-
(moduleModule) –要冻结量化的模块。
源代码位于 llmcompressor/modifiers/quantization/calibration.py
initialize_observer
初始化观察者模块并将其作为子模块附加。观察者的名称从 quantization_args 中获取。然后使用该名称从注册表中加载观察者并将其附加到模块。观察者的名称使用提供的 base_name。
参数
-
(moduleModule) –正在向其附加观察者的 torch.nn.Module。
-
(base_namestr) –用于命名观察器属性的字符串
源代码位于 llmcompressor/modifiers/quantization/calibration.py
update_weight_zp_scale
将层标记为可校准,从而在每次前向传递时激活观察者以更新比例和零点。
使用 model.apply(update_weight_zp_scale) 应用于整个模型。
参数
-
(moduleModule) –要设置为校准的模块。
-
–quantize_weights_upfront在校准开始时自动运行权重量化。