NLPCC:预训练在小米的推理优化落地
前言
本文主要分享小米AI實(shí)驗(yàn)室NLP團(tuán)隊(duì)在NLPCC輕量級(jí)語言模型比賽上的經(jīng)驗(yàn)。此次分享的目的是幫助大家快速進(jìn)入比賽,以及了解工業(yè)界中使用BERT之類的大型預(yù)訓(xùn)練模型時(shí)進(jìn)行推理的相關(guān)優(yōu)化手段。
01背景介紹
首先和大家說一下比賽的背景和預(yù)訓(xùn)練模型中存在的問題。
1. NLP中的預(yù)訓(xùn)練
隨著BERT的推出和發(fā)展,預(yù)訓(xùn)練模型成為目前工業(yè)界和比賽使用最廣泛的模型。目前在各大NLP任務(wù)SOTA榜單上排前幾名都是大型的預(yù)訓(xùn)練模型,比如原生BERT或者它的一些變體。
預(yù)訓(xùn)練模型的應(yīng)用分為兩個(gè)階段,先進(jìn)行預(yù)訓(xùn)練階段 ( pre-training ),然后進(jìn)行微調(diào)階段 ( fine-tuning )。預(yù)訓(xùn)練階段利用大規(guī)模的無監(jiān)督預(yù)料,通常大于100g的量級(jí),加上特定的無監(jiān)督任務(wù)進(jìn)行訓(xùn)練。用來預(yù)訓(xùn)練的任務(wù)有,經(jīng)典的NSP ( next sentence predict )、MLM ( masked language model )、以及一些變體,如阿里發(fā)布的Structural language model。另外在預(yù)訓(xùn)練階段時(shí),embedding層的使用方式也有很多,比如NEZHA以及XLNET使用的相對(duì)位置編碼。Pretrain階段一般比較消耗計(jì)算資源,一般都是在大量的GPU集群上進(jìn)行運(yùn)算,并且計(jì)算很長的時(shí)間才能得到一個(gè)比較好的結(jié)果。
相對(duì)于復(fù)雜預(yù)訓(xùn)練任務(wù),下游的微調(diào)任務(wù)就比較簡單了。在預(yù)訓(xùn)練好的模型的基礎(chǔ)上,只需要添加較少的網(wǎng)絡(luò)參數(shù),并在在下游有監(jiān)督數(shù)據(jù)上進(jìn)行少量的訓(xùn)練,就可以得到很不錯(cuò)的成果,這也是預(yù)訓(xùn)練技術(shù)能夠被大量使用的基礎(chǔ)條件。
2. 效率問題
總結(jié)
以上是生活随笔為你收集整理的NLPCC:预训练在小米的推理优化落地的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平台信赖度成为双十一影响消费者购买决策的
- 下一篇: MATLAB实战系列(二十七)-数据预处