面试题合集(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

相关推荐
Guofu_Liao5 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
周三有雨9 小时前
【面试题系列Vue07】Vuex是什么?使用Vuex的好处有哪些?
前端·vue.js·面试·typescript
爱米的前端小笔记10 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘
好学近乎知o10 小时前
解决sql字符串
面试
sp_fyf_202413 小时前
【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理
我明天再来学Web渗透14 小时前
【SQL50】day 2
开发语言·数据结构·leetcode·面试
龙的爹233315 小时前
论文翻译 | RECITATION-AUGMENTED LANGUAGE MODELS
人工智能·语言模型·自然语言处理·prompt·gpu算力
sp_fyf_202415 小时前
【大语言模型】ACL2024论文-18 MINPROMPT:基于图的最小提示数据增强用于少样本问答
人工智能·深度学习·神经网络·目标检测·机器学习·语言模型·自然语言处理
程序员奇奥15 小时前
京东面试题目分享
面试·职场和发展
理想不理想v17 小时前
【经典】webpack和vite的区别?
java·前端·javascript·vue.js·面试