YuchuanTian / DiJiang

[ICML'24 Oral] The official code of "DiJiang: Efficient Large Language Models through Compact Kernelization", a novel DCT-based linear attention mechanism.
https://arxiv.org/abs/2403.19928
86 stars 5 forks source link

一些问题 #5

Open 00ffcc opened 2 months ago

00ffcc commented 2 months ago
  1. 文章中说 $\Phi_{WDCF}(x)=De^{TCx^T}$ ,但是代码里用的是softmax, (query = nn.functional.softmax(query@self.proj_matrix, dim=-1)), 这样是等价的吗?
  2. 公式12中的 $\Phi{WDCF}$ 和公式10中的 $\phi{WPFF}$ 有什么关系呢?

谢谢!希望能得到解答

HantingChen commented 2 months ago

你好,变换的完整形式为:
query = nn.functional.softmax(query@self.proj_matrix, dim=-1) query = query*self.D1[:,:,:query_length,:]

我们在进行指数计算后为了保证数值稳定性,进行了归一化,等价于直接使用softmax,D对应着self.D1,TC对应self.proj_matrix。

公式12中的WDCF是WPFF使用了频域变换的变体,即将self.proj_matrix中使用DCT变换进行计算,可以使得计算更高效。

00ffcc commented 2 months ago

不需要做IDCT吗? 还有进行归一化操作之后还能满足无偏估计的性质吗?谢谢

00ffcc commented 2 months ago

能展开讲讲是怎么得到频域变换的变体的吗?👀