Transformer参数量和复杂度
创作时间:
作者:
@小白创作中心
Transformer参数量和复杂度
引用
CSDN
1.
https://blog.csdn.net/qq_45978862/article/details/141759507
在算法岗面试中经常会问到Transformer相关的基础知识。
首先需要清楚Transformer的参数量和复杂度分别在算什么。
定义:
- 参数量:神经网络中有很多参数矩阵,这个矩阵大小的和就是参数量,静态的,摆在那就在那,定量的。
- 复杂度:与输入的数据有关,动态的,跟计算公式有关,定性的。
Transformer的架构主要分成2部分: - Encoder:6层,每层包括 Multi-Head Self-Attention(MHSA)和FFN
- Decoder:6层,每层包括Masked MHSA、Multi-Head Cross-Attention和FFN
其他部分包括Input Embedding 、Postion Encoding以及最后解码的Linear层。
其中,每个MHSA、Masked MHSA、Multi-Head Cross-Attention和FFN中有含有Add&Norm操作。
参数量计算:
InputEmbedding:将vocab中的词映射到d维度,所以: vocab*d
Encoder+Decoder:
- MHSA/Multi-Head Cross-Attention/Masked MHSA:Q K V O 四个矩阵 【没有bias】
4 ∗ d ∗ d = 4 d 2 4dd=4d^24∗d∗d=4d2 - FFN :第一个矩阵先增到4d,第二个矩阵减到d。所以参数量为
d ∗ ( 4 d ) + 4 ∗ d + ( 4 ∗ d ) ∗ d + d = 8 d 2 + 5 d d*(4d) +4d + (4d)*d +d= 8d^2+5dd∗(4d)+4∗d+(4∗d)∗d+d=8d2+5d - layerNorm : 参数量就是γ \gammaγ和β \betaβ,所以是 2d
其实可以看到,MHSA的参数量仅有 FFNN 的一半。
T o t a l = I n p u t E m b e d d i n g + E n c o d e r + D e c o d e r = v o c a b ∗ d + 6 ∗ ( 4 d 2 + 2 d + 8 d 2 + 5 d + 2 d ) + 6 ( 4 d 2 + 2 d + 4 d 2 + 2 d + 8 d 2 + 5 d + 2 d ) = v o c a b ∗ d + 6 ∗ ( 12 d 2 + 9 d ) + 6 ∗ ( 16 d 2 + 11 d ) = v o c a b ∗ d + 168 d 2 + 120 d Total = InputEmbedding + Encoder + Decoder \ = vocabd + 6( 4d^2 + 2d + 8d^2+5d + 2d) + 6(4d^2 + 2d + 4d^2 + 2d + 8d^2+5d + 2d)\ = vocabd + 6(12d^2+9d ) + 6*(16d^2+11d) \ = vocab*d + 168d^2 + 120dTotal=InputEmbedding+Encoder+Decoder=vocab∗d+6∗(4d2+2d+8d2+5d+2d)+6(4d2+2d+4d2+2d+8d2+5d+2d)=vocab∗d+6∗(12d2+9d)+6∗(16d2+11d)=vocab∗d+168d2+120d
复杂度分析
复杂度分成时间复杂度和空间复杂度。
神经网络中,最常见的就是线性映射,涉及到矩阵运算。这里用到一个矩阵相乘运算复杂度的前置知识:
矩阵M1=m * n 矩阵M2=n * k,得到矩阵M=m * k,所以时间复杂度为O(mnk),空间复杂度为O(m*k)
假设输入序列长度为N
InputEmbedding:将vocab中的词映射到d维度,类似检索哈希表。
时间复杂度:O(N)
空间复杂度:O(N*d)
Encoder+Decoder:
- MHSA/Multi-Head Cross-Attention/Masked MHSA:
attention计算是复杂度的关键。
时间复杂度:O ( N 2 d ) O(N^2d)O(N2d)
self-attention中计算attention score那里就是
●Q ∗ K T QK^TQ∗KT是O ( N ∗ d ∗ N ) = O ( N 2 d ) O(NdN)=O(N^2d)O(N∗d∗N)=O(N2d);
● 让s c o r e s = s o f t m a x ( Q ∗ K T / d ) scores=softmax(QK^T/\sqrt{d})scores=softmax(Q∗KT/d )那么s c o r e s ∗ V scoresVscores∗V是O ( N 2 d ) O(N^2d)O(N2d);
空间复杂度:O ( N 2 + N d ) O(N^2+Nd)O(N2+Nd)
●Q ∗ K T QK^TQ∗KT是O ( N 2 ) O(N^2)O(N2);
●s c o r e s ∗ V scores*Vscores∗V是O ( N d ) O(Nd)O(Nd); - FFN :第一个矩阵先增到4d,第二个矩阵减到d。
时间复杂度:O ( N ∗ d ∗ 4 d ) = O ( N d 2 ) O(Nd 4d) =O(Nd^2)O(N∗d∗4d)=O(Nd2)
空间复杂度:O ( N d ) O(Nd)O(Nd)
所以:
时间复杂度:O ( N 2 d + N d 2 ) O(N^2d+Nd^2)O(N2d+Nd2)
空间复杂度:O ( N 2 + N d ) O(N^2+Nd)O(N2+Nd)
通常把d作为常量,所以:
时间复杂度:O ( N 2 ) O(N^2)O(N2)
空间复杂度:O ( N 2 ) O(N^2)O(N2)
参考:https://zhuanlan.zhihu.com/p/661804092
热门推荐
医用面膜和普通面膜的区别
掌握胜利狼人杀新手必看:狼人的四种核心策略攻防战
深圳一年多7校长落马:大到一栋楼,小到一斤肉,都不放过
像给小孩打针一样,修复敦煌病害壁画
鬼谷八荒性格选择攻略:内在与外在性格搭配指南
新疆那拉提旅游时间及全季攻略:几月份去最合适
2024西藏林芝桃花赏花攻略,3月旅游一定要去这里
中央肥胖完全指南:成因解析与实用减脂方案
失眠的体格检查
鲁迅戏杜的三次波折和三次转折各是什么?
《射雕英雄传》中三次华山论剑的目的是什么?
全球蟋蟀蛋白粉市场 – 行业趋势和 2031 年预测
广州最热闹的8大夜市,每一个都馋哭香港人!
明星带火的“碳循环减肥法”,千万别盲目学,这些方法助你健康瘦!
2025年个税申报截止日期及详细指南:确保准时提交
女性生育权包括什么内容
手写LRU缓存的两种实现方式
4岁的孩子应该怎么教育和引导?父母须掌握的关键技巧!
孙权在位时期对东吴做了哪些发展,以及对东南豪族势力的态度如何
6种常见外墙漏水检测方法
脾虚程度怎么判断?根据四诊信息分辨脾虚的严重程度
“音乐诗人”是怎样炼成的?你看余华对李健的这句评价就明白了
如何接受宠物的离去?即使它不是你的宠物
这两种隔夜菜,一口也别吃,放冰箱也不行
如何了解房价走势并进行合理预测?这种预测方法有哪些依据?
“收纶了,渔童拍手樵青笑”:透过宋代诗词,谈“渔”的文化内涵
从丞相到魏王,权力之巅的曹操止步篡汉,是初心不改还是另有隐情
老年人预防骨质疏松吃什么
驾驭难缠的ENTJ老板:三大策略助你职场突围
表达毕业的诗句(精选110句)