蒸馏作用于两个独立模型之间的关系,通过损失函数引导学生模型学习教师模型。剪枝则直接作用于单个模型内部,通过评估参数重要性移除冗余连接或神经元。蒸馏会创建一个全新的模型架构,而剪枝保持原模型架构不变,仅使部分权重变为零或移除整个通道。
蒸馏的典型压缩比为 5 至 20 倍,精度损失通常在 0% 至 5% 之间,适合需要高泛化能力的场景。结构化剪枝的压缩比一般为 2 至 4 倍,精度损失在 1% 至 5% 之间,适合硬件支持稀疏计算的部署环境。非结构化剪枝虽能达到更高压缩比,但需要专用硬件才能实现实际加速。
蒸馏需要重新训练学生模型,涉及教师推理和学生训练两部分的计算开销,实施成本相对较高。但从长期收益看,蒸馏产生的学生模型可以跨平台灵活部署,无需特殊硬件支持。剪枝中的训练后剪枝实施成本较低,但部署时需要硬件支持稀疏矩阵运算才能获得实际加速。