llmcompressor.observers.mse
类
-
MovingAverageMSEObserver–通过寻找使量化误差平方的均值最小的最优 min/max 值来计算量化参数。
MemorylessMSEObserver
基类:Observer
通过寻找使量化误差平方的均值最小的最优 min/max 值来计算量化参数。
mse_quant_error := mean((x - fake_quant(x))**2)
global_scale <- min[min_vals, max_vals, global_scale](mse_quant_error(x))
scale, zp <- min[min_vals, max_vals](mse_quant_error(x, global_scale))
参数
-
–base_name用于命名观察器属性的字符串
-
–args用于校准和量化观测值的量化参数
-
–module可选模块,附带量化参数。此参数是利用现有 qparams(例如 global_scale 或 g_idx)所必需的
-
–**observer_kwargs用于 observer 初始化的关键字参数 maxshrink: 最大收缩量(以“网格步数”为单位)。搜索步数为 int(maxshrink * grid) patience: 在提前停止之前连续无改进的搜索步数 grid: 收缩搜索的分辨率。值越大,收缩因子的粒度越细 norm: 计算误差时使用的指数。norm = 2 近似 MSE global_scale: 用于量化的预计算全局尺度。如果
optimize_global_scale为 True,则忽略 optimize_global_scale: 如果为 True,则在搜索的每一步中从候选 min/max 重新计算global_scale。
源码位于 llmcompressor/observers/mse.py
MovingAverageMSEObserver
通过寻找使量化误差平方的均值最小的最优 min/max 值来计算量化参数。
mse_quant_error := mean((x - fake_quant(x))**2)
global_scale <- min[min_vals, max_vals, global_scale](mse_quant_error(x))
scale, zp <- min[min_vals, max_vals](mse_quant_error(x, global_scale))
参数
-
–base_name用于命名观察器属性的字符串
-
–args用于校准和量化观测值的量化参数
-
–module可选模块,附带量化参数。此参数是利用现有 qparams(例如 global_scale 或 g_idx)所必需的
-
–**observer_kwargs用于 observer 初始化的关键字参数 maxshrink: 最大收缩量(以“网格步数”为单位)。搜索步数为 int(maxshrink * grid) patience: 在提前停止之前连续无改进的搜索步数 grid: 收缩搜索的分辨率。值越大,收缩因子的粒度越细 norm: 计算误差时使用的指数。norm = 2 近似 MSE global_scale: 用于量化的预计算全局尺度。如果
optimize_global_scale为 True,则忽略 optimize_global_scale: 如果为 True,则在搜索的每一步中从候选 min/max 重新计算global_scale。