版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章預(yù)訓(xùn)練模型本章主要內(nèi)容:1.PLM特點(diǎn)與分類2.自回歸語言模型3.自編碼語言模型4.編碼器-解碼器模型5.前綴語言模型6.排列語言模型7.PLM訓(xùn)練8.PLM的微調(diào)9.應(yīng)用方法
6.1PLM特點(diǎn)、結(jié)構(gòu)與分類
PLM現(xiàn)已成為LLM的主流模型,PLM發(fā)展過程如圖6-1所示。PLM發(fā)展的重要時(shí)間點(diǎn)如下:
·在2013年,Word2vec詞向量產(chǎn)生模型開啟了自然語言預(yù)訓(xùn)練的序章。
·在2015年注意力的出現(xiàn)使得模型可以關(guān)注更重要的信息。
·在2016年自注意力機(jī)制出現(xiàn)。
·在2017年提出Transformer模型,將PLM的效果提升到了新的高度。
·在2017年后,BERT、RoBERTa、XLNet、T5、ALBERT、GPT-3等語言大模型出現(xiàn),從自然語言理解及自然語言生成等角度,不斷地刷新自然語言處理領(lǐng)域任務(wù)的SOTA表現(xiàn)6.1.1PLM特點(diǎn)1.泛化能力強(qiáng)2.適應(yīng)性強(qiáng)3.數(shù)據(jù)效率高
6.1.2PLM核心結(jié)構(gòu)PLM的結(jié)構(gòu)是基于深度神經(jīng)網(wǎng)絡(luò)而構(gòu)建,尤其是Transformer架構(gòu),因?yàn)樗軌蛴行У靥幚硇蛄袛?shù)據(jù)并捕捉長距離依賴關(guān)系。在原始Transformer模型基礎(chǔ)上,相繼衍生出了三類PLM:編碼PLM、解碼PLM和編碼-解碼PLM。1.編碼器PLM2.解碼器PLM3.編碼-解碼PLM
6.1.3PLM分類
PLM可以根據(jù)不同的標(biāo)準(zhǔn)進(jìn)行分類。常見的分類方式如下。1.根據(jù)訓(xùn)練目標(biāo)和任務(wù)分類(1)通用預(yù)訓(xùn)練模型(2)任務(wù)特定預(yù)訓(xùn)練模型2.根據(jù)模型架構(gòu)分類(1)基于Transformer的模型(2)基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的模型(3)基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的模型3,根據(jù)輸入表示分類(1)單向模型(2)雙向模型4.根據(jù)是否開源分類(1)開源模型(2)閉源模型5.根據(jù)語言類型分類(1)單語言模型(2)多語言模型
6.2自回歸語言模型自回歸語言模型就是根據(jù)上文預(yù)測下文或者根據(jù)下文預(yù)測上文,典型的代表是GPT,只能利用上文或者下文的信息,不能同時(shí)利用上文和下文的信息
6.2.1自回歸語言模型原理自回歸語言模型的原理是基于統(tǒng)計(jì)學(xué)習(xí)理論,其核心思想是通過前面的詞來預(yù)測序列中的下一個(gè)詞。以下是自回歸語言模型的基本原理。1.序列建模自回歸語言模型將文本視為一個(gè)時(shí)間序列,其中每個(gè)詞或字符是序列中的一個(gè)元素。模型的任務(wù)是預(yù)測序列中的下一個(gè)元素,即給定一個(gè)序列的前綴,預(yù)測下一個(gè)詞或字符。2.條件概率自回歸模型使用條件概率來表示序列中下一個(gè)元素的概率。具體來說,給定一個(gè)序列w1,w2,...,wn,模型試圖估計(jì)序列中每個(gè)詞wi出現(xiàn)的概率,這個(gè)概率是在觀察到序列中所有前面的詞的條件下計(jì)算的:
。
3.最大似然估計(jì)在訓(xùn)練過程中,自回歸語言模型的目標(biāo)是最大化訓(xùn)練數(shù)據(jù)上的對數(shù)似然,即最大化以下目標(biāo)函數(shù):
其中θ是模型的參數(shù),N是訓(xùn)練數(shù)據(jù)中的序列數(shù)。 自回歸語言模型架構(gòu)其背后的核心理念可追溯至自回歸模型與Transformer架構(gòu)兩大理論基礎(chǔ)。自回歸模型是一種統(tǒng)計(jì)建模方法,通過當(dāng)前狀態(tài)依賴于過去狀態(tài)的性質(zhì)來描述隨機(jī)過程。在語言模型中,自回歸模型假設(shè)當(dāng)前詞的概率分布僅取決于其之前的詞序列。
6.2.2自回歸語言模型結(jié)構(gòu)Transformer架構(gòu)是GPT所依賴的深度學(xué)習(xí)結(jié)構(gòu),完全基于自注意力機(jī)制構(gòu)建,能夠高效并行處理長序列數(shù)據(jù),可以捕獲長程依賴關(guān)系。1.自回歸語言模型預(yù)測下一個(gè)詞時(shí),使用前面的詞作為上下文。這表明,為了預(yù)測一個(gè)句子中的第t個(gè)詞,它會(huì)使用從第1到第t-1的詞。這種模型特別適用于文本生成任務(wù)。例如,GPT系列就是自回歸模型,其特點(diǎn)是只有一個(gè)生成方向(通常是從左到右)預(yù)測下一個(gè)詞。2.Transformer利用自注意力機(jī)制,使得每個(gè)位置的token,都有機(jī)會(huì)注意到任意位置的token。為了避免下文信息泄露,使用了注意力屏蔽方法。注意力屏蔽矩陣M經(jīng)過配置,可以讓xi屏蔽來自xj
的注意力。在圖6-2中,利用注意力屏蔽矩陣可以實(shí)現(xiàn)任意位置token,但無法接收來自下文的信息。
3.解碼器自回歸語言模型結(jié)構(gòu)如圖6-3所示,語言模型預(yù)訓(xùn)練的時(shí)候,采用自回歸(AR)方法,從左到右逐個(gè)生成單詞,第i個(gè)單詞只能看到它之前的第1個(gè)到第i-1個(gè)單詞,但不能看到i+1,i+2,…后面的單詞。GPT-1、GPT-2和GPT-3模型都采用這種結(jié)構(gòu)的模型。可以看出,解碼器自回歸(AR)語言模型結(jié)構(gòu)是個(gè)單向語言模型的結(jié)構(gòu)。.
圖6-2圖6-3對于語言生成類的任務(wù),這種結(jié)構(gòu)是效果最好的結(jié)構(gòu)之一。因?yàn)橹荒芸吹缴衔摹⒌床坏较挛?,由于對于很多語言理解類任務(wù),信息損失很大,所以這種結(jié)構(gòu)適合做語言生成類的任務(wù),而不適合語言理解類的任務(wù)。解碼器自回歸語言模型是一種基于Transformer架構(gòu)的模型,它在自然語言處理任務(wù)中表現(xiàn)出色,尤其是在文本生成方面。這種模型的核心特點(diǎn)是解碼器部分采用自回歸的方式生成文本,即每個(gè)時(shí)間步的輸出作為下一個(gè)時(shí)間步的輸入。6.2.3解碼器自回歸語言模型構(gòu)建
1.數(shù)據(jù)準(zhǔn)備 收集大規(guī)模文本數(shù)據(jù)(如網(wǎng)頁、書籍、社交媒體等),進(jìn)行預(yù)處理(如分詞、去停用詞、添加起始/結(jié)束標(biāo)記等)。
2.模型構(gòu)建 使用深度學(xué)習(xí)框架(如PyTorch、TensorFlow)搭建PLM架構(gòu),包括多層Transformer編碼器、自注意力機(jī)制、位置編碼等組件。
3.預(yù)訓(xùn)練 在大規(guī)模無標(biāo)注文本數(shù)據(jù)上執(zhí)行語言模型任務(wù)進(jìn)行預(yù)訓(xùn)練,通過最大化預(yù)測下一個(gè)詞的概率,學(xué)習(xí)通用的語言表示。
4.微調(diào) 針對特定NLP任務(wù)(如文本生成、問答、文本分類等),在已預(yù)訓(xùn)練的PLM基礎(chǔ)上添加任務(wù)特定的輸出層,然后在相應(yīng)的小規(guī)模標(biāo)注數(shù)據(jù)集上進(jìn)行微調(diào),優(yōu)化模型對特定任務(wù)的適應(yīng)性。6.2.4訓(xùn)練和推理的局限性1.訓(xùn)練效率:由于自回歸模型在訓(xùn)練時(shí)必須按順序處理序列,因此訓(xùn)練效率較低。
2.推理速度:在生成文本時(shí),模型必須逐個(gè)詞地生成,這限制了并行計(jì)算的可能性,導(dǎo)致推理速度較慢。
3.上下文長度:自回歸模型通常受到上下文長度的限制,因?yàn)樗鼈冃枰鶕?jù)前面的所有詞來預(yù)測下一個(gè)詞,這可能導(dǎo)致長序列的處理效率低下。 自回歸語言模型簡單、直觀,在自然語言處理領(lǐng)域得到了廣泛的應(yīng)用,尤其是在文本生成任務(wù)中。然而,隨著模型規(guī)模的增大和數(shù)據(jù)量的增加,研究者們也在探索更高效的模型架構(gòu),如非自回歸模型。6.3自編碼語言模型自編碼語言模型(AutoencoderLanguageModel)是一種基于自編碼器原理的語言模型。自編碼器是一種數(shù)據(jù)壓縮算法,其中壓縮和解壓縮功能是數(shù)據(jù)驅(qū)動(dòng)、學(xué)習(xí)得到的,而不是預(yù)先設(shè)定的。6.3.1自編碼語言模型原理自回歸語言模型只能根據(jù)上文預(yù)測下一個(gè)單詞,或者反過來,只能根據(jù)下文預(yù)測前面一個(gè)單詞。相比而言,自編碼語言模型通過在輸入X中隨機(jī)Mask掉一部分單詞,然后預(yù)訓(xùn)練過程的主要任務(wù)之一是根據(jù)上下文單詞來預(yù)測這些被Mask掉的單詞,如果對去噪自動(dòng)編碼器比較熟悉的話,就會(huì)看出,這確實(shí)是典型的自動(dòng)編碼器(DAE)的思路。那些被Mask掉的單詞就是在輸入側(cè)加入的所謂噪音。類似BERT這種預(yù)訓(xùn)練模式,被稱為自編碼語言模型(DAELM)。 自編碼模型通常包括一個(gè)編碼器和一個(gè)解碼器。編碼器將輸入(如文本)轉(zhuǎn)換為一個(gè)固定大小的向量表示(稱為編碼),而解碼器則試圖從這個(gè)編碼中重建原始輸入。自編碼模型常用于機(jī)器翻譯或句子摘要的任務(wù)。自編碼語言模型可以被視為一種自編碼模型,盡管它不是為了重建其輸入而設(shè)計(jì)的,而是為了預(yù)測其中的某些隱藏詞。其特點(diǎn)是:能夠同時(shí)捕獲前后文信息,因?yàn)樗梢酝瑫r(shí)考慮一個(gè)詞的左側(cè)和右側(cè)的上下文。相似之處:兩者都可以捕獲語言的統(tǒng)計(jì)特性,并且都是基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型。不同之處:自回歸模型更專注于生成文本,而自編碼模型更多地關(guān)注于表示和轉(zhuǎn)換文本。最后,值得注意的是,這兩種架構(gòu)可以結(jié)合使用。例如,T5(Text-to-TextTransferTransformer)模型就將問題和答案都視為文本,并使用自回歸模型來生成答案,同時(shí)又利用了自編碼模型的一些思想。6.3.2自編碼語言模型結(jié)構(gòu)自編碼語言模型沒有順序和次序約束,可以一次性獲取到序列中的所有信息。自編碼語言模型通常包括一個(gè)編碼器和一個(gè)解碼器。編碼器將輸入(如文本)轉(zhuǎn)換為一個(gè)固定大小的向量表示(稱為編碼),而解碼器則試圖從這個(gè)編碼中重建原始輸入。自編碼模型常用于如機(jī)器翻譯或句子摘要的任務(wù)。自編碼器結(jié)構(gòu)主要特點(diǎn)可以同時(shí)看到文本的上文和下文,對于語言理解類的任務(wù),采用這種結(jié)構(gòu)效果非常明顯,如圖6-4所示。自編碼語言模型結(jié)構(gòu)適合語言理解類的任務(wù),不適合語言生成類的任務(wù)。6.3.3自編碼語言模型訓(xùn)練一個(gè)簡化的自編碼語言模型訓(xùn)練過程如下:1.準(zhǔn)備數(shù)據(jù):收集大量文本數(shù)據(jù),如語料庫、文章等。2.數(shù)據(jù)預(yù)處理:對文本進(jìn)行分詞、去停用詞、字符編碼等操作。3.構(gòu)建模型:設(shè)計(jì)編碼器和解碼器的網(wǎng)絡(luò)結(jié)構(gòu),如使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)或Transformer等。4.訓(xùn)練模型:使用無監(jiān)督學(xué)習(xí)方法訓(xùn)練自編碼器,如最小化輸入文本與解碼器輸出之間的重構(gòu)誤差。5.優(yōu)化模型:通過調(diào)整模型參數(shù)、超參數(shù)等,提高模型性能。6.應(yīng)用模型:將訓(xùn)練好的自編碼語言模型應(yīng)用于下游任務(wù),如文本分類、情感分析等。自編碼語言模型的優(yōu)缺點(diǎn)正好和自回歸語言模型反過來,它能比較自然地融入雙向語言模型,同時(shí)可以看到被預(yù)測單詞的上文和下文,這是其優(yōu)點(diǎn)。缺點(diǎn)是:主要在輸入側(cè)引入[Mask]標(biāo)記,導(dǎo)致預(yù)訓(xùn)練階段和微調(diào)階段不一致的問題,因?yàn)樵谖⒄{(diào)階段是看不到[Mask]標(biāo)記的。但自編碼器就要引入噪音,[Mask]標(biāo)記就是引入噪音的手段。自編碼語言模型是一種旨在重構(gòu)輸入數(shù)據(jù)的模型,它們通常用于降維或特征學(xué)習(xí),而不是直接用于生成文本。在NLP中,自編碼語言模型主要關(guān)注于學(xué)習(xí)輸入文本的有效表示。
6.4編碼器-解碼器模型
編碼器-解碼器預(yù)訓(xùn)練模型是一種在自然語言處理中廣泛使用的架構(gòu),特別是在機(jī)器翻譯、文本摘要、對話系統(tǒng)等序列到序列任務(wù)中。自編碼語言模型適于語言理解類的任務(wù),自回歸語言模型適于語言生成類的任務(wù)。結(jié)合兩者的優(yōu)勢,使得PLM既適于生成類任務(wù),又能適于理解類任務(wù),所以提出了編碼器-解碼器。6.4.1編碼器-解碼器原理1.基本概念 (1)編碼器:負(fù)責(zé)將輸入序列(如一個(gè)句子)編碼成一個(gè)固定長度的向量,這個(gè)向量通常被稱為上下文向量或編碼向量,它捕獲了輸入序列的語義信息。 (2)解碼器:負(fù)責(zé)根據(jù)編碼器生成的上下文向量生成目標(biāo)序列(如翻譯后的句子或文本摘要)。2.預(yù)訓(xùn)練原理 (1)大規(guī)模語料庫預(yù)訓(xùn)練: 編碼器-解碼器模型通常在大規(guī)模語料庫上進(jìn)行預(yù)訓(xùn)練,以學(xué)習(xí)通用的語言表示。 在預(yù)訓(xùn)練階段,模型會(huì)嘗試學(xué)習(xí)如何重建輸入序列,或者執(zhí)行其他輔助任務(wù),如掩碼語言模型(MaskedLanguageModel,MLM)或下一句預(yù)測(NextSentencePrediction,NSP)。 (2)自監(jiān)督學(xué)習(xí) 預(yù)訓(xùn)練通常是自監(jiān)督的,意味著不需要標(biāo)注的數(shù)據(jù)。模型通過預(yù)測文本中的部分隱藏或隨機(jī)替換的片段來自動(dòng)生成標(biāo)簽。.3.編碼器-解碼器預(yù)訓(xùn)練步驟 (1)輸入處理:將輸入文本轉(zhuǎn)換為模型可以理解的格式,如詞嵌入。 (2)編碼器預(yù)訓(xùn)練: 編碼器讀取輸入序列,并通過其網(wǎng)絡(luò)結(jié)構(gòu)(如RNN、LSTM、Transformer等)生成上下文向量。 在預(yù)訓(xùn)練階段,編碼器可能會(huì)被訓(xùn)練來預(yù)測序列中的下一個(gè)token,或者重建被掩碼的token。 (3)解碼器預(yù)訓(xùn)練: 解碼器利用編碼器生成的上下文向量來重建輸入序列或執(zhí)行其他預(yù)訓(xùn)練任務(wù)。 在標(biāo)準(zhǔn)的編碼器-解碼器設(shè)置中,解碼器在生成序列時(shí)會(huì)逐步讀取自己的輸出,模擬翻譯或生成文本的過程。 (4)參數(shù)優(yōu)化: 通過反向傳播和梯度下降等優(yōu)化算法,調(diào)整編碼器和解碼器的參數(shù),以最小化預(yù)訓(xùn)練任務(wù)中的損失函數(shù)。4.微調(diào) 預(yù)訓(xùn)練完成后,編碼器-解碼器模型可以針對特定任務(wù)進(jìn)行微調(diào): (1)任務(wù)適配:根據(jù)特定任務(wù)的需求,調(diào)整模型的架構(gòu)或損失函數(shù)。 (2)數(shù)據(jù)集:使用特定任務(wù)的標(biāo)注數(shù)據(jù)集進(jìn)行訓(xùn)練,以進(jìn)一步提升模型在特定任務(wù)上的表現(xiàn)。6.4.2編碼器-解碼器結(jié)構(gòu)編碼器采用自編碼模式、解碼器采用自回歸模式的解碼器結(jié)構(gòu)如圖6-5所示,代表模型為BART模型、T5模型。主要特點(diǎn)是同時(shí)適合語言理解類的任務(wù)和語言生成類的任務(wù)。.在編碼器側(cè),單獨(dú)使用一個(gè)Transformer,采用了自編碼的結(jié)構(gòu),編碼階段采用雙向語言模型,以更充分地編碼輸入信息;而在解碼器側(cè),使用另外一個(gè)Transformer,采用了自回歸模式結(jié)構(gòu),從左到右逐個(gè)生成單詞。解碼器側(cè)和標(biāo)準(zhǔn)的解碼器自回歸還是有不同的地方:解碼器側(cè)生成的單詞,除了像解碼器自回歸結(jié)構(gòu)一樣能看到在它之前生成的單詞序列外,還能看到編碼器側(cè)的所有輸入單詞。而這一般是通過解碼器側(cè)對編碼器側(cè)單詞進(jìn)行注意力操作方式來實(shí)現(xiàn)的,這種注意力一般放在編碼器頂層Transformer塊的輸出上。在進(jìn)行預(yù)訓(xùn)練的時(shí)候,編碼器和解碼器同時(shí)對不同屏蔽部分進(jìn)行預(yù)測。編碼器側(cè)雙向語言模型生成被隨機(jī)屏蔽的部分單詞;解碼器側(cè)單向語言模型從左到右生成被屏蔽掉的一部分連續(xù)片斷。兩個(gè)任務(wù)聯(lián)合訓(xùn)練,這樣編碼器和解碼器兩側(cè)都可以得到比較充分地訓(xùn)練。6.5前綴語言模型前綴語言模型(PrefixLanguageModel)是一種自然語言處理(NLP)模型,其核心思想是利用給定的文本前綴來預(yù)測接下來的文本內(nèi)容。6.5.1前綴語言模型原理·文本前綴:前綴語言模型接收一個(gè)文本序列的前綴作為輸入,這個(gè)前綴可以是任意長度的文本片段?!ゎA(yù)測下一個(gè)詞:模型的任務(wù)是預(yù)測給定前綴之后最可能出現(xiàn)的下一個(gè)詞或字符?!じ怕史植迹耗P洼敵龅氖且粋€(gè)概率分布,表示在給定前綴的情況下,每個(gè)詞或字符出現(xiàn)的概率。1.模型結(jié)構(gòu)(1)嵌入層:將輸入的前綴中的每個(gè)詞轉(zhuǎn)換為一個(gè)固定大小的向量,這通常通過詞嵌入來實(shí)現(xiàn)。(2)編碼器:編碼器可以是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長短期記憶網(wǎng)絡(luò)(LSTM)、門控循環(huán)單元(GRU)或Transformer等結(jié)構(gòu),它負(fù)責(zé)處理嵌入層輸出的向量序列,并捕捉前綴中的上下文信息。(3)輸出層:輸出層通常是一個(gè)softmax函數(shù),它將編碼器的輸出轉(zhuǎn)換為一個(gè)概率分布,每個(gè)維度對應(yīng)詞匯表中的一個(gè)詞。2.訓(xùn)練過程(1)數(shù)據(jù)準(zhǔn)備:訓(xùn)練數(shù)據(jù)由大量的文本序列組成,每個(gè)序列被分為前綴和目標(biāo)詞。例如,對于序列“我喜歡吃蘋果”,可以將“我喜歡吃”作為前綴,將“蘋果”作為目標(biāo)詞。(2)損失函數(shù):訓(xùn)練過程中,模型的目標(biāo)是最小化損失函數(shù),常用的損失函數(shù)是交叉熵?fù)p失,它衡量了模型預(yù)測的概率分布與真實(shí)分布之間的差異。(3)優(yōu)化:通過梯度下降等優(yōu)化算法,根據(jù)損失函數(shù)的梯度來更新模型的參數(shù)。6.5.2前綴語言模型結(jié)構(gòu)前綴語言模型結(jié)構(gòu)如圖6-6所示,代表模型為UniLM模型。前綴語言模型其實(shí)是編碼器-解碼器模型的變體,標(biāo)準(zhǔn)的編碼器-解碼器模型各自使用一個(gè)獨(dú)立的Transformer;而前綴語言模型相當(dāng)于編碼器和解碼器通過分割的方式,分享了同一個(gè)Transformer結(jié)構(gòu),編碼器部分占用左部,解碼器部分占用右部,這種分割占用是通過在Transformer內(nèi)部使用注意力屏蔽來實(shí)現(xiàn)的。與標(biāo)準(zhǔn)的編碼器-解碼器模型相類似,前綴語言模型在編碼器部分采用AE模式,就是任意兩個(gè)詞都相互可見,解碼器部分采用AR模式,即待生成的單詞可以見到編碼器側(cè)所有單詞和解碼器側(cè)已經(jīng)生成的單詞,但是看不到未來從左到右沒有產(chǎn)生的單詞。6.6排列語言模型排列語言模型(PermutationLanguageModel)是一種自然語言處理(NLP)模型,它通過考慮文本序列的所有排列來學(xué)習(xí)語言模式。這種模型的核心思想是,一個(gè)文本序列中的詞可以以多種方式排列,而每種排列都有可能傳達(dá)相同或相似的信息。6.6.1排列語言模型原理1.排列生成:排列語言模型首先生成一個(gè)文本序列的所有可能排列。例如,對于包含三個(gè)詞的序列[A,B,C],其可能的排列有[A,B,C]、[A,C,B]、[B,A,C]、[B,C,A]、[C,A,B]和[C,B,A]。2.排列學(xué)習(xí):模型學(xué)習(xí)這些排列的分布,而不是僅僅學(xué)習(xí)原始序列的分布。這意味著模型不僅需要理解序列中的詞如何組合在一起,還需要理解這些詞在不同排列中的關(guān)系。3.上下文表示:排列語言模型通過考慮所有排列,為每個(gè)詞生成上下文表示。這些表示捕獲了詞在多種上下文中的使用方式。6.6.2排列語言模型結(jié)構(gòu)因?yàn)锳R模型只能獲取序列的上文信息,看不到下文的tokens。為了讓AR模型同時(shí)看到上下文信息,既然更改不了AR模型的特性,那就更改輸入序列,通過對序列中的tokens進(jìn)行排列組合,就可以讓每token既看到上文tokens,又能看到下文的tokens。
例如:一個(gè)輸入序列為[x1,x2,x3,x4],那么對其所有的token進(jìn)行排列組合,就有4!種組合,有[x3,x1,x4,x2],[x2,x4,x1,x3,],[x1,x2,x4,x3,],……等。
只屏蔽一個(gè)詞的結(jié)果是預(yù)測這個(gè)詞時(shí)可用的上下文變得多了,使得預(yù)測該詞這個(gè)任務(wù)變得簡單了,而相對瑣碎的任務(wù)無法讓模型學(xué)到更有用的信息為了實(shí)現(xiàn)這一點(diǎn),提出了下面的目標(biāo)函數(shù):其中,ZT表示長度為T的索引[1,2,…,T]所有可能排列集。使用ZT表示序列[1,2,…,T]的所有可能的排列組合,zt表示第t個(gè)token,z<t表示Z中的前t-1個(gè)tokens。通過最大化所有排列的期望對數(shù)似然概率logpθ來優(yōu)化模型。應(yīng)說明,模型并不更改輸入序列的token順序,也就是說輸入模型的自始至終都是原來的順序[x1,x2,x3,x4],這也是為了保證與微調(diào)時(shí)一致,因?yàn)橄掠稳蝿?wù)微調(diào)的時(shí)候輸入模型的就是序列本身的順序。tokens的排列組合是通過Transformer中的注意力屏蔽來實(shí)現(xiàn)的,通過注意力屏蔽可以讓token看到相應(yīng)的上下文tokens。因?yàn)閭鹘y(tǒng)的AR模型就是一個(gè)下三角的注意力屏蔽來保證每個(gè)token看不到下文的tokens。
.排列語言模型(PermutedLanguageModel,PLM)結(jié)構(gòu)如圖6-7所示,代表模型為XLNet模型,排列語言模型本質(zhì)上是前綴語言模型的一種變體。排列語言模型采用單個(gè)Transformer模型作為主干結(jié)構(gòu),在語言模型預(yù)訓(xùn)練過程中,它看上去遵循AR從左到右的輸入過程,這符合一般生成任務(wù)的外在表現(xiàn)形式,但是在內(nèi)部通過注意力屏蔽,實(shí)際做法是AE的做法,無非是把AE的做法隱藏在Transformer內(nèi)部。從細(xì)節(jié)來說,PLM和AE主要有兩個(gè)區(qū)別:首先,預(yù)訓(xùn)練過程中,輸入句子去掉了屏蔽標(biāo)記,改為內(nèi)部注意力屏蔽,以保持預(yù)訓(xùn)練過程和下游任務(wù)微調(diào)的一致性。PLM和AE的最主要區(qū)別,PLM認(rèn)為被屏蔽掉的單詞之間是相互有影響的,先產(chǎn)生的被屏蔽掉的單詞,對后生成的被屏蔽掉的單詞,在預(yù)測的時(shí)發(fā)生作用,而標(biāo)準(zhǔn)的AE則認(rèn)為被屏蔽掉的單詞是相互獨(dú)立的,相互之間不產(chǎn)生作用。.1.模型結(jié)構(gòu) 模型結(jié)構(gòu)由嵌入層、排列網(wǎng)絡(luò)、編碼器和和輸出層組成。 (1)嵌入層:將輸入序列中的每個(gè)詞轉(zhuǎn)換為一個(gè)固定大小的向量。 (2)排列網(wǎng)絡(luò):排列網(wǎng)絡(luò)可以是基于注意力機(jī)制的模型,它負(fù)責(zé)處理嵌入層輸出的向量,并學(xué)習(xí)如何排列這些向量以生成不同的序列。 (3)編碼器:編碼器可以是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長短期記憶網(wǎng)絡(luò)(LSTM)、門控循環(huán)單元(GRU)或Transformer等結(jié)構(gòu),它用于處理排列后的序列并生成上下文表示。 (4)輸出層:輸出層通常是一個(gè)softmax函數(shù),它將編碼器的輸出轉(zhuǎn)換為一個(gè)概率分布,表示每個(gè)排列的可能性。2.訓(xùn)練過程 數(shù)據(jù)準(zhǔn)備:訓(xùn)練數(shù)據(jù)由文本序列組成,模型需要生成這些序列的所有排列。 損失函數(shù):訓(xùn)練過程中,模型的目標(biāo)是最小化損失函數(shù),這通常是通過比較模型預(yù)測的排列分布與實(shí)際排列分布(通常是均勻分布,因?yàn)樗信帕卸际堑瓤赡艿模﹣碛?jì)算的。 優(yōu)化:通過梯度下降等優(yōu)化算法,根據(jù)損失函數(shù)的梯度來更新模型的參數(shù)。6.6.3排列語言模型的特點(diǎn)與應(yīng)用1.特點(diǎn)
·上下文豐富性:通過考慮所有可能的排列,模型能夠?qū)W習(xí)到更豐富的上下文信息。
·魯棒性:模型能夠處理文本中的詞序變化,這在處理噪聲數(shù)據(jù)或理解文本的不同解釋時(shí)非常有用。
·計(jì)算復(fù)雜性:由于需要考慮所有排列,排列語言模型的計(jì)算復(fù)雜度通常很高,尤其是在處理長序列時(shí)。
2.應(yīng)用
·文本理解:排列語言模型可以用于改善文本理解,尤其是在處理具有多種解釋的文本時(shí)。
·文本生成:模型可以生成多樣化的文本,因?yàn)樗紤]了詞的不同排列方式。
·機(jī)器翻譯:在翻譯任務(wù)中,排列語言模型可以幫助理解源語言中的不同詞序,并生成合適的目標(biāo)語言序列。 排列語言模型是一種相對較新的方法,它在某些NLP任務(wù)中顯示出潛力,但由于其計(jì)算復(fù)雜性,它在實(shí)際應(yīng)用中可能需要進(jìn)一步的優(yōu)化和簡化。6.6.4PLM結(jié)構(gòu)比較1.從模型效果來看,編碼器-解碼器結(jié)構(gòu)無論在語言理解類還是語言生成類任務(wù)中,其效果都是最好。它的優(yōu)點(diǎn)是效果好,能夠在一個(gè)框架下完成理解和生成任務(wù);缺點(diǎn)是由于參數(shù)多計(jì)算量大,所以模型比較重。采用這個(gè)結(jié)構(gòu)的代表模型包括T5模型和BART模型。2.因?yàn)榫幋a器-排列語言模型比較重,如果從相對輕量結(jié)構(gòu)中進(jìn)行選擇,對于語言理解類任務(wù),自編碼語言模型結(jié)構(gòu)相對而言效果較好,代表模型很多,典型的模型為ALBERT、RoBERTa;對于語言生成類任務(wù),解碼器自回歸結(jié)構(gòu)和前綴語言模型結(jié)構(gòu)相對效果較好,解碼器自回歸語言模型的代表模型是GPT系列,前綴語言模型的代表模型是UniLM。語言理解類任務(wù)應(yīng)該用AE任分類務(wù),語言生成類任務(wù)應(yīng)該用AR任務(wù)。6.7PLM預(yù)訓(xùn)練預(yù)訓(xùn)練模型是大數(shù)據(jù)的主流模型,預(yù)訓(xùn)練模型的訓(xùn)練主要分為兩步,第一步是在大量未標(biāo)注數(shù)據(jù)上預(yù)訓(xùn)練模型,以便模型能夠?qū)W習(xí)到通用的特征表示;第二是對預(yù)訓(xùn)練模型在各種下游任務(wù)上進(jìn)行微調(diào),從而進(jìn)一步提高模型的性能。預(yù)訓(xùn)練-微調(diào)訓(xùn)練與大語言模型經(jīng)典訓(xùn)練的比較如圖6-8所示。6.7.1預(yù)訓(xùn)練過程與作用預(yù)訓(xùn)練是語言大模型訓(xùn)練的一種形式,通常是指在一個(gè)大規(guī)模的數(shù)據(jù)集上訓(xùn)練一個(gè)模型,以便捕捉到通用的知識(shí)或特征。預(yù)訓(xùn)練過程不需要針對特定的任務(wù)進(jìn)行優(yōu)化,預(yù)訓(xùn)練的目的是學(xué)習(xí)通用特征。預(yù)訓(xùn)練后的模型可以在多種下游任務(wù)中進(jìn)行微調(diào),以適應(yīng)特定應(yīng)用的需求。預(yù)訓(xùn)練通常使用大規(guī)模的通用數(shù)據(jù)集、預(yù)訓(xùn)練模型可以應(yīng)用于多種任務(wù)、參數(shù)規(guī)模大,但預(yù)訓(xùn)練模型的訓(xùn)練不限于預(yù)訓(xùn)練,還包括針對特定任務(wù)的微調(diào)。
1.預(yù)訓(xùn)練的過程 預(yù)訓(xùn)練模型的預(yù)訓(xùn)練是通過自監(jiān)督學(xué)習(xí)在大量非結(jié)構(gòu)化文本數(shù)據(jù)上訓(xùn)練LLM,將這個(gè)LLM稱為基座模型。 (1)選擇預(yù)訓(xùn)練任務(wù) (2)收集大量數(shù)據(jù) (3)設(shè)計(jì)模型架構(gòu) (4)訓(xùn)練模型 (5)監(jiān)控訓(xùn)練過程 (6)評(píng)估模型 (7)保存和分享模型
.2.預(yù)訓(xùn)練的作用 (1)加速訓(xùn)練過程:通過預(yù)訓(xùn)練,在大規(guī)模數(shù)據(jù)上學(xué)習(xí)到的通用特征表示可以作為后續(xù)微調(diào)訓(xùn)練的初始化參數(shù),可以加速模型在特定任務(wù)上的訓(xùn)練過程。這是由于預(yù)訓(xùn)練的參數(shù)已經(jīng)接近最優(yōu),并且已經(jīng)捕捉到了輸入數(shù)據(jù)中的通用模式,這樣在目標(biāo)任務(wù)上的微調(diào)優(yōu)化過程更容易收斂。(2)提高性能:這是因?yàn)樵陬A(yù)訓(xùn)練階段,模型學(xué)習(xí)到了大量的數(shù)據(jù)中的通用特征,這些特征對于許多任務(wù)都有用。在目標(biāo)任務(wù)學(xué)習(xí)中,預(yù)訓(xùn)練的模型能夠更好地在這些通用特征基礎(chǔ)上微調(diào),從而提高模型性能。(3)解決數(shù)據(jù)不足問題:在許多實(shí)際任務(wù)中,數(shù)據(jù)往往有限,特別是深度學(xué)習(xí)模型需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練。通過預(yù)訓(xùn)練,可以利用大規(guī)模數(shù)據(jù)集進(jìn)行通用特征的學(xué)習(xí),然后將這些學(xué)到的特征應(yīng)用于目標(biāo)任務(wù),從而克服數(shù)據(jù)不足的問題。(4)遷移學(xué)習(xí):預(yù)訓(xùn)練的模型可以作為遷移學(xué)習(xí)的基礎(chǔ)。將預(yù)訓(xùn)練模型的參數(shù)應(yīng)用于新的相關(guān)任務(wù),可以利用預(yù)訓(xùn)練模型在大規(guī)模數(shù)據(jù)上學(xué)習(xí)到的通用特征,從而在新任務(wù)上提高性能。這對于目標(biāo)任務(wù)數(shù)據(jù)較少的情況下特別有用(5)提高泛化能力:預(yù)訓(xùn)練有助于提高模型的泛化能力,即基座模型在未見過的數(shù)據(jù)上表現(xiàn)良好。通過在大規(guī)模數(shù)據(jù)上學(xué)習(xí)通用特征,模型更能夠從輸入數(shù)據(jù)中捕捉普遍的模式,而不是過度擬合訓(xùn)練集。6.7.2預(yù)訓(xùn)練策略預(yù)訓(xùn)練的策略涉及如何有效地利用大量數(shù)據(jù)來訓(xùn)練模型,以便模型能夠?qū)W習(xí)到通用的特征表示,預(yù)訓(xùn)練的關(guān)鍵策略如下。
1.自監(jiān)督學(xué)習(xí)
2.多任務(wù)學(xué)習(xí)
3.遷移學(xué)習(xí)
4.數(shù)據(jù)增強(qiáng)
5.對比學(xué)習(xí)
6.漸進(jìn)式訓(xùn)練
7.硬示例挖掘
6.自適應(yīng)學(xué)習(xí)率
9.正則化和dropout 10.分布式訓(xùn)練
11.混合精度訓(xùn)練 這些策略的選擇和應(yīng)用取決于具體的應(yīng)用場景、數(shù)據(jù)集特性、計(jì)算資源和模型復(fù)雜性。通常需要通過實(shí)驗(yàn)和迭代來找到最佳的預(yù)訓(xùn)練策略。6.8PLM微調(diào)
6.7.3預(yù)訓(xùn)練與微調(diào)比較
1.數(shù)據(jù)集(1)預(yù)訓(xùn)練階段:預(yù)訓(xùn)練通常使用大規(guī)模無標(biāo)簽通用數(shù)據(jù)集進(jìn)行無監(jiān)督或自監(jiān)督訓(xùn)練,因?yàn)槠淠繕?biāo)是學(xué)習(xí)通用特征表示,無需特定標(biāo)簽信息。(2)微調(diào)階段:訓(xùn)練使用特定任務(wù)的有標(biāo)簽數(shù)據(jù)集,因?yàn)樾枰鶕?jù)任務(wù)的特定標(biāo)簽進(jìn)行監(jiān)督式訓(xùn)練,優(yōu)化模型在該特定任務(wù)上的性能。
2.特征表示(1)預(yù)訓(xùn)練階段:預(yù)訓(xùn)練的目標(biāo)是學(xué)習(xí)數(shù)據(jù)的通用特征表示,使得模型能夠捕捉數(shù)據(jù)中的一般模式和結(jié)構(gòu)。(2)微調(diào)階段:在訓(xùn)練階段,預(yù)訓(xùn)練的模型參數(shù)(通用特征表示)可以作為初始化參數(shù),然后根據(jù)特定任務(wù)的目標(biāo)函數(shù)進(jìn)一步微調(diào)模型參數(shù),使其更適應(yīng)該任務(wù)。3.任務(wù)目標(biāo)預(yù)訓(xùn)練和微調(diào)訓(xùn)練是兩具有兩個(gè)不同的目標(biāo),它們的目標(biāo)、數(shù)據(jù)集和特征表示等方面都有所區(qū)別。(1)預(yù)訓(xùn)練階段:預(yù)訓(xùn)練的目標(biāo)是促使模型學(xué)習(xí)更加泛化的特征,使其能夠在各種任務(wù)上有良好的表現(xiàn)。(2)微調(diào)階段:訓(xùn)練的目標(biāo)是針對特定任務(wù),最小化損失函數(shù)并優(yōu)化模型參數(shù),使其能夠在該任務(wù)上達(dá)到最佳性能。預(yù)訓(xùn)練提供了一種有效的方式來初始化模型參數(shù),并使模型受益于大規(guī)模數(shù)據(jù)的通用特征表示,從而在特定任務(wù)上表現(xiàn)更好。6.8PLM微調(diào)對PLM模型在各種下游任務(wù)上進(jìn)行微調(diào),從而進(jìn)一步提高模型的性能。6.8.1微調(diào)分類對于語言大模型的微調(diào)技術(shù),可以基于不同的方面有不同的分類。1.基于參數(shù)規(guī)模分類可以簡單分為全參數(shù)微調(diào)和高效參數(shù)微調(diào)。前者一般是用預(yù)訓(xùn)練模型作為初始化權(quán)重,在特定數(shù)據(jù)集上繼續(xù)訓(xùn)練,全部參數(shù)都更新的方法。而后者則是期望用更少的資源完成模型參數(shù)的更新,包括只更新一部分參數(shù)或者說通過對參數(shù)進(jìn)行某種結(jié)構(gòu)化約束,例如稀疏化或低秩近似來降低微調(diào)的參數(shù)數(shù)量。2.基于微調(diào)的目標(biāo)分類如果按照在模型哪個(gè)階段使用微調(diào),或者根據(jù)模型微調(diào)的目標(biāo)來區(qū)分,也可以從提示微調(diào)、指令微調(diào)、有監(jiān)督微調(diào)的方式來分類。3.基于高效微調(diào)技術(shù)分類基于高效微調(diào)技術(shù)分類可以分為以下三大類,增加額外參數(shù)、選取一部分參數(shù)更新、引入重參數(shù)化。而在增加額外參數(shù)這類方法中,又主要分為類適配器方法和軟提示兩個(gè)小類。(1)基于增加額外參數(shù),如PrefixTuning、PromptTuning、AdapterTuning等。(2)選取一部分參數(shù)更新,如:BitFit。(3)引入重參數(shù)化,如:LoRA、AdaLoRA、QLoRA常見的微調(diào)技術(shù)有指令微調(diào)、Prefix微調(diào)、Prompt微調(diào)、P-微調(diào)、Adapter微調(diào)、LoRA、RLHF等。6.8.2高效微調(diào)微調(diào)一般指全參數(shù)的微調(diào),又稱全量微調(diào),這是一類較早誕生的微調(diào)方法。全參數(shù)微調(diào)需要消耗大量的算力,隨著模型變得越來越大,在硬件上對模型進(jìn)行全部參數(shù)的微調(diào)變得不可行。實(shí)際使用起來并不方便,因此不久之后又誕生了只圍繞部分參數(shù)進(jìn)行微調(diào)的高效微調(diào)方法。此外,為每個(gè)下游任務(wù)獨(dú)立存儲(chǔ)和部署微調(diào)模型已變得非常昂貴,因?yàn)槲⒄{(diào)模型(調(diào)整模型的所有參數(shù))與基座模型的大小相同。在微調(diào)階段,基座模型使用特定任務(wù)的有標(biāo)簽數(shù)據(jù)集進(jìn)行微調(diào),目標(biāo)是根據(jù)該任務(wù)的特定目標(biāo)函數(shù)調(diào)整模型參數(shù),使模型能夠完成該任務(wù)。在語言大模型訓(xùn)練中,高效微調(diào)(Parameter-EfficientFine-Tuning,PEFT)是指在預(yù)訓(xùn)練模型的基礎(chǔ)上,使用較少的數(shù)據(jù)和計(jì)算資源進(jìn)行精確調(diào)整,以適應(yīng)特定的任務(wù)或領(lǐng)域。由于語言大模型通常包含數(shù)十億甚至更多的參數(shù),從頭開始訓(xùn)練需要大量的計(jì)算資源和時(shí)間,因此高效微調(diào)成為了一個(gè)重要的應(yīng)用方向。高效微調(diào)的策略和方法如下。 (1)遷移學(xué)習(xí) 遷移學(xué)習(xí)是高效微調(diào)的核心思想。通過在特定任務(wù)上微調(diào)一個(gè)在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練的模型,可以利用預(yù)訓(xùn)練模型學(xué)到的通用語言特征,從而在新的任務(wù)上獲得更好的性能。 (2)參數(shù)凍結(jié) 在微調(diào)過程中,可以凍結(jié)模型的某些層或參數(shù),只更新部分層的參數(shù)。這樣可以減少需要訓(xùn)練的參數(shù)數(shù)量,從而加快訓(xùn)練速度并減少過擬合的風(fēng)險(xiǎn)。
.
(3)學(xué)習(xí)率調(diào)度 使用適當(dāng)?shù)膶W(xué)習(xí)率調(diào)度策略可以在微調(diào)過程中更有效地更新模型參數(shù)。例如,可以使用較小的學(xué)習(xí)率開始微調(diào),以避免破壞預(yù)訓(xùn)練得到的特征。 (4)選擇性微調(diào) 只對模型中與任務(wù)最相關(guān)的部分進(jìn)行微調(diào),例如只微調(diào)輸出層或者任務(wù)特定的注意力機(jī)制,而其他部分保持不變。 (5)知識(shí)蒸餾 使用一個(gè)大型模型(教師模型)來訓(xùn)練一個(gè)較小的模型(學(xué)生模型)。學(xué)生模型嘗試模仿教師模型的輸出,從而在保持性能的同時(shí)減少模型的大小。 (6)多任務(wù)學(xué)習(xí) 在多個(gè)相關(guān)任務(wù)上同時(shí)訓(xùn)練模型,可以使得模型學(xué)習(xí)到更通用的特征,從而在新的任務(wù)上微調(diào)時(shí)能夠更快地適應(yīng)。 (7)使用輔助數(shù)據(jù) 在微調(diào)過程中,可以使用額外的輔助數(shù)據(jù)來增強(qiáng)模型的表現(xiàn),例如使用未標(biāo)注的數(shù)據(jù)進(jìn)行無監(jiān)督預(yù)訓(xùn)練或者使用相關(guān)的任務(wù)來增強(qiáng)模型的能力。 (8)適配器層 在模型的現(xiàn)有層之間插入小的適配器模塊,這些模塊包含少量的參數(shù),可以訓(xùn)練這些參數(shù)來適應(yīng)新任務(wù),而保持模型的主體結(jié)構(gòu)不變。 通過這些方法,可以高效地利用語言大模型來解決特定的問題,同時(shí)減少訓(xùn)練成本和資源消耗。隨著研究的深入,未來可能會(huì)出現(xiàn)更多高效微調(diào)的策略和技術(shù)。6.8.3P-Tuning微調(diào)P-Tuning微調(diào)又稱為參數(shù)化微調(diào),P-Tuning中的P代表參數(shù)化(Parameterized)。P-Tuning是一種參數(shù)化提示(ParameterizedPrompt)的方法,它通過學(xué)習(xí)一組可訓(xùn)練的提示參數(shù)來適應(yīng)下游任務(wù)。這些提示參數(shù)被添加到輸入序列中,以引導(dǎo)預(yù)訓(xùn)練模型生成更適合特定任務(wù)的輸出。P-Tuning微調(diào)的主要思想是引入一些可學(xué)習(xí)的參數(shù)(通常是少量的),這些參數(shù)用于控制模型的行為,從而使模型能夠適應(yīng)新的任務(wù)。這種方法的核心優(yōu)勢在于,它大幅減少了需要訓(xùn)練的參數(shù)數(shù)量,從而降低了計(jì)算成本,并可能減少過擬合的風(fēng)險(xiǎn)。P-Tuning微調(diào)的步驟如下:(1)任務(wù)嵌入:
P-Tuning為模型的輸入添加了額外的可學(xué)習(xí)參數(shù),稱為提示嵌入。這些嵌入可以被看作是特定于任務(wù)的指令,指導(dǎo)模型如何處理輸入數(shù)據(jù)。(2)軟提示: 將這些任務(wù)嵌入通常被添加到輸入序列的開始或結(jié)尾,作為“軟提示”,與硬編碼的提示(如GPT-3中的“Let’sthinkstepbystep”這樣的提示)不同,軟提示是可學(xué)習(xí)的,可以在微調(diào)過程中根據(jù)特定任務(wù)進(jìn)行調(diào)整。(3)參數(shù)更新: 在微調(diào)過程中,只有這些軟提示嵌入,模型的最后一層(通常是輸出層)的參數(shù)被更新。模型的其余部分保持凍結(jié),不參與訓(xùn)練。(4)任務(wù)適應(yīng)L: 通過這種方式,模型可以快速適應(yīng)新的任務(wù),因?yàn)橹挥幸恍〔糠謪?shù)需要學(xué)習(xí)。這使得P-Tuning非常適合于資源受限的環(huán)境,或者需要快速適應(yīng)多個(gè)任務(wù)。P-Tuning已經(jīng)被應(yīng)用于各種NLP任務(wù),如文本分類、命名實(shí)體識(shí)別、機(jī)器翻譯等,并顯示出良好的性能。這種方法不僅提高了微調(diào)的效率,還有助于模型在不同任務(wù)之間的泛化。隨著NLP領(lǐng)域的不斷發(fā)展,P-Tuning和其他參數(shù)高效微調(diào)技術(shù)將變得更加流行和有效。6.8.4指令微調(diào)指令微調(diào)(InstructionTuning)是NLP領(lǐng)域中的一種微調(diào)技術(shù),指令微調(diào)的主要思想是訓(xùn)練模型理解一系列的指令,并生成相應(yīng)的輸出。這種方法使用特定的數(shù)據(jù)集,其中包含指令和預(yù)期的輸出。通過在數(shù)據(jù)集上對模型進(jìn)行微調(diào),可以使其更好地理解和遵循指令。它能顯著地提升模型在未知任務(wù)零樣本條件下的表現(xiàn)。在使用預(yù)訓(xùn)練語言模型的基礎(chǔ)上,通過進(jìn)一步訓(xùn)練來優(yōu)化模型對特定指令的理解和執(zhí)行能力。1.指令微調(diào)過程(1)預(yù)訓(xùn)練模型:首先,使用大量的文本數(shù)據(jù)對語言模型進(jìn)行預(yù)訓(xùn)練,使其能夠捕捉到語言的通用特征和知識(shí)。(2)收集指令數(shù)據(jù):然后,收集或創(chuàng)建一系列包含特定指令的樣本數(shù)據(jù)。這些指令可以是各種不同的任務(wù),比如問答、文本生成、情感分析等。(3其能夠更好地理解和執(zhí)行這些特定的指令。(4)評(píng)估和優(yōu)化:在微調(diào)后,評(píng)估模型的性能,并根據(jù)需要對模型進(jìn)行進(jìn)一步的優(yōu)化,以提高其對指令的響應(yīng)質(zhì)量和準(zhǔn)確性。 指令微調(diào)的主要目的是改善模型在遵循指令方面的能力,使其能夠更好地適應(yīng)實(shí)際應(yīng)用場景,例如聊天機(jī)器人、問答系統(tǒng)等。通過這種方式,模型可以更好地理解人類的意圖,遵循指令方面的表現(xiàn),并生成更加符合預(yù)期的輸出,從而使其在實(shí)際應(yīng)用中更加有用。然而,指令微調(diào)需要大量的人工編寫指令,并且可能會(huì)使模型過度依賴于這些指令,從而在遇到未知指令時(shí)表現(xiàn)不佳。.
2.微調(diào)效果評(píng)估方法評(píng)估微調(diào)效果是確保語言模型適應(yīng)特定任務(wù)的重要步驟。常用的評(píng)估方法如下。 (1)人類評(píng)估 人類評(píng)估可以直接評(píng)估模型的輸出質(zhì)量,提供定性的反饋??梢酝ㄟ^問卷調(diào)查、評(píng)分或者對模型輸出進(jìn)行排名來收集評(píng)估數(shù)據(jù)。這種方法雖然成本較高,但可以提供最直接、最真實(shí)的性能反饋。 (2)自動(dòng)評(píng)價(jià)指標(biāo)
·準(zhǔn)確性:對于分類任務(wù),準(zhǔn)確性是一個(gè)直接的評(píng)估指標(biāo),它衡量模型正確分類的比例。
·精確率和召回率:對于信息檢索和分類任務(wù),這兩個(gè)指標(biāo)可以衡量模型輸出相關(guān)信息的準(zhǔn)確性和全面性。
·F1分?jǐn)?shù):是精確率和召回率的調(diào)和平均數(shù),用于綜合衡量模型的性能。 (3)特定任務(wù)指標(biāo) 對于某些特定任務(wù),可能需要設(shè)計(jì)專門的評(píng)估指標(biāo)。例如,在對話系統(tǒng)中,可能需要評(píng)估對話的流暢性、相關(guān)性以及是否能夠提供有用的信息。 指令微調(diào)已被應(yīng)用于各種任務(wù),如問答、對話生成、文本生成等。這種方法不僅提高了模型對指令的理解能力,還使其能夠更好地適應(yīng)特定的應(yīng)用場景。隨著NLP領(lǐng)域的不斷發(fā)展,指令微調(diào)和其他微調(diào)技術(shù)可能會(huì)變得更加流行和有效。6.8.5LORA微調(diào)1.LORA的原理
LORA的原理很簡單,語言大模型都是過參數(shù)化的,當(dāng)用于特定任務(wù)時(shí),其實(shí)只有一小部分參數(shù)起主要作用。也就是參數(shù)矩陣維度很高,但可以用低維矩陣分解近似。 具體做法是,在網(wǎng)絡(luò)中增加一個(gè)旁路結(jié)構(gòu),旁路是A和B兩個(gè)矩陣相乘。A矩陣的維度是dxr,B矩陣的維度是rxd,其中r<<d,一般r取1,2,4,8就夠了。那么這個(gè)旁路的參數(shù)量將遠(yuǎn)小于原來網(wǎng)絡(luò)的參數(shù)W。LoRA訓(xùn)練時(shí),首先凍結(jié)原來網(wǎng)絡(luò)的參數(shù)W,只訓(xùn)練旁路參數(shù)A和B。由于A和B的參數(shù)量遠(yuǎn)遠(yuǎn)小于W,那么訓(xùn)練時(shí)需要的顯存開銷就大約等于推理時(shí)的開銷。對采用Adam優(yōu)化器來說,需要的顯存就大約相當(dāng)于全參數(shù)微調(diào)的1/3,極大地減小了訓(xùn)練的代價(jià)。 采用這種旁路相加的方式,原網(wǎng)絡(luò)的參數(shù)不變,在旁路上做些微小改變,適應(yīng)特定新任務(wù)。這樣就可以讓網(wǎng)絡(luò)基本保持原來的能力,在特定任務(wù)上更精進(jìn)了一步。值得注意的是,LoRA微調(diào)并沒有改變原有的預(yù)訓(xùn)練參數(shù),只是針對特定任務(wù)微調(diào)出了新的少量參數(shù),新的這些參數(shù)要與原有的預(yù)訓(xùn)練參數(shù)配合使用,實(shí)際使用時(shí),都是把旁路的參數(shù)和原來的參數(shù)直接合并,也就是參數(shù)相加,這樣就不會(huì)增加推理時(shí)間。可以很方便地針對不同的任務(wù),都可以訓(xùn)練出自己的LoRA參數(shù),然后與原本的預(yù)訓(xùn)練參數(shù)結(jié)合,做成插件式的應(yīng)用,即SD+LoRA。全參數(shù)微調(diào)一般沒這個(gè)條件,但LoRA微調(diào)還是可以的。如圖6-10所示,就是凍結(jié)一個(gè)預(yù)訓(xùn)練模型的矩陣參數(shù),并選擇用A和B矩陣來替代,在下游任務(wù)時(shí)只更新A和B。.LoRA的實(shí)現(xiàn)流程如下:①在原始PLM(PLM)旁邊增加一個(gè)旁路,做一個(gè)降維再升維的操作,來模擬內(nèi)在秩。①訓(xùn)練的時(shí)候固定PLM模型參數(shù),只訓(xùn)練降維矩陣A與升維矩陣B。②模型的輸入輸出維度不變,輸出時(shí)將BA與PLM的參數(shù)疊加。③用隨機(jī)高斯分布初始化A,用0矩陣初始化B,保證訓(xùn)練的開始此旁路矩陣依然是0矩陣。
LoRA的基本思想是保持預(yù)訓(xùn)練矩陣(即原始模型的參數(shù))凍結(jié)(即處于固定狀態(tài)),并且只在原始矩陣中添加一個(gè)小的增量,其參數(shù)量比原始矩陣少很多??偟膩碚f,基于語言大模型的內(nèi)在低秩特性,增加旁路矩陣來模擬全面微調(diào),LoRA是一個(gè)能達(dá)成輕量級(jí)微調(diào)的簡單有效的方案。目前該技術(shù)已經(jīng)廣泛應(yīng)用于語言大模型的微調(diào),如Alpaca,穩(wěn)定擴(kuò)散+LoRA,而且能和其它參數(shù)高效微調(diào)方法有效結(jié)合,例如最先進(jìn)的參數(shù)高效微調(diào)。6.8.6前綴調(diào)優(yōu)前綴調(diào)優(yōu)(PrefixTuning)是輕量級(jí)③的優(yōu)化方法,是基于提示詞前綴優(yōu)化的微調(diào)方法。其原理是:在原始模型基礎(chǔ)上,增加一個(gè)可被訓(xùn)練的嵌入層,用于給提示詞增加前綴,從而讓模型更好的理解提示詞意圖,并在訓(xùn)練過程中不斷優(yōu)化這些參數(shù)。前綴調(diào)優(yōu)既能夠在模型結(jié)構(gòu)上增加一些新的靈活性,又能夠在模型使用上提供一種自動(dòng)的、能夠改進(jìn)模型表現(xiàn)的提示機(jī)制。前綴調(diào)優(yōu)是一種高效微調(diào)方法,旨在改進(jìn)預(yù)訓(xùn)練模型以適應(yīng)特定任務(wù)或領(lǐng)域。這種方法主要涉及調(diào)整模型的前幾層,即前綴部分,以便更好地適應(yīng)新的數(shù)據(jù)分布。前綴調(diào)優(yōu)的優(yōu)勢在于,它只需對模型的一小部分進(jìn)行修改,從而節(jié)省計(jì)算資源和時(shí)間。(1)前綴調(diào)優(yōu)的具體步驟①選擇預(yù)訓(xùn)練模型:選擇一個(gè)預(yù)訓(xùn)練的模型作為基礎(chǔ)模型,例如BERT、GPT等。②確定前綴層:根據(jù)任務(wù)需求,確定需要調(diào)整的模型前綴層。通常情況下,前綴層包括模型的初始幾層,這些層負(fù)責(zé)捕捉數(shù)據(jù)的基本特征。③凍結(jié)其他層:為了保持預(yù)訓(xùn)練模型的其他層的參數(shù)不變,我們需要凍結(jié)這些層。這樣,在訓(xùn)練過程中,只有前綴層的參數(shù)會(huì)更新。④訓(xùn)練前綴層:使用特定任務(wù)或領(lǐng)域的數(shù)據(jù),對前綴層進(jìn)行微調(diào)。這一步驟可以通過較小的學(xué)習(xí)率進(jìn)行訓(xùn)練,以便更好地適應(yīng)新的數(shù)據(jù)分布。⑤評(píng)估模型:在微調(diào)完成后,評(píng)估模型在目標(biāo)任務(wù)或領(lǐng)域的性能。如果性能達(dá)到預(yù)期,則可以使用該模型進(jìn)行預(yù)測和分析。⑥前綴調(diào)優(yōu)高效微調(diào)方法在許多NLP任務(wù)中都取得了很好的效果,如文本分類、情感分析、命名實(shí)體識(shí)別等。這種方法可以快速適應(yīng)新任務(wù),同時(shí)節(jié)省計(jì)算資源和時(shí)間。然而,對于一些復(fù)雜的任務(wù),可能需要調(diào)整更多的模型參數(shù)才能獲得較好的性能。.(2)在文本分類任務(wù)的前綴調(diào)優(yōu)步驟 ①選擇預(yù)訓(xùn)練模型:選擇一個(gè)適合文本分類任務(wù)的預(yù)訓(xùn)練模型,例如BERT、RoBERTa、XLNet等。 ②確定前綴參數(shù):前綴調(diào)優(yōu)的核心思想是在每個(gè)Transformer層的輸入前添加一組可訓(xùn)練的參數(shù)(稱為前綴)。這些前綴參數(shù)將與模型的原始輸入(例如,詞嵌入)一起送入Transformer層。確定前綴的長度和數(shù)量,這通常是一個(gè)較小的值,比如每個(gè)注意力頭有一個(gè)長度為20的前綴。 ③凍結(jié)預(yù)訓(xùn)練模型:為了保持預(yù)訓(xùn)練模型的大部分知識(shí),你需要凍結(jié)模型的參數(shù),只允許前綴參數(shù)在訓(xùn)練過程中更新。 ④準(zhǔn)備數(shù)據(jù)集:將你的文本分類數(shù)據(jù)集轉(zhuǎn)換成模型可以理解的格式。對于BERT類模型,這意味著你需要將文本轉(zhuǎn)換為BERT輸入的格式,即[CLS]token、句子片段標(biāo)識(shí)、詞嵌入等。 ⑤微調(diào)前綴參數(shù):使用文本分類數(shù)據(jù)集對模型進(jìn)行訓(xùn)練,但只更新前綴參數(shù)。你可以使用較小的學(xué)習(xí)率來微調(diào)這些參數(shù),以避免破壞預(yù)訓(xùn)練模型學(xué)到的知識(shí)。 ⑥評(píng)估和調(diào)整:在驗(yàn)證集上評(píng)估模型的性能,根據(jù)需要調(diào)整前綴的長度、數(shù)量或其他超參數(shù)。如果性能不理想,你可能需要進(jìn)一步調(diào)整前綴參數(shù)或考慮其他微調(diào)策略。 ⑦模型部署:一旦模型性能令人滿意,你可以將其部署到生產(chǎn)環(huán)境中進(jìn)行實(shí)際的文本分類任務(wù)。 前綴調(diào)優(yōu)的優(yōu)勢在于它減少了需要微調(diào)的參數(shù)數(shù)量,從而降低了計(jì)算成本,并可能減少過擬合的風(fēng)險(xiǎn)。然而,這種方法的有效性取決于具體任務(wù)和預(yù)訓(xùn)練模型的選擇,因此在應(yīng)用前綴調(diào)優(yōu)時(shí),可能需要根據(jù)實(shí)際情況進(jìn)行調(diào)整和實(shí)驗(yàn)。.前綴調(diào)整固定PLM的所有參數(shù),只更新優(yōu)化特定任務(wù)的前綴。因此,在部署時(shí),只需要存儲(chǔ)一個(gè)大型PLM的副本和一個(gè)學(xué)習(xí)到的特定任務(wù)的前綴,每個(gè)下游任務(wù)只產(chǎn)生非常小的額外的計(jì)算和存儲(chǔ)開銷。如圖6-11所示。6.8.6微調(diào)輸出層在NLP中,大語言模型在大量文本上進(jìn)行了預(yù)訓(xùn)練,然后在各種任務(wù)(如語言建模,問答和摘要等)上進(jìn)行了微調(diào),經(jīng)過微調(diào)的模型在這些任務(wù)上取得了最好的性能。具體過程如圖6-12所示。流行的語言大模型訓(xùn)練方法是將除了輸出層以外的所有權(quán)重“凍結(jié)”(固定不變)。然后隨機(jī)初始化輸出層參數(shù),再以遷移學(xué)習(xí)的方式訓(xùn)練,僅更新全連接輸出層,其它層的權(quán)重不變。常用下述三種方法。應(yīng)說明的是并不都存在完全隔離的界線。.1.微調(diào)刷新分類器/線性層 基于特征的方法如圖6-13所示,其中使用帶標(biāo)簽的訓(xùn)練集來預(yù)訓(xùn)練Transformer模型,然后預(yù)訓(xùn)練的Transformer模型保持不變,再進(jìn)行下游任務(wù)訓(xùn)練,改變的是分類器/線性層。線性層的作用是將輸入數(shù)據(jù)與權(quán)重矩陣相乘,然后加上偏置向量,最后輸出一個(gè)新的特征表示。全連接層就是線性層。全連接層(fullyconnectedlayers,F(xiàn)C)在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中起到分類器的作用。全連接層則起到將學(xué)到的分布式特征表示映射到樣本標(biāo)記空間的作用。SVM一般指支持向量機(jī),是一類按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進(jìn)行二元分類的廣義線性分類器,也可改為多分類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)財(cái)務(wù)報(bào)表分析制度建立與實(shí)施指南(標(biāo)準(zhǔn)版)
- 2025年高職第二學(xué)年(珠寶營銷)珠寶客戶開發(fā)綜合測試試題及答案
- 2026年幼兒保育(幼兒健康護(hù)理)試題及答案
- 2025年中職(煙草栽培與加工)煙草種植階段測試題及答案
- 2025年高職(助產(chǎn))助產(chǎn)技術(shù)實(shí)務(wù)試題及答案
- 2025年中職道路與橋梁工程技術(shù)(橋梁施工)試題及答案
- 2025年中職景區(qū)服務(wù)與管理(景區(qū)服務(wù))試題及答案
- 2025年大學(xué)農(nóng)業(yè)水利工程(農(nóng)業(yè)灌溉技術(shù))試題及答案
- 2025年中職環(huán)境工程(環(huán)境工程基礎(chǔ))試題及答案
- 2025年高職運(yùn)動(dòng)與休閑(運(yùn)動(dòng)技術(shù)文檔)試題及答案
- 理塘縣財(cái)政局(縣國有資產(chǎn)監(jiān)督管理局)關(guān)于公開招聘縣屬國有企業(yè)2名總經(jīng)理及1名財(cái)務(wù)總監(jiān)的參考題庫完美版
- 木質(zhì)纖維復(fù)合材料-深度研究
- 生產(chǎn)設(shè)備維護(hù)保養(yǎng)規(guī)范作業(yè)指導(dǎo)書
- 專業(yè)學(xué)位研究生課程案例庫建設(shè)項(xiàng)目申請書
- 骨髓炎VSD的護(hù)理
- GB/T 44230-2024政務(wù)信息系統(tǒng)基本要求
- 經(jīng)導(dǎo)管主動(dòng)脈瓣置換術(shù)(TAVR)患者的麻醉管理
- 本霍根的五堂課中文版
- 環(huán)境保護(hù)體系框圖
- 幼兒園課程標(biāo)準(zhǔn)要求
- 江河流域農(nóng)業(yè)面源污染綜合治理項(xiàng)目初步設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論