llmcompressor.modifiers.pruning.sparsegpt.base
类
-
SparseGPTModifier–用于对模型应用一次性 SparseGPT 算法的修饰符
SparseGPTModifier
Bases: SparsityModifierBase
用于对模型应用一次性 SparseGPT 算法的修饰符
示例 yaml
test_stage:
obcq_modifiers:
SparseGPTModifier:
sparsity: 0.5
mask_structure: "2:4"
dampening_frac: 0.001
block_size: 128
targets: ['Linear']
ignore: ['re:.*lm_head']
生命周期
- on_initialize
- register_hook(module, calibrate_module, "forward")
- on_sequential_batch_end
- sparsify_weight
- on_finalize
- remove_hooks()
参数
-
–稀疏度模型压缩到的稀疏度
-
–稀疏度配置文件可以设置为“owl”以使用离群值加权分层稀疏度(OWL),更多信息可在论文 https://arxiv.org/pdf/2310.05175 中找到
-
–掩码结构定义要应用的掩码结构的字符串。必须是 N:M 形式,其中 N、M 是定义自定义块形状的整数。默认为 0:0,表示非结构化掩码。
-
–owl_mOWL 中使用的离群值数量
-
–owl_lmbdaOWL 中使用的 Lambda 值
-
–块大小用于确定一次通过中要压缩的列数
-
–阻尼分数施加到 H 的阻尼量,作为对角范数的百分比
-
–保留稀疏度掩码在应用 sparsegpt 时是否保留稀疏度掩码,这在从以前修剪过的模型开始时很有用,默认为 False。
-
–卸载Hessian矩阵设置为 True 可减少内存使用但增加运行时。
-
–sequential_targets在 SparseGPT 期间要压缩的层名称列表,或“ALL”以压缩模型中的所有层。
targets的别名 -
–targets在 SparseGPT 期间要压缩的层名称列表,或“ALL”以压缩模型中的所有层。
sequential_targets的别名 -
–ignore可选的模块类名称或子模块名称列表,即使它们与目标匹配,也不进行量化。默认为空列表。
方法
-
calibrate_module–校准钩子,用于累积模块输入的 Hessian 矩阵
-
compress_modules–稀疏化已校准的模块
calibrate_module
校准钩子,用于累积模块输入的 Hessian 矩阵
参数
-
(moduleModule) –正在校准的模块
-
(argsTuple[Tensor, ...]) –模块的输入,其中第一个元素是规范输入
-
(_输出Tensor) –未压缩的模块输出,未使用
源代码位于 llmcompressor/modifiers/pruning/sparsegpt/base.py
compress_modules
稀疏化已校准的模块