基于PaddlePaddle复现FNet。
我们证明,通过用简单的线性转换可以取代自注意力层,transformer编码器架构可以通过“混合”输入标记的线性转换来大幅提高速度,精度成本有限。这些线性变换,以及前馈层中简单的非线性层,足以在几个文本分类任务中建模语义关系。也许最令人惊讶的是,我们发现用标准的、非参数化的傅里叶变换替换transformer编码器中的自注意层在GLUE基准上实现了92%的精度,但在GPU上运行速度快7倍,在TPU上快两倍。所得到的模型,我们命名为FNet,非常有效地扩展到长输入,与 the Long Range Arena benchmark上最精确的“高效的”transformer的精度相匹配,但在GPU上的所有序列长度和TPU上相对较短的序列长度上训练和运行得更快。最后,FNet具有较轻的内存占用,在较小的模型尺寸下特别有效:对于固定的速度和精度预算,小的FNet模型优于transformer对应的模型。
转换预训练权重。详见 /STEP0。
期望对齐模型结构,详见 /STEP1。
实验数据承载自SST2,期望对齐Tokenizer、Dataset、DataLoader、Metircs(ACC),详见 /STEP2。
期望对齐损失函数CrossEntropyLoss,详见 /STEP3。
在固定随机量(如Dropout)的情况下期望对齐Loss反向传播过程,详见 /STEP4。
完成STEP0~STEP4后,在SST2、QQP上完成训练,并对比训练精度。
完成复现过程后,在SST2&QQP上复现论文结果。