ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI大模型算法工程师经典面试题—:为什么在softmax之前要对attention进行scaled(为什么除以 d_k的平方根)?”

AI大模型算法工程师经典面试题—:为什么在softmax之前要对attention进行scaled(为什么除以 d_k的平方根)?” 面试题我们知道attention其实有很多种形式而transformer论文中的attention是Scaled Dot-Porduct Attention 来计算keys和queries之间的关系。如下图所示公式一在公式一中作者对 Q 和 K 进行点积以获得注意力权重然后这些权重用于加权平均 V 。但在实际实现中这个点积会被缩放即除以keys的维度的平方根常常表示为 。这里 是key向量的维度。细心的同学都会发现Attention 计算公式 中会 除以 根号d那问题来了Attention为什么要除以根号d 呢注这个题目属于 NLP 面试中一个高频题基本上问到 Attention 或者 Transformers 的时候都会问。小编在找实习的时候就被问了不止十次现在抽空整理一下答案。标准答案这个问题在《Attention is All Your Need》论文中作者就对该问题进行解答。While for small values of the two mechanisms perform similarly, additive attention outperforms dot product attention without scaling for larger values of [3]. We suspect that for large values of, the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients . To counteract this effect, we scale the dot products by如果你没看懂上面英文答案那下面我就对其进行解释从论文中可以看出随着 的值变大点积的大小会增大从而推动softmax函数往仅有很小的梯度的方向靠拢分布集中在绝对值大的区域导致softmax 函数容易导致梯度消失问题。例如假设Q和K的均值为0方差为1。它们的矩阵乘积将有均值为0方差为 是Q或者K的维度大小。因此 的平方根被用于缩放而非其他数值因为Q和K的矩阵乘积的均值本应该为0方差本应该为1这样会获得一个更平缓的softmax。如果你在面试过程中也遇到该问题可以回答随着 的值变大点积的大小会增大如果没有及时对点积的大小进行缩放那么万一点积的数量级很大softmax的梯度就会趋向于0也就会出现梯度消失问题。问题引申新问题当你按上述答案回答后基本能够回答上点但是面试官为了考察你对该问题的深度会进行问以下两个问题为什么 变大会使得 softmax 梯度变小从而导致梯度消失呢除了 , 是否可以用其他值代替self-attention一定要这样表达吗有其他方法不用除根号dk吗问题一为什么 变大会使得 softmax 梯度变小从而导致梯度消失呢标准答案输入softmax的值过大会导致偏导数趋近于0从而导致梯度消失下面我们将对该问题进行证明对于一个输入向量 softmax函数将其映射归一化到一个分布 。此时softmax函数会先采用一个自然底数 e 将输入中的元素间差距先“拉大”然后归一化为一个分布。假设某个输入 x 中最大的的元素下标是 k 如果输入的数量级变大(每个元素都很大)那么 会非常接近1。举个栗子假定输入 对于不同量级的 a 产生的 的值将发生什么变化a1时a10时;a100 时(计算机精度限制)。通过以下代码frommathimportexpfrommatplotlibimportpyplotaspltimportnumpyasnp flambdax:exp(x*2)/(exp(x)exp(x)exp(x*2))xnp.linspace(0,100,100)y_3[f(x_i)forx_iinx]plt.plot(x,y_3)plt.show()绘制图像如下从图像中我们发现数量级对于 softmax 函数的分布影响还是很大的。在数量级增大到某个值时softmax 函数全部概率分布将趋于最大值对应阿标签。接下来我们一起来分析一个 softmax 函数的梯度这里我们将 softmax 函数 设定为 softmax 函数对应的分布向量 的梯度为通过将该矩阵展开根据前面的讨论当输入 x 的元素均较大时softmax会把大部分概率分布分配给最大的元素假设我们的输入数量级很大最大的元素是 1那么就将产生一个接近one-hot的向量 ,此时上面的矩阵变为如下形式:可以看出在输入的数量级很大时梯度消失为0造成参数更新困难问题二除了 , 是否可以用其他值代替标准答案为什么选择 时因为可以使得 Q 和 K 点积 趋向于 期望为0方差为1的标准正态分布说白了就是归一化。公式分析:首先假设q和k都是服从期望为0方差为1的独立的随机变量。假设 则此时故有 Q 和 K 点积的均值 方差 。方差越大也就说明点积的数量级越大(以越大的概率取大值)。那么一个自然的做法就是把方差稳定到1做法是将 Q 和 K 点积除以这样有:将方差控制为1也就有效地控制了前面提到的梯度消失的问题。问题三self-attention一定要这样表达吗不需要能刻画相关性相似性等建模方式都可以。最好速度快模型好学表达能力够。问题四有其他方法不用除根号dk吗有同上只要能做到每层参数的梯度保持在训练敏感的范围内不要太大不要太小。那么这个网络就比较好训练。方式有比较好的初始化方法类似于google的T5模型就在初始化把这个事情干了。最后的最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表