摘 要:針對(duì)電力領(lǐng)域指標(biāo)問(wèn)答的應(yīng)用需求問(wèn)題,研究能夠平衡性能、計(jì)算資源消耗與推理時(shí)間的自然語(yǔ)言理解模型。提出了在知識(shí)蒸餾的輕量化過(guò)程中融入提前停止機(jī)制的方法,利用教師模型訓(xùn)練學(xué)生模型時(shí),在每層編碼加入“耐心早退”機(jī)制,使得不同復(fù)雜度的樣本使用不同層數(shù)的編碼提取特征,減少了學(xué)生模型容易出現(xiàn)的過(guò)擬合問(wèn)題,同時(shí)控制了模型的推理時(shí)間。在電力領(lǐng)域真實(shí)數(shù)據(jù)構(gòu)造的數(shù)據(jù)集上,實(shí)驗(yàn)表明學(xué)生模型的參數(shù)降低至教師模型的60%時(shí),推理時(shí)間縮減近50%,而模型準(zhǔn)確率僅下降約2%,保持了高可用性,相比基準(zhǔn)對(duì)比模型在性能和推理時(shí)間上獲得更好的平衡。
關(guān)鍵詞:電力領(lǐng)域;自然語(yǔ)言理解模型;輕量化模型;知識(shí)蒸餾;早退機(jī)制
DOI:10.15938/j.jhust.2024.06.014
中圖分類號(hào): TM39
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1007-2683(2024)06-0143-07
Research on the Lightweight of Natural Language
Understanding Model in Electric Power Field
DONG Zengbo1, XU Shiyu2, CHEN Xi1, XU Bo2, XIN Rui1, ZHANG Pengfei1, SONG Hui2
(1.Telecommunication Branch State Grid Hebei Electric Power Co., Ltd., Shijiazhuang 050081,China;
2.School of Computer Science and Technology, Donghua University, Shanghai 201620,China)
Abstract:To address the application requirements of indicator question-and-answer (Qamp;A) in the electricity industry, this paper researches a natural language understanding model for balancing performance, computing resource consumption, and inference time, and proposes a method to incorporate an early stopping mechanism in the lightweight process of knowledge distillation. When training the student model with the knowledge of the teacher model, patient early stopping mechanism is added to each layer of encoding, allowing samples of different complexity to be encoded with different layers, reducing overfitting problems that are prone to occur in the student model, and controlling the inference time of the model. On the dataset constructed by the real data in the power industry, experiments show that when the parameters of the student model are reduced to 60% of the teacher model, and the inference time is reduced by nearly 50%, while the accuracy of the model is only reduced by about 2%, maintaining high availability. Compared with the benchmark models, it achieves a better balance in performance and inference time.
Keywords:electricity domain; natural language understanding model; lightweight model; knowledge distillation; early stopping mechanism
收稿日期: 2023-05-10
基金項(xiàng)目: 國(guó)網(wǎng)河北省電力有限公司科技項(xiàng)目(5204XA210002); 國(guó)家自然科學(xué)基金(61906035).
作者簡(jiǎn)介:
董增波(1972—),男,博士,正高級(jí)工程師;
徐詩(shī)雨(1999—),女,碩士.
通信作者:
宋 暉(1971—),女,博士,教授,E-mail:songhui@dhu.edu.cn.
0 引 言
隨著電力系統(tǒng)信息化的快速發(fā)展,電力行業(yè)的信息智能化成為趨勢(shì)。傳統(tǒng)電力指標(biāo)檢索通常需要掌握業(yè)務(wù)領(lǐng)域知識(shí)、熟悉相應(yīng)業(yè)務(wù)系統(tǒng)的專業(yè)人員完成,難以滿足各級(jí)管理人員快速及時(shí)獲取信息的需求。對(duì)話系統(tǒng)[1] 通過(guò)與用戶進(jìn)行自然語(yǔ)言的交互問(wèn)答,將用戶問(wèn)題自動(dòng)轉(zhuǎn)化為業(yè)務(wù)數(shù)據(jù)檢索,成為電力系統(tǒng)智能化建設(shè)的熱點(diǎn)之一。
問(wèn)答系統(tǒng)中自然語(yǔ)言理解(natural language understanding, NLU)是核心模塊[2],它通過(guò)對(duì)用戶輸入的自然語(yǔ)言進(jìn)行解析,充分了解用戶意圖并準(zhǔn)確提取關(guān)鍵信息,為后續(xù)高質(zhì)量的數(shù)據(jù)查詢和分析提供服務(wù)。通常NLU模型規(guī)模越大,性能往往越好[3]。因此,在訓(xùn)練模型的過(guò)程中,越來(lái)越多的研究者更傾向于選擇復(fù)雜的模型結(jié)構(gòu),利用大量的計(jì)算資源從海量的數(shù)據(jù)中提取出有價(jià)值的信息,以此提高模型的性能。但是,使用復(fù)雜的模型結(jié)構(gòu)訓(xùn)練獲得的推理模型對(duì)計(jì)算資源和存儲(chǔ)空間的需求較高[4],在電力系統(tǒng)的檢索應(yīng)用中,由于部署環(huán)境資源受限,導(dǎo)致模型推理速度慢,應(yīng)用效果不佳。
為了減少模型參數(shù),同時(shí)盡可能不降低模型性能,一種模型壓縮的方法—知識(shí)蒸餾,應(yīng)運(yùn)而生[5]。知識(shí)蒸餾的過(guò)程分為兩個(gè)階段,首先訓(xùn)練原始大體量模型,稱為“教師模型”,然后基于大體量模型生成的軟目標(biāo)與原始訓(xùn)練數(shù)一起訓(xùn)練輕量型模型,稱為“學(xué)生模型”。 通過(guò)這種方法,學(xué)生模型能夠從教師模型中獲得知識(shí),比單純依靠原始訓(xùn)練數(shù)據(jù)獲得的模型擁有更好的性能[6]。現(xiàn)有研究工作關(guān)注蒸餾方法的設(shè)計(jì),典型的FitNets[7]從教師模型的網(wǎng)絡(luò)層中提取特征來(lái)充當(dāng)學(xué)生模型中間層輸出的提示, Mirzadeh等[8]提出多步驟知識(shí)蒸餾方法提高學(xué)生模型的性能。但是教師模型與學(xué)生模型由于模型容量差異,特征表達(dá)能力不同,存在“代溝”問(wèn)題,現(xiàn)有研究主要關(guān)注了蒸餾模型本身[9],而沒(méi)有充分考慮學(xué)生模型無(wú)法充分?jǐn)M合教師模型特征,導(dǎo)致的精度下降問(wèn)題。另一方面在電力營(yíng)銷這樣的應(yīng)用場(chǎng)景中,不同樣本之間的難度差異很大,一些樣本可能很容易被學(xué)生模型學(xué)習(xí),而另一些樣本則可能很難學(xué)習(xí)。學(xué)生模型要適應(yīng)不同樣本之間的難度差異,提高模型的泛化能力。
提前停止(early stopping,早停)機(jī)制也是一種模型輕量化技術(shù),其可以根據(jù)模型輸入動(dòng)態(tài)調(diào)整其計(jì)算路徑與執(zhí)行層數(shù),使得樣本能夠在不通過(guò)整個(gè)模型的情況下更早地退出。DeeBert[10]通過(guò)在BERT的每個(gè)Transformer層之間添加額外的分類層,即出口匝道(off-ramp)。FastBERT[11]給出了基于熵(entropy-based)的早退方法,使中間層的輸出和最后一層分類器的輸出保持一致,提高模型的性能。Zhou等[12]提出了一種基于耐心早退的模型訓(xùn)練早停策略來(lái)應(yīng)對(duì)模型過(guò)度思考現(xiàn)象,結(jié)合了前面層和當(dāng)前層的預(yù)測(cè)結(jié)果,防止模型過(guò)擬合。但僅使用早停機(jī)制實(shí)現(xiàn)輕量化很難控制推理模型的規(guī)模,因此考慮在知識(shí)蒸餾方法中引入早停機(jī)制。
本文在電力領(lǐng)域指標(biāo)問(wèn)答系統(tǒng)中,訓(xùn)練電力領(lǐng)域意圖識(shí)別和槽填充模型來(lái)理解用戶意圖。為了設(shè)計(jì)出符合上線要求的模型,提出了基于早退機(jī)制的知識(shí)蒸餾方法來(lái)訓(xùn)練一個(gè)輕量級(jí)的學(xué)生模型,以在模型性能、計(jì)算資源消耗與推理時(shí)間之間找到合適的平衡點(diǎn)。
1 電力領(lǐng)域NLU模型
1.1 電力營(yíng)銷指標(biāo)問(wèn)答NLU任務(wù)定義
面向電力營(yíng)銷領(lǐng)域的指標(biāo)問(wèn)答業(yè)務(wù)場(chǎng)景的需求,本文對(duì)電力領(lǐng)域的NLU任務(wù)業(yè)務(wù)規(guī)范(Schema)進(jìn)行定義,進(jìn)而劃分領(lǐng)域、意圖和槽位。根據(jù)電力領(lǐng)域的工作報(bào)告、指標(biāo)報(bào)表中心涉及的業(yè)務(wù)場(chǎng)景和指標(biāo)數(shù)據(jù),定義了電量、臺(tái)賬和線損3個(gè)業(yè)務(wù)領(lǐng)域。由于業(yè)務(wù)領(lǐng)域的不同,指標(biāo)檢索的問(wèn)題也有所不同,意圖也隨之發(fā)生變化,分析后定義了5類檢索意圖,包括統(tǒng)計(jì)數(shù)量、篩選詳細(xì)名單、詢問(wèn)占比情況、檢索排、計(jì)算差異等。
通過(guò)對(duì)業(yè)務(wù)領(lǐng)域的常見(jiàn)問(wèn)題(frequently asked questions, FAQs)進(jìn)行綜合分析,挖掘常見(jiàn)問(wèn)題中不可或缺的槽位,比如時(shí)間以及單位,作為固定的篩選條件。由于不同業(yè)務(wù)領(lǐng)域關(guān)注的業(yè)務(wù)指標(biāo)存在差異,特殊槽定義為某一業(yè)務(wù)領(lǐng)域特有的業(yè)務(wù)指標(biāo)或統(tǒng)計(jì)維度,這些槽位可以作為相對(duì)靈活的檢索篩選條件,共定義了24個(gè)槽。
NLU任務(wù)中,輸入文本為用戶自然語(yǔ)言問(wèn)題x={x1,x2,…,xn},輸出結(jié)果為用戶問(wèn)題所屬的領(lǐng)域domain、意圖intent和一組請(qǐng)求的槽位及其對(duì)應(yīng)值的集合,表示為
{domain:d_value,intention:i_value,slots:{slot1:value1,slot2:value2,…,slotn:valuen}}
在此基礎(chǔ)上對(duì)收集的對(duì)話數(shù)據(jù)進(jìn)行人工標(biāo)注,根據(jù)領(lǐng)域數(shù)據(jù),利用槽值替換實(shí)現(xiàn)數(shù)據(jù)增強(qiáng),并利用生成式語(yǔ)言模型生成同一檢索的多種語(yǔ)言表達(dá)方式,獲得訓(xùn)練數(shù)據(jù)集。
1.2 基于BERT+CRF的NLU模型
NLU任務(wù)中,領(lǐng)域和意圖是預(yù)定義的離散標(biāo)簽,使用分類模型進(jìn)行識(shí)別;而查詢關(guān)鍵信息包括槽位和對(duì)應(yīng)值,使用序列標(biāo)注模型來(lái)識(shí)別和抽取。
本文采用端到端的分類和序列標(biāo)注模型BERT+CRF[13]實(shí)現(xiàn)NLU任務(wù)(后簡(jiǎn)稱Joint-NLU),模型由編碼層和解碼層組成,如圖1所示。
編碼層采用12層Transformer結(jié)構(gòu)的 Bert-base進(jìn)行編碼,解碼層基于隱狀態(tài)序列中字符“[CLS]”對(duì)應(yīng)的隱藏層向量hidden[CLS]計(jì)算領(lǐng)域和意圖的類型標(biāo)簽;序列標(biāo)注則通過(guò)預(yù)測(cè)每個(gè)字符對(duì)應(yīng)于槽位的首尾標(biāo)簽分布,得到詞對(duì)應(yīng)的槽標(biāo)簽概率,將其與BIO標(biāo)簽對(duì)照,抽取出對(duì)應(yīng)的槽值對(duì)。
2 融合早停機(jī)制的知識(shí)蒸餾模型
基于早退機(jī)制的知識(shí)蒸餾方法來(lái)訓(xùn)練一個(gè)輕量級(jí)的學(xué)生模型,該模型在訓(xùn)練學(xué)生模型時(shí)引入提前停止機(jī)制,使用耐心值(patient)來(lái)控制模型編碼,根據(jù)樣本的復(fù)雜度,動(dòng)態(tài)調(diào)整執(zhí)行層數(shù)。對(duì)簡(jiǎn)單樣本使用淺層子模型,對(duì)復(fù)雜樣本使用深層模型,盡可能利用較少的參數(shù)提取復(fù)雜特征的表示。
2.1 模型結(jié)構(gòu)
Joint-NLU模型經(jīng)過(guò)充分訓(xùn)練后,被選為分析的基準(zhǔn)模型,也是知識(shí)蒸餾框架中的教師模型。知識(shí)蒸餾的目標(biāo)是利用教師模型提供的知識(shí)進(jìn)行指導(dǎo)和監(jiān)督,學(xué)習(xí)和優(yōu)化學(xué)生模型,達(dá)到與教師模型相似的性能和準(zhǔn)確率。
為了達(dá)到平衡學(xué)生模型的性能和執(zhí)行時(shí)間,防止模型過(guò)擬合,早停機(jī)制被引入學(xué)生模型中,即在學(xué)生模型的每個(gè)Transformer層后插入額外的分類層,即出口匝道(off-ramp),實(shí)現(xiàn)領(lǐng)域、意圖識(shí)別和槽填充任務(wù),根據(jù)結(jié)果判斷模型是否達(dá)到“耐心”的早退標(biāo)準(zhǔn)。具體模型框架如圖2所示。
訓(xùn)練學(xué)生模型時(shí),樣本之間普遍存在著識(shí)別、難度差異。對(duì)于一些簡(jiǎn)單的樣本,僅使用前幾層BERT 編碼就能夠獲得正確的預(yù)測(cè),后續(xù)的編碼計(jì)算可以被認(rèn)為是冗余的,如果省略能提高推理速度。而對(duì)于難度較高的樣本,則保留較多的Transformer層來(lái)保證其準(zhǔn)確性。
基于耐心的早停策略,主要通過(guò)記錄一個(gè)“耐心指數(shù)”pa來(lái)實(shí)現(xiàn),其初始化為0。其基本原理是在每個(gè)訓(xùn)練epoch結(jié)束時(shí),從模型最底層開(kāi)始計(jì)算驗(yàn)證集精度,如果當(dāng)前層與前面層預(yù)測(cè)結(jié)果一致則耐心指數(shù)增加1;當(dāng)預(yù)測(cè)結(jié)果不一致時(shí),耐心指數(shù)置為0。當(dāng)耐心指數(shù)達(dá)到預(yù)設(shè)閾值,模型將在當(dāng)前層提前終止,以防止過(guò)擬合,否則將最后一層的預(yù)測(cè)結(jié)果作為最終結(jié)果輸出。
輸入x′經(jīng)過(guò)模型的L1,L2,…,LN層,其中Li表示出口匝道為第i層,預(yù)測(cè)領(lǐng)域類別D,意圖類型I類別,以及相應(yīng)的槽值對(duì)S。隱藏向量狀態(tài)hi計(jì)算方法如式(1)所示,其中fLM為語(yǔ)言模型的基礎(chǔ)編碼。
hi=Li(hi-1),i≠0
fLM(x′),i=0(1)
利用hi中字符“[CLS]”對(duì)應(yīng)的隱藏層向量hi[CLS]分別輸入領(lǐng)域分類層和意圖識(shí)別層中,得到第i層的領(lǐng)域類別Di,第i層的意圖類別Ii,以及第i層的槽值對(duì)信息Si。當(dāng)前層預(yù)測(cè)值Resi={Di,Ii,Si}。然后,使用耐心指數(shù)計(jì)數(shù)器pa來(lái)存儲(chǔ)當(dāng)前層預(yù)測(cè)值Resi 與前面層結(jié)果Resi-1完全一致的次數(shù)。具體地,計(jì)數(shù)器pa的計(jì)算方法如式(2)所示:
pai=pai-1+1,Resi=Resi-1
0,Resi≠Resi-1∨i=0(2)
當(dāng)計(jì)數(shù)器pa達(dá)到預(yù)設(shè)耐心閾值P時(shí),模型就要在第i層提前退出,終止訓(xùn)練。
2.2 知識(shí)蒸餾的學(xué)習(xí)過(guò)程
為了縮小學(xué)生模型的規(guī)模并保持模型的推理效果,不造成過(guò)大的代溝問(wèn)題,在選擇學(xué)生模型時(shí),首先需對(duì)基準(zhǔn)模型進(jìn)行適當(dāng)裁剪。文[14]的研究表明裁剪一定數(shù)量的編碼層次結(jié)構(gòu),并不會(huì)對(duì)語(yǔ)言模型的表征能力產(chǎn)生過(guò)多的影響,同時(shí)能夠顯著降低模型參數(shù)量和推理時(shí)間。基于這一理念,將教師模型的編碼層裁剪至m(mlt;12)層Transformer結(jié)構(gòu)作為基礎(chǔ)學(xué)生模型。
知識(shí)蒸餾通過(guò)通過(guò)帶溫度平滑標(biāo)簽的損失函數(shù)來(lái)遷移目標(biāo)分布實(shí)現(xiàn)知識(shí)學(xué)習(xí)的過(guò)程。由于教師模型輸出的概率分布熵是通過(guò)邏輯單元Softmax激活函數(shù)轉(zhuǎn)化而來(lái),負(fù)標(biāo)簽的概率在該函數(shù)的作用下會(huì)非常接近零,造成關(guān)于負(fù)標(biāo)簽的部分信息丟失。通過(guò)帶溫度平滑標(biāo)簽的損失函數(shù),可以提供更多的信息,因此需要加入溫度Γ這個(gè)變量。加入溫度Γ后的Softmax函數(shù)計(jì)算方法如式(3)所示:
qi=exp(zi/Γ)∑jexp(zj/Γ)(3)
其中:zi為預(yù)測(cè)標(biāo)簽。隨著Γ的減小,輸出各類別之間的概率差距越大(陡峭),從而導(dǎo)致?lián)p失變小,原始的Softmax函數(shù)可以看作Γ=1的情況。增大Γ時(shí),輸出的各類別概率差距會(huì)越來(lái)越?。ㄆ交?,導(dǎo)致?lián)p失變大。相比于真實(shí)值輸出或原始Softmax的概率輸出,軟化后的概率值能夠提供更多的信息。
將教師模型的輸出作為輔助目標(biāo),通過(guò)最小化學(xué)生模型輸出logits_s與教師模型的輸出logits_t之間的差異,來(lái)學(xué)習(xí)教師模型中的知識(shí)。該差異通常通過(guò)計(jì)算預(yù)測(cè)結(jié)果與教師模型預(yù)測(cè)結(jié)果的KL散度來(lái)衡量。同時(shí)為了保證學(xué)生模型的準(zhǔn)確性,學(xué)生模型的損失仍需包括預(yù)測(cè)值與真實(shí)值的交叉熵?fù)p失。
2.3 學(xué)生模型的訓(xùn)練損失計(jì)算
學(xué)生網(wǎng)絡(luò)主要學(xué)習(xí)真實(shí)標(biāo)簽與教師網(wǎng)絡(luò)傳遞過(guò)來(lái)的類間相似信息,因此學(xué)生模型的總體損失L_total由兩部分組成:學(xué)生模型出口的預(yù)測(cè)值與真實(shí)標(biāo)簽之間的損失L_stu和學(xué)生模型與教師模型蒸餾時(shí)產(chǎn)生的蒸餾損失L_dis。 L_total按照Hinton[15]的提出的損失計(jì)算方法來(lái)計(jì)算損失。訓(xùn)練損失計(jì)算流程如圖 3所示,計(jì)算方法如下:
Ltotal=λLstu+(1-λ)LdisΓ2(4)
其中:λ為損失調(diào)節(jié)系數(shù),用來(lái)控制學(xué)生損失與蒸餾損失的比例;Γ為溫度參數(shù),控制類別標(biāo)簽軟概率的軟化程度。
輸入樣本x經(jīng)過(guò)學(xué)生模型的L1,L2,…,Loff層和分類器來(lái)預(yù)測(cè)標(biāo)簽類別,其中,off為模型off-ramp的層數(shù)。學(xué)生損失 Lstu,為學(xué)生模型基于早停機(jī)制退出層的Resi與真實(shí)值gt的差異。
利用KL散度來(lái)衡量教師模型的輸出 logits_t 與學(xué)生模型輸出 logits_s 兩個(gè)概率分布之間的相似性,其值越小,概率分布越接近。KL散度計(jì)算方法如式(5)所示。
KL(P,Q)=∑Ni=1p(xi)logp(xi)logq(xi)(5)
蒸餾損失 Ldis 的計(jì)算方式如式(6)所示。其中 logits_t 與 logits_s 都為加入溫度 Γ 后的Softmax函數(shù)軟化概率值。
Ldis=KL(Plogitst/Γ,Plogitss/Γ)(6)
3 實(shí)驗(yàn)結(jié)果及分析
3.1 實(shí)驗(yàn)設(shè)置
1)實(shí)驗(yàn)環(huán)境
本文所有實(shí)驗(yàn)均在聯(lián)想R9000K Windows系統(tǒng)上完成,處理器為R9 5900HX,顯卡為RTX 3080,運(yùn)行內(nèi)存32.0G。
2)數(shù)據(jù)集
實(shí)驗(yàn)數(shù)據(jù)集收集了電力領(lǐng)域的指標(biāo)檢索場(chǎng)景常見(jiàn)問(wèn)題(以下簡(jiǎn)稱電力數(shù)據(jù)集),按照定義進(jìn)行人工標(biāo)注,再根據(jù)領(lǐng)域數(shù)據(jù)的特點(diǎn),對(duì)其進(jìn)行槽值替換,并利用生成式語(yǔ)言模型生成多種表達(dá)方式,從而增強(qiáng)數(shù)據(jù)集的多樣性和覆蓋范圍,以便于更好地支持用戶在不同業(yè)務(wù)場(chǎng)景下的查詢需求。最終用于訓(xùn)練的數(shù)據(jù)集涵蓋3個(gè)業(yè)務(wù)領(lǐng)域、5類檢索意圖和24個(gè)填充槽,434類句式總計(jì)18672條樣本,樣本平均長(zhǎng)度為25.4個(gè)字符,其中訓(xùn)練集13200條,驗(yàn)證集4240條,測(cè)試集1272條。
3)實(shí)驗(yàn)參數(shù)設(shè)置
實(shí)驗(yàn)基于 PyTorch的 Huggingface Transformers框架[16],采用預(yù)先訓(xùn)練好的bert-base-chinese語(yǔ)言模型。該模型結(jié)構(gòu)包括12層Transformer結(jié)構(gòu),有768個(gè)維度的詞向量。最大的輸入序列長(zhǎng)度為512,學(xué)習(xí)率5e-5。
在本實(shí)驗(yàn)中,蒸餾溫度控制了將知識(shí)從教師模型傳遞到學(xué)生模型時(shí)使用的目標(biāo)概率的軟硬程度。耐心指數(shù)決定了當(dāng)前層需要與前面層預(yù)測(cè)結(jié)果一致的次數(shù)。教師模型的Transformer層數(shù)表示網(wǎng)絡(luò)結(jié)構(gòu)的深度。損失系數(shù)平衡了蒸餾損失和學(xué)生損失的重要性。具體參數(shù)如表1所示。
3.2 評(píng)價(jià)指標(biāo)
在評(píng)估學(xué)生模型的性能時(shí),需要綜合考慮多個(gè)指標(biāo),包括語(yǔ)義準(zhǔn)確度(semantic accuracy,SA)、推理速度(time)和參數(shù)量(param)。語(yǔ)義準(zhǔn)確度SA[17]表示正確預(yù)測(cè)了領(lǐng)域與意圖和所有槽(包括O標(biāo)簽)的句子數(shù)量與總句子數(shù)量的比率。模型的推理速度被計(jì)算為模型處理一個(gè)輸入文本樣本的時(shí)間。從輸入傳給模型開(kāi)始,到模型產(chǎn)生輸出結(jié)束??偼评頃r(shí)間Time為處理給定數(shù)據(jù)集中所有輸入樣本的時(shí)間。
3.3 基線模型與對(duì)比實(shí)驗(yàn)
為了獲得最優(yōu)的蒸餾模型,實(shí)驗(yàn)分別基于1~12層Bert層學(xué)生模型訓(xùn)練,獲得了在測(cè)試數(shù)據(jù)集上的性能,包括SA和Time值,如圖4所示。
由圖4可見(jiàn),基于Joint-NLU的教師模型,隨著學(xué)生模型Bert層數(shù)的減少,訓(xùn)練后蒸餾模型的推理時(shí)間持續(xù)下降。推理語(yǔ)義準(zhǔn)確度則存在肘部現(xiàn)象,12~6層模型,SA只下降了1.98%,到4層模型則迅速下降了9.36%,降至89.53%,3層以后則下降更快速。由此可見(jiàn),基于6層的學(xué)生模型訓(xùn)練獲得的蒸餾模型能夠較好地平衡SA和Time,因此最終選擇此模型作為部署模型(Joint-NLU-ES)。
為了說(shuō)明Joint-NLU-ES的有效性,對(duì)比了已有工作的性能?;€模型Joint-ALBERT[14-18]采用具有4層Transformer結(jié)構(gòu)和312個(gè)隱藏層神經(jīng)元的albert_chinese_tiny 預(yù)訓(xùn)練模型[19];Joint-ELECTRA則基于12層Transformer結(jié)構(gòu)和256個(gè)隱藏層神經(jīng)元的chinese-legal-electra-small-discriminator 預(yù)訓(xùn)練模型[20]?;陔娏?shù)據(jù)集,對(duì)比實(shí)驗(yàn)結(jié)果如表2所示。
由表2可得,學(xué)生模型Joint-NLU-ES與教師模型Joint-NLU相比,在推理時(shí)間上下降了19.83s,相當(dāng)于減少了近一半的計(jì)算成本,模型參數(shù)規(guī)模也縮小為原來(lái)的60%,準(zhǔn)確率下降僅2.05%,模型性能損失相對(duì)較小,這說(shuō)明本方法在同時(shí)提高速度和平衡準(zhǔn)確率方面具有更好的效果。相比較Joint-ALBERT輕量級(jí)模型,Joint-NLU-ES雖然在推理時(shí)間上略遜一籌,但在準(zhǔn)確率上具有極大優(yōu)勢(shì)。
實(shí)驗(yàn)表明如果直接將Joint-NLU蒸餾至4層可能會(huì)帶來(lái)知識(shí)丟失的問(wèn)題。相比之下,Joint-NLU-ES通過(guò)保留更多的層數(shù),且采用早退機(jī)制,當(dāng)某一層的表示已經(jīng)足夠準(zhǔn)確地預(yù)測(cè)了當(dāng)前樣本時(shí),早退機(jī)制會(huì)使得該層的計(jì)算直接被省略,使得模型能夠在保證準(zhǔn)確率的前提下僅保留最重要的知識(shí),從而使得小模型仍能盡可能地保留原始模型的知識(shí)。
3.4 消融實(shí)驗(yàn)
為了更加深入地探究本實(shí)驗(yàn)方法的有效性,我們進(jìn)行了一系列的實(shí)驗(yàn)研究,針對(duì)知識(shí)蒸餾、耐心早停機(jī)制的影響進(jìn)行了評(píng)估。在電力數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),比較了完整方法和其消融各個(gè)組成部分后的性能差異,結(jié)果如表3中所示。
知識(shí)蒸餾的作用是快速學(xué)習(xí)有效的知識(shí),使得模型能夠更加高效地完成任務(wù)。結(jié)果表明,缺乏知識(shí)蒸餾會(huì)導(dǎo)致模型的推理時(shí)間增加,同時(shí)SA指標(biāo)下降。
由于缺少與教師模型相當(dāng)?shù)念A(yù)測(cè)能力,模型需要經(jīng)過(guò)更多層才能達(dá)到早退閾值,進(jìn)而導(dǎo)致需要更多的推理時(shí)間。
此外,耐心早停機(jī)制的作用是及時(shí)停止模型訓(xùn)練,避免出現(xiàn)過(guò)擬合現(xiàn)象。結(jié)果顯示,缺少耐心早停機(jī)制同樣也會(huì)導(dǎo)致模型推理時(shí)間變長(zhǎng)。這是因?yàn)槟P托枰咄晁袑?,直到達(dá)到最大深度才會(huì)返回,從而導(dǎo)致推理時(shí)間增加。但是,由于更多的層包含更多的知識(shí)信息,因此,SA也會(huì)有所上升。
4 結(jié) 論
面向電力領(lǐng)域指標(biāo)問(wèn)答的自然語(yǔ)言理解任務(wù)的模型輕量化需求,針對(duì)知識(shí)蒸餾模型的性能不穩(wěn)定問(wèn)題,在學(xué)生模型訓(xùn)練過(guò)程設(shè)計(jì)了基于“耐心值”的早退機(jī)制,充分提取復(fù)雜度不同樣本的特征,防止模型出現(xiàn)過(guò)擬合。實(shí)驗(yàn)表明方法對(duì)比相同參數(shù)規(guī)模的其他模型,學(xué)生模型性能降低最少,推理時(shí)間最快。
實(shí)踐表明,本文提出的模型輕量化在企業(yè)內(nèi)部平臺(tái)部署應(yīng)用中能夠滿足需求,技術(shù)可方便地?cái)U(kuò)展至其他領(lǐng)域任務(wù)。但百兆的模型面向終端應(yīng)用時(shí)還需進(jìn)一步降低,如何保持模型性能是未來(lái)的研究方向。
參 考 文 獻(xiàn):
[1] 趙陽(yáng)洋,王振宇,王佩,等.任務(wù)型對(duì)話系統(tǒng)研究綜述[J].計(jì)算機(jī)學(xué)報(bào), 2020, 43(10):1864.
ZHAO Yangyang, WANG Zhenyu, WANG Pei, et al. A Review of Research on Task-based Dialogue Systems[J]. Journal of Computer Science, 2020, 43(10):1864.
[2] QIN L, XIE T, CHE W, et al. A Survey on Spoken Language Understanding: Recent Advances and New Frontiers[C]// IJCAI, 2021: 4577.
[3] HUI Y, WANG J, CHENG N,et al. Joint Intent Detection and Slot Filling Based on Continual Learning Model[C]//2021 IEEE International Conference on Acoustics, Speech and Signal Processing. Toronto, Canada, 2021: 7643.
[4] 劉宇鵬,李國(guó)棟.基于棧式預(yù)訓(xùn)練模型的中文序列標(biāo)注[J].哈爾濱理工大學(xué)學(xué)報(bào),2022,27(1):8.
LIU Yupeng, LI Guodong. Chinese Sequence Annotation Based on Stack Pre Training Model[J]. Journal of Harbin Institute of Technology, 2022,27(1):8.
[5] SEE A, LUONG M T, MANNING C D. Compression of Neural Machine Translation Models Via Pruning[C]//Proceedings of the 20th SIGNLL Conference on Computational Natural Language Learning.Berlin, Germany, 2016: 291.
[6] 黃震華, 楊順志, 林威,等. 知識(shí)蒸餾研究綜述[J]. 計(jì)算機(jī)學(xué)報(bào),2022,45(3):625.
HUANG Zhenhua, YANG Shunzhi, LIN Wei, et al A Review of Research on Knowledge Distillation[J] Journal of Computer Science, 2022,45(3):625.
[7] ROMERO A, BALLAS N, KAHOU S E, et al. FitNets: Hints for Thin Deep Nets[C]// ICLR, 2015:1.
[8] MIRZADEH S I, FARAJTABAR M, LI A, et al. Improved Knowledge Distillation Via Teacher Assistant[C]//Proceedings of the AAAI Conference on Artificial Intelligence. New York, USA, 2020, 34(4): 5191.
[9] LI X, XIONG H, WANG H, et al. DELTA: Deep Learining Transfer Using Feature Map With Attention For Convolutional Networks[C]//International Conference on Learning Representations, New Orleans, USA, 2019: 1.
[10]XIN J, TANG R, LEE J, et al.DeeBERT: Dynamic Early Exiting for Accelerating BERT Inference[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Seattle, USA, 2020: 2246.
[11]LIU W, ZHOU P, WANG Z, et al.FastBERT: a Self-distilling BERT with Adaptive Inference Time[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, 2020: 2145.
[12]ZHOU W, XU C, GE T, et al. BERT Loses Patience: Fast and Robust Inference with Early Exit[C]//Advances in Neural Information Processing Systems, 2020, 33: 18330.
[13]DONG L, YANG N, WANG W, et al. Unified Language Model Pre-training for Natural Language Understanding and Generation[C]//Proceedings of the 33rd Conference on Neural Information Processing Systems. NeurIPS, Vancouver Canada, 2019.
[14]LAN Z, CHEN M, GOODMAN S, et al. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations[C]//International Conference on Learning Representations, New Orleans, USA, 2020:1.
[15]HINTON G, VINYALS O, DEAN J. Distilling the Knowledge in a Neural Network[J]. Computer Science, 2015, 14(7):39.
[16]JACOB DEVLIN. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[EB/OL]. https://huggingface.co/bert-base-chinese, 2019.
[17]WELD H, HUANG X, LONG S, et al. A Survey of Joint Intent Detection and Slot Filling Models in Natural Language Understanding[J]. ACM Computing Surveys, 2022,55:4.
[18]杜潔,駱力明,孫眾.基于ALBERT預(yù)訓(xùn)練模型的事件抽取技術(shù)研究[J].計(jì)算機(jī)工程與科學(xué),2023,45:713.
DU Jie, LUO Liming, SUN Zhong. Research on Event Extraction Technology Based on ALBERT Pre Training Model[J]. Computer Engineering and Science, 2023,45:713.
[19]LAN Zhenzhong. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations[EB/OL]. https://huggingface.co/voidful/albert_chinese_tiny, 2020:1.
[20]CUI Yiming. Revisiting Pre-Trained Models for Chinese Natural Language Processing[EB/OL]. https://huggingface.co/hfl/chinese-legal-electra-small-discriminator, 2020:657.
(編輯:溫澤宇)