Paper地址:https://arxiv.org/abs/2208.07339
GitHub链接:GitHub - TimDettmers/bitsandbytes: 8-bit CUDA functions for PyTorch
随着模型参数规模的增加,大模型(如GPT-3,OPT-175B等NLP稠密大模型)的实际部署应用,需要消耗一定的计算/存储资源,且推理响应延迟存在限制,例如:基于Triton的分布式并行推理,OPT-175B部署在8张A100设备上时,推理延迟约400ms(Batch size=1)。
模型量化是实现模型压缩与推理加速的常用技术手段,但由于大模型本身巨大的参数规模,首先权重矩阵与特征张量的维度都很高,对权重与特征都直接采用Per-tensor量化会造成较大的估计失偏,无法较好还原实际的数据分布。其次,异常值(Outliers)对模型量化后的预测精度也会造成很大影响,当NLP稠密大模型的参数规模在6.7B时,尽管异常值的占比仅占0.1%,但将这些异常值都置零,会直接导致预测精度劣化20%。
如上图所示,本文提出的自适应混合精度量化方法(命名为LLM.int8,是一种训练后量化方法),通过将Vector-wise量化与混合精度分解(Mixed-precision Decomposition Scheme)相结合,能够有效的分区域设置量化分辨率,并消除异常值对模型量化带来的负面影响:
通过自适应混合精度量化,能有效提升大模型的量化精度保持效果,并减少推理部署的资源成本: