买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种Self-Attention算子的量化方法_合肥君正科技有限公司_202211287706.1 

申请/专利权人:合肥君正科技有限公司

申请日:2022-10-20

公开(公告)日:2024-04-23

公开(公告)号:CN117917673A

主分类号:G06N3/0495

分类号:G06N3/0495

优先权:

专利状态码:在审-公开

法律状态:2024.04.23#公开

摘要:本发明提供一种Self‑Attention算子的量化方法,包括:S1,对第一matmulmatmul1进行量化:根据量化原理公式2对第一matmulmatmul1进行量化;S2,对第二matmulmatmul2进行反量化Dequantize,以便做softmax操作:由于softmax的数据流是float数据,而matmulInt8qint8,kint8的输出是整型数据,所以插入Dequantize操作;S3,对softmax进行量化:softmax的输出数据类型为float,将作为matmulInt8的输入,为保证matmul操作的数据流为整型数据,需要量化softmax的输出;S4,对第三matmulmatmul3进行量化。本方法中Attention内部的matmul操作已全部量化,即matmul的数据流为整型数据。本申请方法简单,AttentionInt8算子的scale计算都在线下完成,且其内部matmul操作的数据流为整型,在保证精度的同时,大大减少了终端推理时AttentionInt8的计算量和搬运数据所用的时间。

主权项:1.一种Self-Attention算子的量化方法,其特征在于,所述方法包括以下步骤:S1,对第一matmulmatmul1进行量化:量化公式推导:量化实际上是一个放射变换,通常分为对称量化和非对称量化:r=s×q-z公式1,其中r为量化前数值,s为缩放因子,q为量化后数值,z表示零点,映射的常用形式可分为非对称量化和对称量化两种,两者的区别在于量化值区间是否限制了量化前后零点对应,对称量化中z=0,故r=s×q公式2;根据量化原理公式2对第一matmulmatmul1进行量化:表示为下面公式3:qkv=input_scale*w_scalematmulinputInt,weightInt+biasinput_scale*w_scale,其中,qkv为qkv的拼接input_scale为Attention算子的输入scale;w_scale为qkv权重拼接的scale,即的scaleinputInt为量化后的Attention算子的输入,是整型数据;weightInt为量化后的即亦为整型数据;bias为q_bias、k_bias和v_bias的拼接,即表示为下面公式4:qkvmatmul_op_float_scale=input_scale*w_scale,表示为下面公式5: 其中,q_matmul_op_float_scale与k_matmul_op_float_scale的含义详见公式:S2,对第二matmulmatmul2进行反量化Dequantize,以便做softmax操作:由于softmax的数据流是float数据,而matmulInt8qint8,kint8的输出是整型数据,所以插入Dequantize操作;S3,对softmax进行量化:softmax的输出数据类型为float,将作为matmulInt8的输入,为保证matmul操作的数据流为整型数据,需要量化softmax的输出;S4,对第三matmulmatmul3进行量化:表示为下面公式10:output=matmulvInt*vmatmul_op_float_scale,softmax_outputInt*softmax_output_scale;其中,output是Attention算子的输出;vInt是v量化后的值,为整型数据;vmatmul_op_float_scale来自公式4v_matmul_op_float_scale;softmax_outputInt为softmax操作的输出softmax_output的量化值,为整型数据;softmax_output_scale为softmax输出的scale;表示为下面公式11:outputUint_=cliproundoutputoutput_scale,min,max;对于一个量化后的模型,AttentionInt8算子的输出将是一个量化后的算子的输入,所以得到output后,需要对其进行量化,如公式11所示,其中,min=-2bit-1,max=2bit-1-1,其中bit为量化位宽;表示为下面公式12:output=matmulvInt,softmax_outputInt*vmatmul_op_float_scale*softmax_output_scale;公式12与公式11等价;表示为下面公式13:outputUint_=cliproundmatmulvInt,softmax_outputInt*vmatmul_op_float_scale*softmax_output_scaleoutput_scale,min,max;结合公式12和公式11可得公式13。

全文数据:

权利要求:

百度查询: 合肥君正科技有限公司 一种Self-Attention算子的量化方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。