面试常问! transformer中dk的大小,以及为什么设成这样,维度,原文分析。

原文(多头注意力部分) :

李沐b站论文精读
请添加图片描述
论文网盘下载:链接 提取码: vm3d

翻译:

  1. 在这项工作中,我们采用了 h=8 个并行注意力层,或称为头。对于每一层,我们使用 dk = dv = dmodel / h = 64。由于每个头的维度减少了,总的计算成本与具有完整维度的单头注意力相似。

  2. 即:dk = 512 / 8 = 64。

流程:

  1. 其前面的过程为:(batch_size, seq_len)-> (batch_size, seq_len, embed_size) -> (batch_size, seq_len, key_size)-> (batch_size, seq_len, num_heads, dk)

  2. 最后的dk = key_size * num_heads,即64,而不是某些误人子弟的人所写的512,

原因:

  1. 梯度稳定性:在自注意力机制中,较大的点积可能会导致softmax函数的梯度非常小,从而影响模型的训练。通过缩放点积(即除以 dk的开方)),可以帮助稳定梯度,使得训练更加高效。

  2. 严格的表述:假设两个输入向量 q 和 k 的每一维都具有零均值和单位方差、并且假设每一维都互相独立,那么这个除 sqrt(dk) 的操作可以使得运算结果仍然保持零均值和单位方差,因而有利于模型训练的稳定性。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值