把原有的注意力机制统统换成q不变,kv圆形区域内?新的网络和老师网络蒸馏方法训练?
请问理解对吗?
此时相当于kv维度更低了?但依旧需要和q进行softmax计算?
是的,CLEAR的核心idea是这样的,降低每一个q所需要的kv数量
请问圆形中心点怎么确认?怎样确定那个位置的?
kv需要一个二值化mask,在区域内的有效,其他的是0,但是这样flops一样的 和原来的?
感谢感谢
请问圆形中心点怎么确认?怎样确定那个位置的?
每一个空间上的位置都需要当成q,对于每一个q,只对它周围局部圆形范围的kv采样,对于不在范围内的kv不进行计算
感谢信回复,代码里local_dwonsample_mask计算 (q_y - kv_y) ** 2 + (q_x - kv_x) ** 2 < window_size ** 2。每一个位置均需找kv位置,然后圆形内的元素拉伸为一维向量,然后注意力公式计算?
是的,实现利用了flexattention,这些位置都会在编译时确定好,运行的时候每一个q会直接找到对应地址的kv
运行的时候每一个q会直接找到对应地址的kv 厉害厉害 然后拉伸一维向量,计算。