【Transformer 与注意力机制】51|量化、蒸馏、剪枝:压缩改变的是三种不同的东西
内容提要
本文探讨大语言模型压缩的三种主要方法:量化、蒸馏和剪枝,它们分别作用于数值精度、训练目标和模型结构,因此不可直接比较。文章分析了GPTQ、AWQ、SmoothQuant等方法的假设差异,指出PPL指标在评估压缩效果时不可靠,且压缩可能损害推理能力、长上下文处理及安全行为,需根据具体应用场景谨慎选择压缩方法。
延伸解读
三种压缩方法不可直接比较
量化、蒸馏、剪枝常被并列讨论,但三者改变的对象完全不同:量化改变数值精度,蒸馏改变训练目标,剪枝改变模型结构。因此,它们不能仅凭压缩率或效果直接比较。例如,量化引入的是逐元素舍入误差,蒸馏的失败模式是目标函数选择不当,剪枝则可能造成能力损失。理解这些本质差异,有助于根据具体需求选择合适的方法。
PPL 指标可能掩盖真实退化
PPL 是评估压缩效果的常用指标,但它对所有 token 取平均,容易掩盖少数关键 token 上的错误。例如,模型可能在实体、数字等关键 token 上系统性变差,而 PPL 几乎不变。此外,PPL 对推理能力、长上下文处理和安全行为等维度的退化不敏感。因此,压缩后应使用专门基准(如 LLM-KICK、qllm-eval)进行多维度评估,不能仅依赖 PPL。
压缩可能影响安全与推理能力
压缩不仅影响模型性能,还可能改变其安全行为。例如,量化可能绕过对齐训练建立的拒答边界,导致模型对伦理敏感问题给出回答;而 KV Cache 量化则可能使模型更倾向于拒答。此外,多步推理和长上下文任务对压缩的容忍度较低,4-bit 量化在长输入任务上可能大幅掉点。因此,在安全关键或依赖推理能力的场景中,压缩后必须重新进行安全评测和任务专项测试。
Q&A
量化、蒸馏和剪枝这三种模型压缩方法分别改变模型的什么?
量化改变数值编码精度,不改变参数数量和计算图;蒸馏改变训练目标,不改变学生模型的结构;剪枝直接改变模型的计算图结构。
GPTQ、AWQ和SmoothQuant这三种量化方法的核心假设有什么不同?
GPTQ假设用一小批校准数据算出的Hessian矩阵足以代表权重量化误差对输出的影响,通过逐层最小二乘和误差补偿进行量化;AWQ假设权重的重要性可由对应输入激活的幅值读出,通过缩放通道来保护敏感权重,不需要计算Hessian;SmoothQuant假设量化难度可以在权重和激活之间无损转移,通过调整缩放因子重新分配动态范围,适用于W8A8量化。
为什么PPL指标在评估模型压缩效果时不可靠?
PPL是所有token上的平均,容易被大多数简单token预测正确掩盖少数关键token(如实体、数字、否定词)的系统性错误。压缩可能损害推理能力、长上下文处理及安全行为,而这些变化PPL无法捕捉。
模型压缩在哪些场景下可能带来风险?
在需要精确检索/复述的长上下文场景(如RAG、法律文档问答)、对齐/安全是红线的场景、依赖涌现能力(如复杂数学、多步推理)的场景,以及需要频繁再训练或持续微调的基座模型上,压缩可能带来风险。此外,极端叠加压缩而不做消融也会增加风险。
为什么4-bit量化模型的实际加速通常达不到理论上的四分之一延迟?
因为存在dequant开销(INT4权重需解压回BF16/FP16才能计算),且prefill阶段是计算密集型,量化加速有限。实际加速通常只有1.5到2倍,而非理论上的4倍。
蒸馏中forward KL和reverse KL有什么区别?为什么生成式LLM更适合用reverse KL?
forward KL以teacher分布为参照,鼓励student覆盖teacher的所有模式,包括长尾;reverse KL以student分布为参照,让student专注teacher的主要模式,放弃低概率长尾。生成式LLM自回归采样时,forward KL会导致student试图学习teacher的低概率续写模式,但容量有限学不好,产生exposure bias;reverse KL牺牲多样性换取生成精确性,更适合生成任务。
SparseGPT和Wanda在剪枝方法上的核心争论是什么?
SparseGPT认为精确的二阶信息(Hessian)补偿是必要的,能在LLM规模上实现高稀疏度而保持精度;Wanda则认为简单的激活感知启发式(权重幅值乘以激活范数)就足够,不需要计算Hessian,计算成本更低。争论的焦点是二阶信息是否值得计算,取决于目标稀疏度和场景。