HAQ: Hardware-Aware Automated Quantization with Mixed Precision

本文的创新点为:

作者认为,在不同的平台上,以及不同的layer上,合适的量化bit数都是不同的。但是如果想认为找到这个最优值是不可能的,于是作者使用强化学习的方法来找到最合理的量化bit数。

本来芯片是不支持混合精度的计算的,但随着硬件的发展,支持混合机精度计算的芯片也出现了:比如苹果的A12,NVIDIA的图灵GPU框架等,从而使得这种思路得以实现。

它的优点是完全自动化,不需要专家知识和启发式规则;且可以在不同的硬件平台上找到最优的量化策略;因为作者将硬件架构也作为参数,于是它可以直接降低模型的能量和存储需求及延迟;作者认为它还能为人工调整量化策略提供insight。

其流程如下:
HAQ: Hardware-Aware Automated Quantization with Mixed Precision_第1张图片
不太了解强化学习,就介绍一下作者的量化策略:

作者根据agent的action来决定当前层的量化bit数,其量化方案是:对权重,将其clamp到[-c,c]区间,然后使用线性量化。
在这里插入图片描述
在这里插入图片描述
这里c的值由以下公式决定:
在这里插入图片描述
而对激活值,量化方法也基本类似。除了一点,作者将激活值量化到[0,-c]区间,因为ReLU已经舍去了激活值的负值。

作者首先对参数进行量化,然后训练一个epoch做finetune,然后在验证集上跑一个前向传播作为损失,来指导agent的下一步行动。

你可能感兴趣的:(HAQ: Hardware-Aware Automated Quantization with Mixed Precision)