【深度学习】破解transformer八股,快问快答
本文从思路上给你关于transformer八股文,一点不一样的启发。
其实有关深度学习的八股文问题,在面试中特别好答,有几个关键点,让数据分布变好,让模型好训练,增加表达能力等。
这些玄学结论都是一些实验导向的结论,很难从理论上完备推导的。你把这些基本点,在面试时候基本能说个八九不离十,如果能结合细节随便谈谈,基本上就稳了。实际上,整个深度学习的发展大概也是这么些路子。
好了,那么我们以transformer为例,搞个八股文快问快答。其中前六个也是我面试必问的题目..
1.写出selfattention的公式表达。
Sofmax(QK/sqrt(dk))V
2.为什么上面那个公式要对QK进行scaled
八股,让softmax输入的数据分布变好,数值进入梯度敏感区间,能防止梯度消失,让模型好训练。
3.self-attention一定要这样表达吗?
不需要,能刻画相关性,相似性等建模方式都可以。最好速度快,模型好学,表达能力够。
4.有其他方法不用除根号dk吗?
有,同上,只要能做到每层参数的梯度保持在训练敏感的范围内,不要太大,不要太小。那么这个网络就比较好训练。方式有,比较好的初始化方法,类似于google的T5模型,就在初始化把这个事情干了。
5.为什么transformer用Layer Norm有什么用?
八股,让神经网络各层参数输入的数据分布变好,数值进入梯度敏感区间,能防止梯度消失,让模型好训练。
6.为什么不用BN?
两个,NLP不定长,好多位置填0,影响其他样本非0参数的计算。
Transformer的模型比较大,BS拉不大,容易变得不稳定
7.Bert为什么要搞一个position embedding?
八股,增强表达能力(位置上的)。因为transformer对位置不敏感,需要显示标示
8.Bert为什么三个embedding可以相加?
9.transformer为什么要用三个不一样的QKV?
八股,增强网络的容量和表达能力。
10.为什么要多头?
八股,增强网络的容量和表达能力。
11.为什么Bert中要用BPE这样的subword Token
能很好的解决单词上的OOV,在语义粒度是比较合适的表达。
班车时间有限,先写这么多,如果你在面试中碰到,或者觉得有比较好的八股问题,写在评论区吧,下期一起回答了~
往期精彩回顾 本站qq群955171419,加入微信群请扫码: