更多面试题的获取方式请留意我的昵称或看评论区
LLAMA中的FFN层作用是什么?
总结上网上看到的一些分析,毕竟当时Transformer提出来的时候,可能也没考虑到会被研究的这么细。
-
模型结构本身 [ Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth] 论文中做了实验,对于单纯的self-attentation而不考虑实验残差和MLP的话,我们堆叠了n层,整个模型的秩会很快坍缩,也即所有表征趋于一个vector,而加上了MLP和残差的话会好很多,因此MLP这个东西是必要的。
-
增加表达能力 升维之后的线性变换通常伴随着一个非线性激活函数。非线性激活函数的引入打破了线性模型的限制,使得模型可以对数据进行更复杂的变换。降维操作将升维后的结果映射回原始维度,从而将这些非线性特征组合到最终的输出中。这种操作增强了模型的表达能力,使其能够表示更加复杂的函数关系。
-
存储知识 使用了激活函数,如门控类的函数的话,就可以从key-value的角度来看待FFN了,FFN本身占据了Transformer的很大的参数量,对于FFN来说,第一层线性变换是 Key Memory,第二层线性变换是 Value Memory。可以参考论文[Transformer Feed-Forward Layers Are Key-Value Memories]和[End-To-End Memory Networks].
总结:FFN的作用是增加表达能力、模型结构上去掉FFN会导致秩坍缩更快、存储知识
参考: [1] https://www.zhihu.com/question/622085869/answer/3518358912 [2] https://www.zhihu.com/question/665731716
标签:面试题,函数,模型,Transformer,FFN,MLP,LLAMA,Memory From: https://blog.csdn.net/2401_88821455/article/details/143643365