900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > NAS-Bert——确保One-shot与Task-agnostic

NAS-Bert——确保One-shot与Task-agnostic

时间:2021-09-28 21:37:23

相关推荐

NAS-Bert——确保One-shot与Task-agnostic

Paper地址:/abs/2105.14444

概述

NAS-Bert在大规模预训练阶段(Bert自监督预训练),通过实施权重共享形式的One-shot NAS,实现了Once for all与Task-agnostic两个目的,分别满足不同平台资源约束的压缩需求、以及不同下游任务的迁移训练需求。

Method

搜索空间:基于Weight-sharing的特点(Single-path One-shot形式),每个Bert layer(进一步细分为2个Sub-layer)由一系列候选的Block-choice并排而成,共同构成了超网络。这些Block-choice包括MHA、FFN、SepConv与Identity四个基本模块结构,且由不同的Attention heads数、Hidden size与kernel size决定了26个候选的Operations。搜索空间具体如下所示:搜索策略:在大规模预训练阶段,结合Block-wise搜索与知识蒸馏,确保了搜索效率与搜索效果。Block-wise搜索:将超网络划分为N个Block,每个Block包含了L/N个Layer,且每个Layer由C个Block-choice并排而成;知识蒸馏:将预训练的Bert模型作为Teacher model,也将Teacher划分为N个Block。以第n-1个Teacher block的输出、作为第n个Student block的输入,通过优化重建第n个Teacher block的输出,以实现知识迁移或诱导训练。若Teacher与Student的特征维度不匹配,则需要引入维度适配层;搜索效率:通过搜索空间的渐进式Shrinking,即在搜索训练过程中、逐步裁剪搜索空间规模,以提升搜索效率。将超网络的第n个Block的候选子结构、划分到B个区间(bin),每个区间由Model size与Latency的上下限定义:

在预训练的每个Epoch结束时,在每个bin采样E个子结构,并根据Validation-loss排序,然后去除R个最差的子结构。若当前Block仅剩m个子结构,则结束Shrinking。基于不同资源约束的区间划分,确保了多样性、并有利于后续的网络结构搜索;

模型结构搜索:One-shot预训练之后,候选子网络的数目为(m*B)^N。为了高效率的搜索得到最佳子网络模型,首先构建了LUT (Look-up Table),LUT的每项item表示为(architecture, parameter, latency, loss),其中Latency通过基本Op或Block的实测延迟累加而得,Loss则是由每个Block的KD loss累加而得;然后基于平台资源约束,按Loss排序获得Top-T个子网络模型;最后重新评估这些Top-T个子网络的Validation loss,并选择最佳子网络作为压缩模型;

实验结果

基于GLUE Benchmark,评估了NAS-Bert与手工设计的标准Bert结构、以及不同的Bert压缩策略之间的优劣:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。