《A White Paper on Neural Network Quantization》翻译总结

本文翻译自《A White Paper on Neural Network Quantization》,探讨了神经网络量化的基本原理和硬件背景,包括量化对矩阵乘法计算的影响、均匀感知量化、对称量化、量化粒度以及量化模拟。特别指出,权重通常采用非对称量化,激活值则使用对称量化,以平衡计算开销和精度。此外,还介绍了后训练量化(PTQ)方法,该方法无需重新训练,仅需少量校准数据即可将预训练模型转换为定点模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Quantization fundamentals

Hardware background

这部分内容主要探索量化的硬件背景以及如何让推理在设备上跑起来。
图1展示了神经网络中矩阵向量乘法y=Wx+b\boldsymbol{y}=\boldsymbol{W}\boldsymbol{x} + \boldsymbol{b}y=Wx+b的计算示意图,这是矩阵乘法和卷积的一个基础组件,主要通过尽可能多的计算并行来提高NN推理的效率。
在这里插入图片描述
该神经网络加速器的两个基本组件分别是:processing elements(Cn,mC_{n,m}Cn,m)和accumulators(AnA_{n}An),在上图示例中共有16个processing elements和4个accumulators,具体的计算公式如下:
An=bn+∑mCn,m A_{n}=\boldsymbol{b}_{n} + \sum \limits_{m}C_{n,m} An=bn+mCn,m
其中Cn,m=Wn,mxmC_{n,m}=\boldsymbol{W}_{n,m}\boldsymbol{x}_{m}Cn,m=Wn,mxmWn,m\boldsymbol{W}_{n,m}Wn,m为权重值,xm\boldsymbol{x}_{m}xm为输入数据,bn\boldsymbol{b}_{n}bn为偏移值。
上述计算操作也被称为Multiply-Accumulate (MAC),在大的矩阵乘中这个步骤会重复很多遍,所有循环执行结束后accumulators将被保存用于下一层NN推理。通常神经网络使用float32的权重和激活值进行训练,而MAC操作和数据搬运消耗了推理过程的大部分能量,因此使用低比特定点化或者量化可以获得比较大的收益。低比特量化不仅可以减少数据搬运的次数,同时可以降低MAC操作的尺寸和功耗。
将浮点操作转换为定点,需要先对浮点向量进行定点化。假设浮点向量为x\boldsymbol{x}x,则其可以表示为:
x^=sx⋅xint≈x \widehat{\boldsymbol{x}}=s_{x} \cdot\boldsymbol{x}_{int}\approx \boldsymbol{x} x =sxxintx
其中sxs_{x}sx浮点类型的尺度因子,xint\boldsymbol{x}_{int}xint是整形向量(如int8),x^\widehat{\boldsymbol{x}}x 表示量化后的矢量。则MAC操作的量化形式可以表示为:
A^n=b^n+∑mW^n,mx^m=b^n+∑m(sWWn,mint)(sxxmint)=b^n+sWsx∑mWn,mintxmint {\widehat{\boldsymbol{A}}_{n}}={\widehat{\boldsymbol{b}}_{n}}+ \sum \limits_{m}{\widehat{\boldsymbol{W}}_{n,m}}{\widehat{\boldsymbol{x}} _{m}}={\widehat{\boldsymbol{b}}_{n}}+ \sum \limits_{m}(s_{\boldsymbol{W}}{\boldsymbol{W}}_{n,m}^{int})(s_x{\boldsymbol{x}}_{m}^{int})={\widehat{\boldsymbol{b}}_{n}}+s_{\boldsymbol{W}}s_{\boldsymbol{x}}\color{purple}\sum \limits_{m}{\boldsymbol{W}}_{n,m}^{int}{\boldsymbol{x}}_{m}^{int} A n=b n+mW n,mx m=b n+m(sWWn,mint)(sxxmint)=b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值