面试题合集(2)

1. Self Attention的时候 Q K T QK^T QKT之后要除以 d ? \sqrt{d}? d ?

参考苏剑林大神:

  1. 浅谈Transformer的初始化、参数化与标准化

    • 模型初始化:介绍了常用的采样分布,包括正态分布、均匀分布和截尾正态分布。并从代数角度理解初始化方法,提出用二阶矩来衡量指标是否"消失"或者"爆炸",推导出Xavier初始化和He初始化的方法。
    • 激活函数:分析了激活函数对模型初始化的影响,介绍了"微调激活函数的定义"的方法,以sigmoid函数为例,说明了如何通过微调激活函数来保持二阶矩不变。还介绍了selu激活函数,它是基于同样思路进行"微调"后的elu函数。
    • 直接标准化:介绍了Batch Normalization、Instance Normalization、Layer Normalization等标准化方法,说明了它们的作用原理和区别。并指出近来的一些工作逐渐尝试去掉center这一步,甚至有些工作的结果显示去掉center这一步后性能还略有提升。类比Stylegan2 中使用去掉 center之后的 weight demodulation 来替代 Instance Nomalization;RMS Norm为什么比 Layer Normalize 更快,效果也基本一致
    • NTK参数化:介绍了NTK参数化的方法,它可以将所有参数都用标准方差初始化,但依然保持二阶矩不变。并讨论了NTK参数化跟直接用Xavier初始化相比的好处,以及Attention中除以 d \sqrt{d} d 的重要性。在结果上预先使用准方差标准化,使的参数初始化可以直接从符合0~1 分布的高斯分布中随机采样。也解释到了 T5 为什么可以不除以 d \sqrt{d} d 。
    • 残差连接:讨论了残差 x + F ( x ) x+F(x) x+F(x)的相关设计,指出残差会进一步放大方差,需要想相应的策略缩小其方差。介绍了Post Norm、Pre Norm、SkipInit、ReZero、Fixup等方法,并分析了它们的优缺点。提出 x + α t ∗ F ( x ) x+\alpha_t*F(x) x+αt∗F(x),可以在训练过程中逐步增加 α t \alpha_t αt的大小,直到为 1。
  2. 从熵不变性看Attention的Scale操作

    • 全文总结:本文从熵不变性的角度重新推导了Transformer架构中Scaled Dot-Product Attention的缩放因子,得到了一个新的缩放因子κlog⁡nd。初步的实验结果显示,新的缩放因子不改变已有的训练性能,并且对长度外推具有更好的结果。
      重要亮点:
    • Transformer注意力机制:当前Transformer架构中使用最多的注意力机制是Scaled Dot-Product Attention,其中"Scaled"是因为在Q,K转置相乘之后还要除以一个 d \sqrt{d} d 再做Softmax。
    • 熵不变性:为了使得模型结果能够更好地泛化到未知长度,Attention机制的设计应该使得ai,j尽量具备熵不变性。
    • 新的缩放因子:根据熵不变性以及一些合理的假设,我们可以得到一个新的缩放因子 κ log ⁡ ⁡ n d \frac{κ\log⁡n}{d} dκlog⁡n,从而得到一种Scaled Dot-Product Attention。
    • 实验结果:在与训练长度一致的情况下,新的缩放因子Attention-E和常规的Scaled Dot-Product Attention Attention-O的效果是很接近的,但是外推到更大的测试长度时,则明显拉开了差距。
    • 相关结果:在阅读ACL2022的投稿论文时,发现上面有一篇《Overcoming a Theoretical Limitation of Self-Attention》,给出了相近的结果。
  3. 从梯度最大化看Attention的Scale操作

    • Attention Scale因子的一般解释:如果不除以d,初始的Attention就会很接近one hot分布,造成梯度消失,导致模型训练不起来。
    • 计算梯度:作者定义了Softmax梯度的优化目标,从最大化该目标的角度探讨了Scale因子的最优值。
    • 正态分布:作者通过遍历一些n,然后数值求解出取最大值时的α∗,发现一定范围内最优点α∗与n大致满足 α ∗ ≈ 0.84 log ⁡ ⁡ n α^*≈0.84\sqrt{\log⁡n} α∗≈0.84log⁡n 的关系。
    • 余弦分布:作者通过数值求解最大值,然后再拟合,发现 α ∗ ≈ 3.5 log ⁡ ⁡ n α^*≈3.5\sqrt{\log⁡n} α∗≈3.5log⁡n 拟合得也不错。
    • 相关思考:对于双向Attention(Encoder)来说,假设训练样本长度相同,那么n就是一个常数,我们可以根据n算得相应的最优α,然后固定在模型中即可;但是对于单向Attention(Decoder)来说,每个token的n实际上都不一样(位置id加1),所以理论上无法做到对所有token都最大化式(3),不过由于α∗关于n的变化较慢,所以取一个差不多的值就行了。
    • 本文从梯度的角度探讨了Attention Scale因子的选择问题,相关结果既可以用来改进Attention的Scale因子,也可以用来解释cos相似度的对比学习的温度参数。

汇总一下:如果假设均值为 0,方差为 1 的 Attention Score 会带来更好的效果,除以 d \sqrt{d} d 会使的 q k T qk^T qkT之后的Attention Score方差为1。从熵不变性来考虑,给有助于提高模型在长度外推方面的表现,增强泛化能力。从Softmax梯度的优化目标梯度最大化来看的话,这个 scale 应该为 α d \frac{\alpha}{\sqrt{d}} d α。相当于在讨论给 softmax 激活函数怎么加上一个合适的温度系数!

Todo

相关推荐
GISer_Jing4 小时前
2025前端面试热门题目——计算机网络篇
前端·计算机网络·面试
m0_748245524 小时前
吉利前端、AI面试
前端·面试·职场和发展
TodoCoder6 小时前
【编程思想】CopyOnWrite是如何解决高并发场景中的读写瓶颈?
java·后端·面试
Wyang_XXX7 小时前
CSS 选择器和优先级权重计算这么简单,你还没掌握?一篇文章让你轻松通关面试!(下)
面试
AIGCmagic社区8 小时前
AI多模态技术介绍:理解多模态大语言模型的原理
人工智能·语言模型·自然语言处理
liyinuo201710 小时前
嵌入式(单片机方向)面试题总结
嵌入式硬件·设计模式·面试·设计规范
代码中の快捷键11 小时前
java开发面试有2年经验
java·开发语言·面试
开放知识图谱11 小时前
论文浅尝 | HippoRAG:神经生物学启发的大语言模型的长期记忆(Neurips2024)
人工智能·语言模型·自然语言处理
bufanjun00114 小时前
JUC并发工具---ThreadLocal
java·jvm·面试·并发·并发基础
Zhu_S W1 天前
Java web的发展历史
面试·职场和发展