编辑
2025-05-13
深度学习
00

目录

Transformer中计算最复杂的模块
时间复杂度与哪些因素有关?
时间复杂度是多少?
空间复杂度是多少?
为什么是瓶颈?
如何优化?

Transformer中计算最复杂的模块

自注意力机制(Self-Attention) 是Transformer中最耗时的部分。


时间复杂度与哪些因素有关?

  • 序列长度 n
  • 隐藏层维度 d

时间复杂度是多少?

总时间复杂度为:
👉 O(n²·d)

这是因为:

  • Q、K、V的生成:O(n·d)
  • 计算QKᵀ(得到注意力权重):O(n²·d)
  • 用注意力权重乘以V:O(n²·d)

空间复杂度是多少?

👉 O(n²),主要是因为要存储 n×n 的注意力矩阵。


为什么是瓶颈?

当序列变长时,n² 增长得非常快,导致计算量急剧上升,限制了处理长文本的能力。


如何优化?

常见方法包括:

  • 使用线性或局部注意力
  • 引入稀疏结构
  • 使用像Performer、Reformer这样的高效模型

这些方法可以将复杂度降到 O(n·d) 或 O(n·logn·d),提高效率。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!