跳到内容

llmcompressor.pytorch.utils.sparsification

用于检索与模型稀疏化相关信息的辅助函数

ModuleSparsificationInfo

ModuleSparsificationInfo(
    module: Module,
    state_dict: Optional[Dict[str, Tensor]] = None,
)

用于提供与 torch Module 参数以及所应用稀疏化量相关信息的辅助类。包含剪枝和量化信息

参数

  • module

    (Module) –

    要分析的 torch Module

  • state_dict

    (Optional[Dict[str, Tensor]], 默认值: None ) –

    可选的 state_dict,用于代替 torch 模型进行分析。当分析 FSDP 模型时使用,此时可能无法访问完整的权重

属性

llmcompressor/pytorch/utils/sparsification.py 中的源代码
def __init__(
    self, module: Module, state_dict: Optional[Dict[str, torch.Tensor]] = None
):
    self.module = module

    if state_dict is not None:
        # when analyzing an FSDP model, the state_dict does not differentiate
        # between trainable and non-trainable parameters
        # (e.g. it can contain buffers) this means that the
        # self.trainable_parameters may be overestimated
        self.trainable_params = state_dict
    else:
        if hasattr(module, "_hf_hook"):
            self.trainable_params = get_state_dict_offloaded_model(module)
        else:
            self.trainable_params = {
                k: v for k, v in self.module.named_parameters() if v.requires_grad
            }

params_quantized property

params_quantized: int

返回

  • int

    量化层中的参数数量

params_quantized_percent property

params_quantized_percent: float

返回

  • float

    已量化的参数百分比

params_sparse property

params_sparse: int

返回

  • int

    模型中稀疏(0)可训练参数的总数

params_sparse_percent property

params_sparse_percent: float

返回

  • float

    模型中稀疏化参数的百分比

params_total property

params_total: int

返回

  • int

    模型中可训练参数的总数