一句话定义

误差反馈(Error Feedback) 指在量化过程中,把这次被舍入丢掉的误差记下来,在后面的步骤里补回去,而不是让它直接消失。

这个思路最早用在通信和分布式训练的梯度压缩里——压缩时损失的梯度留在本地,下一轮再传。现在它也被用在模型量化和模型压缩上。

它解决什么问题

量化就是「把连续的数值塞进有限的格子」。每个数值塞进去都会有一点偏差。单个偏差很小,但有两个放大机制:

  • 累积:逐层往下传、或者逐轮迭代,偏差不断叠加。
  • 方向一致:如果舍入总是偏向同一边(比如一律向下取整),误差就不会互相抵消,模型输出会出现系统性偏移,而不是两边对称的抖动。

误差反馈针对的就是这两点:把误差当成一笔要还的账,先攒着,后面还。

关键做法

  • 残差缓存:维护一份「上次被舍掉多少」的记录;本轮输入先加上这份残差,再量化。
  • 系数可调:补多少不是只有「全补」一个选项。arXiv 论文 Revisiting Error Feedback for Model Quantization(编号 2610.18139)把误差反馈的系数当作可设计的变量来研究,并把瞬时量化误差建模为独立、零均值的随机量——也就是说反馈强度可以按场景标定。
  • 分层补偿要分情况:逐层量化时,让每一层去补偿上游继承下来的误差,并不总是有效。这个边界在 arXiv 的另一篇工作(编号 2610.16020)里有专门讨论。

用不上的时候

  • 误差反馈要存状态。对内存紧张的端侧设备,多一份残差缓存就是一份额外开销,未必划算。
  • 它属于量化流程内部的一步,不是设备上随时开关的功能。推理模型的权重量化通常在离线完成,误差反馈的价值体现在那一步做得好不好。
  • 补偿有上限。如果位宽低到信息本身就不够,反馈只能减轻偏移,救不回精度——该加位宽的地方还得加。

参考

  • arXiv Revisiting Error Feedback for Model Quantization(编号 2610.18139)
  • arXiv When Does Compensating Inherited Quantization Error Help? Mean-Square Guarantees for Layer-Wise Quantization and Their Limits(编号 2610.16020)

延伸阅读

相关词条


火眼识别提供端侧视觉引擎与设备管理平台,相关方案见 火眼识别官网。