前言
本文主要分享小米AI实验室NLP团队在NLPCC轻量级语言模型比赛上的经验。此次分享的目的是帮助大家快速进入比赛,以及了解工业界中使用BERT之类的大型预训练模型时进行推理的相关优化手段。
01背景介绍
首先和大家说一下比赛的背景和预训练模型中存在的问题。
1. NLP中的预训练
随着BERT的推出和发展,预训练模型成为目前工业界和比赛使用最广泛的模型。目前在各大NLP任务SOTA榜单上排前几名都是大型的预训练模型,比如原生BERT或者它的一些变体。
预训练模型的应用分为两个阶段,先进行预训练阶段 ( pre-training ),然后进行微调阶段 ( fine-tuning )。预训练阶段利用大规模的无监督预料,通常大于100g的量级,加上特定的无监督任务进行训练。用来预训练的任务有,经典的NSP ( next sentence predict )、MLM ( masked language model )、以及一些变体,如阿里发布的Structural language model。另外在预训练阶段时,embedding层的使用方式也有很多,比如NEZHA以及XLNET使用的相对位置编码。Pretrain阶段一般比较消耗计算资源,一般都是在大量的GPU集群上进行运算,并且计