[论文解读] DeFormer: Decomposing Pre-trained Transformers for Faster Question Answering
DeFormer 通过将预训练的 Transformer 模型分解,使低层独立处理问题和文本,从而加速问答推理。该方法支持离线缓存文本表示,通过蒸馏技术将运行时计算减少最多 4.3 倍,仅导致 1% 的准确率下降。通过使用预训练权重初始化并直接在下游任务上微调,模型性能得以保持。
Transformer-based QA models use input-wide self-attention -- i.e. across both the question and the input passage -- at all layers, causing them to be slow and memory-intensive. It turns out that we can get by without input-wide self-attention at all layers, especially in the lower layers. We introduce DeFormer, a decomposed transformer, which substitutes the full self-attention with question-wide and passage-wide self-attentions in the lower layers. This allows for question-independent processing of the input text representations, which in turn enables pre-computing passage representations reducing runtime compute drastically. Furthermore, because DeFormer is largely similar to the original model, we can initialize DeFormer with the pre-training weights of a standard transformer, and directly fine-tune on the target QA dataset. We show DeFormer versions of BERT and XLNet can be used to speed up QA by over 4.3x and with simple distillation-based losses they incur only a 1% drop in accuracy. We open source the code at https://github.com/StonyBrookNLP/deformer.
研究动机与目标
- 在不从头训练的前提下,减少基于预训练 Transformer 的问答模型的推理延迟和内存占用。
- 探究在低层是否可以用问题级和文本级自注意力机制替代输入级自注意力,而不会造成显著性能下降。
- 通过预先计算并独立缓存文本表示,实现在推理阶段的更快处理速度。
- 通过使用蒸馏损失对齐输出与原始模型,保持分解后模型的高准确率。
- 提供一种即插即用的方法,用于加速现有预训练模型(如 BERT 和 XLNet)在真实场景中的部署。
提出的方法
- DeFormer 在前 k 层用独立的问题级和文本级自注意力机制替代完整的输入级自注意力机制。
- 在第 k 层之后,文本表示被离线计算并缓存,实现在多个问题间复用。
- 推理过程中,问题通过前 k 层处理,缓存的文本表示被加载,并在第 (k+1) 层与问题表示合并。
- 模型使用标准 BERT 或 XLNet 的预训练权重初始化,并直接在下游问答数据集上进行微调。
- 引入两种蒸馏损失:一种用于最小化输出层的差异,另一种用于最小化 DeFormer 与原始模型之间中间层表示的差异。
- 蒸馏过程确保 DeFormer 的高层学习到与原始模型相似的表示,从而将准确率下降最小化。
实验结果
研究问题
- RQ1在 Transformer 的低层用问题级和文本级自注意力替代输入级自注意力,是否能在不造成显著准确率损失的前提下降低推理延迟?
- RQ2在问答系统中,文本表示能在多大程度上被预先计算并缓存,以减少运行时计算量?
- RQ3蒸馏在对齐分解后模型与原始模型的输出和中间表示方面有多有效?
- RQ4DeFormer 是否能在保持更高准确率的同时,实现比更小基线模型更快的推理速度?
- RQ5在不同问答任务和模型架构中,加速比、内存减少与准确率损失之间的权衡如何?
主要发现
- 在 BERT 和 XLNet 上应用 DeFormer 后,多个问答数据集的推理时间实现了 2.7 倍至 4.3 倍的加速。
- 由于在推理过程中消除了中间文本表示,内存占用减少了 65.8% 至 72.9%。
- 通过蒸馏,DeFormer 的 F1 分数仅比原始模型下降 0.6% 至 1.8%,在部分基准测试中最大准确率下降仅为 1%。
- BERT-large 的 DeFormer 版本在推理速度上超过原始的 BERT-base,同时保持更高的准确率,展现出更优的效率-准确率权衡。
- 消融实验证实,蒸馏损失显著提升了性能,尤其是在保持与原始模型表示对齐方面。
- 该方法在多种任务中均有效,包括阅读理解与句子对匹配任务,且可适用于任何依赖输入级自注意力的模型。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。