机器学习:各种self-attention
各种self-attention
·
Prerequisite



N*N的计算量非常大,无法承受该操作的计算。

当N大的时候,self-attention占据的耗时比例会比较大,做的一些优化也是针对该种优化。

Local Attention / Truncated Attention
只看邻居信息
灰色位置设为0,只需要计算少量的attention。
local attention跟cnn类似。
Stride Attention
跳格隔着的信息
Global Attention
选一些当作特别的token或者外加token
句子前面加两个特殊token。
Many Different Choices



Clustering


只有相同颜色的聚类才计算权重,其他都设置为0
Learnable Patterns
构建一个network,让机器自己学习得到权重矩阵。
Linformer

重复的颜色,通过矩阵变换得到小的矩阵
从N个key种取K个key,为什么不选择K个query呢?这种操作会导致sequence length的输出变化,某些情况下是不能改变输出长度的。
如何选出代表性的key呢?
- cnn处理
- 矩阵变化

Attention Mechanism is three-matrix multiplication

加速上述三个矩阵的计算,如果忽略softmax操作:

先让V跟K相乘,再与Q相乘 运算量小很多。


现在将softmax加上





蓝色和黄色向量只需要计算一次,后续进行复用即可。

后续共用第一次计算的kv


Attention-Free

Summary

速度跟LRA分数进行衡量
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)