推理量化(INT8 Quantization)

1. absmax: 以fp16的0,对齐signed int8的0; 矩阵里fp16所有数的绝对值里最大的值,作为127,得到量化Scale值;乘法计算的时候,直接INT8*INT8=INT32,再缩放至INT8以进行下次计算;

2. max-min: 适合2个矩阵数值正负不均匀的情况,例如大部分是正数或大部分是负数。fp16矩阵里的(max-min)映射到255这个范围,fp16的0映射到int8的Z;

Af = Ai * SA + ZA

Bf = Bi * SB + ZB

其中,Af是A的fp16;Ai是A的int8;SA是量化scale;ZA是int8的Zero值;

则: Af*Bf

= (Ai * SA + ZA) * (Bi * SB + ZB)

= Ai*Bi*SA*SB + Ai*SA*ZB + Bi*SB*ZA + ZA*ZB

所以,Ai*Bi矩阵计算完成后,还要加上Ai矩阵乘以系数,再加上Bi矩阵乘以系数,再加ZA*ZB常数,该int32矩阵再缩放到int8,才是结果;

LLM.int8():

论文:2208.07339 (arxiv.org)

A Gentle Introduction to 8-bit Matrix Multiplication for transformers at scale using transformers, accelerate and bitsandbytes (huggingface.co)l

用的是absmax量化,即0是中点; INT8*INT8然后累加得到INT32(才能不溢出,INT16不够);

不是整个矩阵使用1个scale;而是每行或每列使用独立的scale:

row-wise quantization for the hidden state and column-wise quantization for the weight matrix 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值