阿里面试官问:为什么Transformer的FFN需要升维再降维?
面试题
为什么Transformer的FFN需要升维再降维?
标准答案
1.FFN并非简单的嵌入空间建模
FFN的目标不是直接在输入维度上进行建模,而是通过一系列线性变换来拟合一个高维的映射空间。若仅使用线性基,理论上我们只需使用等同于输入维度的基数量。然而,所有可能的平滑映射组成的空间是无限维的,因而需要通过升维来完整表示这一空间。
2. 升维的作用:近似无限维空间
FFN的第一个线性层及激活函数组合,可以看作是在学习一组基函数,每个神经元可以视作一个简单的分类器,用以近似输入数据的高维映射。升维操作有效扩展了网络的自由度,使得模型能够学习更多的特征表示,从而提升模型的拟合能力。
3. 降维的目的:限制计算复杂度
尽管升维有助于捕捉更多的信息,但理论上需要无限多的自由度来表达完整的光滑映射。然而,实践中我们不可能拥有无限的计算资源,因此必须通过降维来控制网络的规模和计算复杂度。降维操作通过将高维表示映射回较低维空间,有效地控制了模型的复杂度。
4. 键值对存储的视角
从另一个角度来看,FFN可以类比为一种键值对存储结构。第一个线性层生成“键”,即为每个token计算一组召回权重;第二个线性层则计算“值”,并与召回权重进行加权求和。这种方式类似于通过大规模的记忆存储(升维)来提升网络的长期记忆能力。
5. 基于聚类的视角
FFN也可以理解为基于软聚类的向量量化。第一个线性层为每个token分配一个聚类簇权重,而第二个线性层则提供每个簇的代表性输出。这种视角下,升维操作实际上是在增加聚类簇的数量,从而降低量化误差。
6. 升维的局限性
尽管升维带来更多的特征表示,但隐藏维度(或键值对数量)并非越大越好。过多的隐藏维度可能导致信息瓶颈和过拟合,甚至使模型难以有效传递信息。因此,合理的升维和降维设置是确保模型高效和稳定的关键。综上所述,FFN的升维操作本质上是为了拟合一个更高维的映射空间,从而提升模型的表达能力和拟合精度。通过合理的升维与降维,可以平衡计算效率和模型性能。
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。