llmcompressor.observers.base
类
-
Observer–用于在观察后计算量化参数的观察者基类
Observer
Observer(
base_name: str,
args: QuantizationArgs,
module: Optional[Module] = None,
**observer_kwargs,
)
Bases: InternalModule, RegistryMixin
用于在观察权重、激活或注意力状态后计算量化参数的观察者基类。
示例
module = ...
observer = Observer.load_from_registry(observer, base_name="weight", args=...)
module.global_scale = observer.get_global_scale(module.weight)
scales, zero_points = observer(module.weight)
参数
-
(base_namestr) –用于命名观察器属性的字符串
-
(argsQuantizationArgs) –用于校准和量化观测值的量化参数
-
(moduleOptional[Module], 默认值:None) –可选模块,附带量化参数。此参数是利用现有 qparams(例如 global_scale 或 g_idx)所必需的
-
–**observer_kwargs观察器初始化关键字参数
方法
-
forward–根据观测值计算更新后的缩放因子和零点
-
get_global_min_max–为了计算全局缩放因子而根据观测值计算最小值和最大值
-
get_global_scale–根据观测值计算更新后的全局缩放因子
-
get_min_max–根据观测值计算最小值和最大值
源代码位于 llmcompressor/observers/base.py
forward
根据观测值(权重、激活或注意力状态)计算更新后的缩放因子和零点。
参数
-
(observedTensor) –被观察的值
返回
-
ScaleZpTuple–校准后的缩放因子和零点
源代码位于 llmcompressor/observers/base.py
get_global_min_max abstractmethod
为了计算全局缩放因子而根据观测值计算最小值和最大值
参数
-
(observedTensor) –形状为 (num_observations, 1, group_size) 的值
返回
-
MinMaxTuple–最小值和最大值,其形状为 (1, )
源代码位于 llmcompressor/observers/base.py
get_global_scale
根据观测值(权重、激活或注意力状态)计算更新后的全局缩放因子。
参数
-
(observedTensor) –被观察的值
返回
-
Tensor–校准后的全局参数
源代码位于 llmcompressor/observers/base.py
get_min_max abstractmethod
根据观测值计算最小值和最大值
参数
-
(observedTensor) –形状为 (num_observations, *qparam_shape, group_size) 的值
返回
-
MinMaxTuple–最小值和最大值,其形状为 (*qparam_shape, )