
摘要
我们证明,通过用简单的线性变换(“混合”输入标记)替代Transformer编码器中的自注意力子层,可以在几乎不损失准确率的前提下显著提升模型速度。这些线性混合器结合前馈层中的标准非线性变换,在多个文本分类任务中表现出对语义关系建模的充分能力。最令人意外的是,我们发现将Transformer编码器中的自注意力子层替换为标准且无参数的傅里叶变换(Fourier Transform),在GLUE基准测试上可达到BERT模型92%至97%的准确率,同时在标准512输入长度下,GPU训练速度提升80%,TPU训练速度提升70%。在更长的输入序列上,FNet模型的优势更加显著:与Long Range Arena基准测试中的“高效”Transformer模型相比,FNet在所有序列长度上均达到最先进模型的准确率水平,且在GPU上始终优于最快模型(在TPU上则在相对较短的序列长度上表现更优)。此外,FNet具有轻量级的内存占用,在小模型规模下尤为高效;在固定的速度与准确率预算下,小型FNet模型的表现优于相应的Transformer模型。
代码仓库
erksch/fnet-pytorch
jax
GitHub 中提及
jaketae/fnet
pytorch
GitHub 中提及
HJHGJGHHG/Paddle-FNet
paddle
amoramine/FNet_with_BART_classification
pytorch
GitHub 中提及
amoramine/FNet_classification
pytorch
GitHub 中提及
vineet54/fnet-google-pytorch
pytorch
GitHub 中提及
facebookresearch/xformers
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| linguistic-acceptability-on-cola | FNet-Large | Accuracy: 78% |
| natural-language-inference-on-multinli | FNet-Large | Matched: 78 Mismatched: 76 |
| natural-language-inference-on-multinli | BERT-Large | Matched: 88 Mismatched: 88 |
| natural-language-inference-on-qnli | FNet-Large | Accuracy: 85% |
| natural-language-inference-on-rte | FNet-Large | Accuracy: 69% |
| paraphrase-identification-on-quora-question | FNet-Large | F1: 85 |
| semantic-textual-similarity-on-mrpc | FNet-Large | Accuracy: 88% |
| semantic-textual-similarity-on-sts-benchmark | FNet-Large | Spearman Correlation: 0.84 |
| sentiment-analysis-on-sst-2-binary | FNet-Large | Accuracy: 94 |