在自然语言处理领域,BERT 是一个里程碑式的进展。只需要添加一个单层线性分类器和一个简单的微调策略,它就能在多项任务中达到优异的性能。但另一方面,BERT 的应用也面临很多问题,如规模大、推理速度慢、预训练过程复杂。研究人员已经做了许多尝试来提取一个更简单的子架构,希望这个子架构能够保持原始 BERT 的优异性能,同时简化预训练过程,缩短推理时间。这些研究取得了不同程度的成功。然而,他们提取的这些子架构在准确率方面仍然低于原始架构的实现,而且架构参数集的选择往往看起来很随意。
虽然这个问题在计算上很难解决,但 de Wynter 最近的一项研究表明:存在一种近似算法——更具体地说,一种完全多项式时间近似模式(FPTAS)——在一定条件下能够有效地提取出具有最优保证的此类集合。
在本文中,来自 Amazon Alexa 团队的研究者将提取 BERT 最优子架构参数集这一问题细化为三个指标:推断延迟、参数大小和误差率。该研究证明:BERT 具备 strong AB^nC 属性,可满足这些条件组合,使上述算法表现得像 FPTAS。然后,研究者从一个高性能的 BERT 变体中提取了一个最优的子架构,称为 Bort,其大小是 BERT-large 的 16%,在 CPU 上的推理速度提升到原来的 8 倍。
尽管 FPTAS 可以确保找到表现最优的架构,但它返回的是在上述三个指标上表现最优的架构参数集,而不会输出一个训练到收敛的架构。因此,研究者对 Bort 进行了预训练,发现与原先的训练相比,预训练速度有了明显的提高:在相同的 GPU、数据集大小也相当的情况下,Bort 训练了 288 小时,BERT-large 训练了 1153 小时,而 RoBERTa-large 训练了 24,576 小时。
研究者还在 GLUE、SuperGLUE 以及 RACE 公共 NLU 基准上对 Bort 进行了评估。结果表明,与 BERT-large 相比,Bort 在所有这些基准上都获得了显著提高,提升幅度从 0.3% 到 31% 不等。