Simple Hardware-Efficient Long Convolutions for Sequence Modeling

论文地址:

整体思路以及计算方式

第一部分和Tnn类似,不过Toeplitz matrix的系数直接初始化为独立的(2n1)×d(2n-1)\times d个独立的参数,然后利用如下操作进行平滑:

Kk(2p+1)1j=12p+1Kk+jpKsign(K)max(Kλ,0)\begin{aligned} & \mathbf{K}_k \leftarrow(2 p+1)^{-1} \sum_{j=1}^{2 p+1} \mathbf{K}_{k+j-p} \\ & \mathbf{K} \leftarrow \operatorname{sign}(\mathbf{K}) \odot \max (|\mathbf{K}|-\lambda, 0)\end{aligned}

第二部分主要是一个快速的FFT算法,这部分可以学习一下。

代码

简评

这篇主要推的应该是一个高效的kernel,关于模型部分,主要说明Toeplitz matrix的系数需要平滑,而这点可以用网络拟合参数得到。

Last updated