raoyongming / DynamicViT

[NeurIPS 2021] [T-PAMI] DynamicViT: Efficient Vision Transformers with Dynamic Token Sparsification
https://dynamicvit.ivg-research.xyz/
MIT License
551 stars 69 forks source link

关于Attention Masking创新点的疑问 #3

Closed xmu-xiaoma666 closed 3 years ago

xmu-xiaoma666 commented 3 years ago

关于论文中Attention Masking,对于这个创新点有比较大的疑惑。因为个人觉得只需要根据mask,把token的内容置位-inf就可以了,不需要交互结束之后,再在softmax过程中加上用mask进行制约。

另外,这篇文章提出的方法是不是只能在预测的时候减少计算量,因为在训练的时候进行Self-Attention,还是所有token都进行了Self-Attention,这样的文中的计算量就没有下降。反而因为加入了预测模块,计算量还上升了。

raoyongming commented 3 years ago

你好, 感谢你对我们工作的关注。

我们加入mask的目前主要是为了能用梯度更新prediction module的参数,从而端到端学习token稀疏化策略。我们采用attention score和mask相乘的方法,既能去除masked tokens对其他token的影响,又保持了整个过程是可导的。设置-inf这个操作是不可导的,这会导致最后的梯度传不到prediction module。

神经网络加速的工作多数都主要关心部署时的速度,这也更有实际意义,绝大多数的模型加速工作对比的也是推理速度。为了学习prediction module,我们在训练时不删除token,所以会稍微增加计算量。在测试时我们就能直接删除多余的token,Table 1也给出了我们在GPU上实际加速的结果。

xmu-xiaoma666 commented 3 years ago

你好, 感谢你对我们工作的关注。

我们加入mask的目前主要是为了能用梯度更新prediction module的参数,从而端到端学习token稀疏化策略。我们采用attention score和mask相乘的方法,既能去除masked tokens对其他token的影响,又保持了整个过程是可导的。设置-inf这个操作是不可导的,这会导致最后的梯度传不到prediction module。

神经网络加速的工作多数都主要关心部署时的速度,这也更有实际意义,绝大多数的模型加速工作对比的也是推理速度。为了学习prediction module,我们在训练时不删除token,所以会稍微增加计算量。在测试时我们就能直接删除多余的token,Table 1也给出了我们在GPU上实际加速的结果。

好的,谢谢您~

xxkkrr commented 2 years ago

你好,想再问一下关于保留mask可导的细节,像是类似于score = score + (1 - mask) * -100000这样的实现方式是可导的吗,看起来这个式子里对于mask的导数就是score的导数/100000?