LLM.int8()——自适应混合精度量化方法
创始人
2024-03-18 03:43:47
0次

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)相结合,能够有效的分区域设置量化分辨率,并消除异常值对模型量化带来的负面影响:

  • Vector-wise量化:将特征与权重分别按行与列,划分为不同的Vector区域,各自计算量化参数。将特征与权重转换为INT8整数后,量化计算过程执行Inner-product,输出INT32乘累加结果(INT8->INT32);反量化计算过程执行Outer-product,将INT32结果还原为FP16精度(INT32->FP16)。具体如下(采用对称量化形式):

  •  混合精度分解:对于异常值所在区域(Vector-wise area),按FP16数值精度执行Inner-product,计算结果累加到Vector-wise量化结果:

 通过自适应混合精度量化,能有效提升大模型的量化精度保持效果,并减少推理部署的资源成本:

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...