首页
TVP 最新优惠活动
学习
活动
专区
工具
返回腾讯云官网
想当年,其实估摸着也就大半年前,多多同学还在实验室瞪大眼睛盯着一种叫做xilinx系列的板子,调试着一种叫做VHDL的语言,还记得那个写代码的工具叫做Vivado,不知道大家听说过没有?那个时候,我想实现一个复杂的公式,涉及的计算稍微复杂点(比如来个开方)就要写一大串代码(虽然常用的复杂函数是有IP核可以调的),同时调试过程十分麻烦,甚至要具体到clock对齐。总而言之,十分难忘。那个时候业余时间写下一行Python代码解决一个问题,简直可以直呼“爽啊”。当然,硬件代码虽然难写,但毕竟计算速度、能耗比、并行优势一直很好,所以即便不好写,还是依旧使用广泛。
那么回到今天的主题,在这样只能进行整型数计算的设备上,我们的无敌的BERT如何部署上去呢?当多多看到这篇文章的时候,立刻就来分享给大家了。以下内容主要参考文章:I-BERT: Integer-only BERT Quantization。代码已开源,HuggingFace Git 仓库也有。
相关背景
I-BERT主要贡献
图1 对比I-BERT和之前的工作
I-BERT实现
I-BERT全文都在传递一个思想,其实和我上一篇写的贝叶斯优化很相似:如果一个函数的计算解决不了,就找个近似函数,如果近似函数不好找,就限定自变量范围来找!
1
基本量化方法
这里简单介绍以基本的量化概念和方法,在uniform symmetric quantization框架下(对称、均匀的量化),一个实数x会被映射成一个整数q,q的范围是[-2^(b-1), 2^(b-1) -1],b为量化的bit数,正式定义为:
简单来讲为:
把量化的结果转化为原始值也就是用q乘以上式中的分母,可以看到量化是损失的,一般来说,量化之后再反量化过程无法得到和原来一摸一样的数字。除了均匀量化,还有很多非均匀、不对称的量化方法,这里不再深入介绍。
1
Integer-Only的非线性函数GELU计算
我们先放出非线性GELU的表达式,然后思考下这么复杂的函数如何用整数计算进行近似估计,orz我感觉挺难的反正:
I-BERT是这么解决这个问题的?
由于整型计算可以计算2阶多项式,比如a(x+b)^2 + c。那么先用2阶多项式估计GELU函数,再用整型计算2阶多项式。为什么是2阶不是更高阶呢?因为阶数约高,估算函数也越复杂,作者发现2阶多项式足够估计GELU了。
2阶多项式估算GLUE又可以转化为优化如下目标函数,主要是对erf函数进行估计:找到一个2阶多项式,系数为a,b,c,能让GELU函数与2阶多项式误差最小。
erf函数有这么两个特点:对于输入很大的值而言,erf结果基本趋近于1或者-1,并且erf函数还是一个奇函数,因此只考虑优化正实数域的优化。在这两个特点下,作者找到一个相对较优的2阶多项式:
其中a=-0.2888,b=-1.769。sgn为符号函数。最终GELU的近视表达为:
整个GELU的估算和效果如图所示:
图2 GELU算法和效果
1
Integer-Only的softmax计算
个人觉得这几个估算十分精妙!
softmax函数的表达式是和特点:
然后可以发现x=x-x_max之后都会变成非正数,然后任何一个非正数可以表达为x=(-ln2)z + p,其中z是一个非负整数,p是一个在[-ln2,0]之间的实数,因此x的指数可以表示为:
>>是移位运算,在整型逻辑计算硬件中十分常见。最终将估计问题变化为简单的:估计[-ln2,0]之间的p的指数值。同样使用2阶多项式进行估计,最终得到:
到这里,整个integer-only的softmax计算逻辑如图所示:
图3 Softmax估计算法
1
Integer-Only的Layer Norm
Layer Norm在Transformer中大量使用,并且使用了非线性函数来计算方差和均值。
而且,注意LayerNorm的计算是在模型运行的是时候动态计算的,所以这些开方、平方运算也需要跟着一起算。不过这些平方、开方运算在整型运算里面还算常见,常见的方法就是迭代求解。如下图所示,便不再详细介绍啦:
图4 Layer Norm中的平方根估算方法
1
I-BERT的效果
虽然说I-BERT能完成用整型计算得到Transformer的结果了,但也不能损失太多的效果。总体上I-BERT的效果是不错的。如下图所示:
图5 GLUE任务上的效果
同时I-BERT在硬件上的运算速度也很好,相比于浮点数计算有2-4倍的加速。
图6 硬件运行加速对比
总结
本文对I-BERT进行了介绍,整体上I-BERT能完全基于整型计算进行,并且对于GELU、Softmax、LayerNorm的估算非常有借鉴意义。笔者能从这几个估算过程感受懂啊数学之美啊!!!!!
本文分享自 AI部落联盟 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
玻璃钢生产厂家猪年春节商场美陈普陀区拉丝玻璃钢雕塑品牌企业扬州玻璃钢造型雕塑济南玻璃钢花盆销售厂家玻璃钢雕塑项目特征居语生产定制的玻璃钢蜗牛雕塑顺义节日商场美陈玻璃钢雕塑凳子价格山东艺术商场美陈批发价深圳罗湖玻璃钢花盆大连仿铜玻璃钢雕塑公司室外校园玻璃钢雕塑生产厂家马鞍山玻璃钢雕塑厂家福建开业商场美陈制作加厚玻璃钢花盆玻璃钢艺术雕塑价位福州玻璃钢天壶雕塑阳江玻璃钢雕塑参考价佛山美陈玻璃钢动物雕塑广州美陈最好的商场商场美陈dp点设计红旗玻璃钢雕塑费用上海玻璃钢雕塑商仿铜西式玻璃钢雕塑多少钱北京开业商场美陈研发公司安庆玻璃钢牌匾雕塑玻璃钢花盆儿童画板于都玻璃钢微雕塑福州三明玻璃钢花盆上海美陈商场香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万