大語(yǔ)言模型:LLM結(jié)構(gòu)與與訓(xùn)練教學(xué)課件_第1頁(yè)
大語(yǔ)言模型:LLM結(jié)構(gòu)與與訓(xùn)練教學(xué)課件_第2頁(yè)
大語(yǔ)言模型:LLM結(jié)構(gòu)與與訓(xùn)練教學(xué)課件_第3頁(yè)
大語(yǔ)言模型:LLM結(jié)構(gòu)與與訓(xùn)練教學(xué)課件_第4頁(yè)
大語(yǔ)言模型:LLM結(jié)構(gòu)與與訓(xùn)練教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章結(jié)構(gòu)與訓(xùn)練本章主要內(nèi)容:1.架構(gòu)與框架2.LLM結(jié)構(gòu)與優(yōu)化3.詞向量4.LLM訓(xùn)練

7.1架構(gòu)與框架LLM用于處理大規(guī)模數(shù)據(jù)集,并在自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、多模態(tài)任務(wù)等領(lǐng)域表現(xiàn)出了SOTA的性能。7.1.1LLM架構(gòu)1.大語(yǔ)言模型的架構(gòu)類型大型語(yǔ)言模型的架構(gòu)主要分為三種類型,這些架構(gòu)基于Transformer框架的不同模塊設(shè)計(jì),適用于不同的任務(wù)需求:(1)Encoder-only架構(gòu)①核心組件:僅使用Transformer的編碼器部分。②特點(diǎn):通過(guò)多頭自注意力機(jī)制捕捉輸入序列的上下文信息。不涉及自回歸生成,適合需要理解輸入內(nèi)容的任務(wù)。③典型模型:BERT(BidirectionalEncoderRepresentationsfromTransformers)模型。④應(yīng)用場(chǎng)景:文本分類、問(wèn)答、命名實(shí)體識(shí)別等。⑤工作流程:輸入文本經(jīng)過(guò)分詞和嵌入后,通過(guò)多層編碼器提取特征。最終輸出每個(gè)詞的上下文表示,用于下游任務(wù)(如分類或提取)。.(2)Decoder-only架構(gòu)①核心組件:僅使用Transformer的解碼器部分。②特點(diǎn):使用遮蔽自注意力機(jī)制,確保模型只能關(guān)注當(dāng)前及之前的詞,避免未來(lái)信息泄露。適合自回歸生成任務(wù)。使用遮蔽自注意力機(jī)制,確保模型只能關(guān)注當(dāng)前及之前的詞,避免未來(lái)信息泄露。適合自回歸生成任務(wù)。③典型模型GPT(GenerativePre-trainedTransformer)系列模型。④應(yīng)用場(chǎng)景:文本生成、對(duì)話系統(tǒng)、機(jī)器翻譯等。⑤工作流程:輸入文本經(jīng)過(guò)分詞和嵌入后,通過(guò)多層解碼器逐步生成下一個(gè)詞。每個(gè)詞的生成依賴之前的上下文,確保生成連貫的序列。(3)Encoder-Decoder架構(gòu)①核心組件:同時(shí)使用編碼器和解碼器。②特點(diǎn):編碼器負(fù)責(zé)提取輸入序列的上下文表示,解碼器根據(jù)編碼器的輸出生成目標(biāo)序列。通過(guò)交叉注意力機(jī)制實(shí)現(xiàn)編碼器和解碼器之間的信息交互。③典型模型:T5(Text-to-TextTransferTransformer)模型、BART模型。④應(yīng)用場(chǎng)景:機(jī)器翻譯、文本摘要、復(fù)雜問(wèn)答等。⑤工作流程:輸入文本經(jīng)過(guò)編碼器處理后,生成上下文表示。解碼器根據(jù)編碼器的輸出和自身生成的序列逐步生成目標(biāo)文本。.2.LLM核心組件LLM通常包含以下核心組件。(1)嵌入層①功能:將離散的輸入(如詞或子詞)映射為連續(xù)的向量表示。②類型·詞嵌入:將詞轉(zhuǎn)換為固定維度的向量。·位置編碼:為模型提供輸入序列中詞的位置信息,解決Transformer無(wú)法直接處理順序的問(wèn)題。③作用為模型提供語(yǔ)義和順序信息,是后續(xù)處理的基礎(chǔ)。(2)自注意力機(jī)制(Self-Attention)①功能計(jì)算輸入序列中每個(gè)詞與其他詞的相關(guān)性,動(dòng)態(tài)分配權(quán)重。②特點(diǎn)允許模型捕捉長(zhǎng)距離依賴關(guān)系。通過(guò)多頭注意力機(jī)制并行處理不同類型的依賴關(guān)系。③計(jì)算公式:Attention(Q,K,V)=Softmax(QKT/sqrt(dk))V其中,Q(Query)、K(Key)、V(Value)為線性變換后的向量,dk為縮放因子。.(3)前饋神經(jīng)網(wǎng)絡(luò)①功能:對(duì)每個(gè)詞的表示進(jìn)行非線性變換,增強(qiáng)模型的表達(dá)能力。②結(jié)構(gòu):通常由兩層全連接網(wǎng)絡(luò)和ReLU激活函數(shù)組成。(4)殘差連接和層歸一化①功能:殘差連接:將輸入直接加到輸出,緩解梯度消失問(wèn)題;層歸一化:穩(wěn)定訓(xùn)練過(guò)程,加速收斂。3.不同架構(gòu)的對(duì)比與適用場(chǎng)景從幾個(gè)關(guān)鍵維度對(duì)比三種架構(gòu)如表7-1所示。表7-1關(guān)鍵維度三種架構(gòu)對(duì)比·僅編碼器(Encoder-only):適合需要理解輸入內(nèi)容的任務(wù),如BERT在問(wèn)答系統(tǒng)中的應(yīng)用。·僅解碼器(Decoder-only):適合需要生成文本的任務(wù),如GPT在對(duì)話生成中的應(yīng)用?!ぞ幋a器-解碼器(Encoder-Decoder):適合需要輸入和輸出不同結(jié)構(gòu)的任務(wù),如T5在機(jī)器翻譯中的應(yīng)用。大型語(yǔ)言模型的架構(gòu)設(shè)計(jì)充分體現(xiàn)了Transformer框架的靈活性,不同架構(gòu)的選擇取決于任務(wù)需求、計(jì)算資源和效率要求。理解這些架構(gòu)及其組件,有助于更好地應(yīng)用和優(yōu)化模型。維度Encoder-onlyDecoder-onlyEncoder-Decoder核心模塊編碼器解碼器編碼器

+解碼器注意力機(jī)制多頭自注意力遮蔽多頭自注意力自注意力+交叉注意力適用任務(wù)文本理解(如分類、問(wèn)答)文本生成(如對(duì)話、摘要)復(fù)雜任務(wù)(如翻譯、摘要)計(jì)算效率較高較高較低(因需額外解碼器)7.1.2LLM架構(gòu)選擇選擇合適的大語(yǔ)言模型(LLM)架構(gòu)需綜合考慮任務(wù)需求、資源限制和性能目標(biāo)。以下是具體的決策框架和關(guān)鍵因素。1.根據(jù)任務(wù)類型選擇架構(gòu)(1)文本理解任務(wù)(如分類、情感分析、命名實(shí)體識(shí)別):①推薦架構(gòu):Encoder-only(如BERT、RoBERTa)。②原因:編碼器能雙向捕捉上下文,適合靜態(tài)輸入分析。(2)文本生成任務(wù)(如對(duì)話、文本續(xù)寫、摘要):①推薦架構(gòu):Decoder-only(如GPT系列)。②原因:解碼器通過(guò)遮蔽注意力避免未來(lái)信息泄露,適合自回歸生成。(3)復(fù)雜任務(wù)(如機(jī)器翻譯、問(wèn)答、多輪對(duì)話):①推薦架構(gòu):Encoder-Decoder(如T5、BART)。②原因:結(jié)合編碼器理解輸入和解碼器生成輸出,適應(yīng)輸入輸出結(jié)構(gòu)差異。.2.考慮計(jì)算資源與效率(1)硬件限制:①低資源環(huán)境:優(yōu)先選擇Encoder-only或輕量級(jí)Decoder-only模型(如DistilBERT、GPT-NeoX),因其參數(shù)量相對(duì)較小。②高資源環(huán)境:可選用大型Encoder-Decoder模型(如T5-11B),但需注意內(nèi)存和顯存消耗。(2)推理速度:①實(shí)時(shí)應(yīng)用(如對(duì)話系統(tǒng)):Decoder-only通常更快,適合低延遲場(chǎng)景。④批量處理(如文檔分類):Encoder-only并行計(jì)算效率更高。3.性能需求與精度權(quán)衡(1)高精度需求:①?gòu)?fù)雜任務(wù)(如翻譯)需Encoder-Decoder架構(gòu),但可能犧牲速度。②文本生成任務(wù)中,大型Decoder-only模型(如GPT-4)通常表現(xiàn)更優(yōu)。(2)平衡性能與效率:①中等規(guī)模Encoder-only模型(如RoBERTa-base)在多項(xiàng)任務(wù)中表現(xiàn)均衡。②使用量化或蒸餾技術(shù)(如GPT-J-6B)可降低大模型成本。4.數(shù)據(jù)規(guī)模與多樣性(1)小數(shù)據(jù)集Encoder-only或小型Decoder-only模型更易訓(xùn)練,避免過(guò)擬合。.(2)大數(shù)據(jù)集:Encoder-Decoder架構(gòu)能更好利用數(shù)據(jù)多樣性,提升復(fù)雜任務(wù)表現(xiàn)。5.可擴(kuò)展性與未來(lái)需求(1)多任務(wù)學(xué)習(xí):Encoder-Decoder(如T5)支持統(tǒng)一文本到文本格式,適合多任務(wù)微調(diào)。(2)長(zhǎng)期維護(hù):選擇社區(qū)支持活躍的架構(gòu)(如BERT、GPT系列),便于獲取更新和工具支持。6.實(shí)際案例參考(1)問(wèn)答系統(tǒng):BERT(Encoder-only)+微調(diào),適合靜態(tài)答案提取。(2)機(jī)器翻譯:T5(Encoder-Decoder),需處理輸入輸出語(yǔ)言對(duì)。(3)創(chuàng)意寫作:GPT-4(Decoder-only),擅長(zhǎng)生成流暢文本。總結(jié)決策流程如下:①明確任務(wù)目標(biāo):理解是側(cè)重輸入分析還是輸出生成。②評(píng)估資源限制:硬件、預(yù)算、推理延遲要求。③測(cè)試候選模型:在小規(guī)模數(shù)據(jù)上驗(yàn)證不同架構(gòu)的性能。⑤迭代優(yōu)化:根據(jù)結(jié)果調(diào)整架構(gòu)或采用技術(shù)(如蒸餾、量化)。通過(guò)以上框架,可系統(tǒng)性地選擇最適合的LLM架構(gòu),平衡性能與資源需求。7.1.3LLM構(gòu)建LLM構(gòu)建過(guò)程如下:

1.確定需求分析與目標(biāo):明確LLM的應(yīng)用場(chǎng)景、性能要求和語(yǔ)言類型等。

2.數(shù)據(jù)收集與處理

·數(shù)據(jù)收集:從互聯(lián)網(wǎng)、書籍、文章等多種數(shù)據(jù)源收集大量文本數(shù)據(jù)。

·數(shù)據(jù)清洗:刪除錯(cuò)誤數(shù)據(jù),填補(bǔ)缺失數(shù)據(jù)和更改錯(cuò)誤數(shù)據(jù)等。

·數(shù)據(jù)預(yù)處理:包括分詞、編碼、序列化等步驟。

3.模型設(shè)計(jì)與選擇

·架構(gòu)選擇:選擇合適的神經(jīng)網(wǎng)絡(luò)架構(gòu),例如Transformer等。

·參數(shù)設(shè)置:確定網(wǎng)絡(luò)的層數(shù)、隱藏單元數(shù)、注意力機(jī)制等參數(shù)。

4.訓(xùn)練準(zhǔn)備

·數(shù)據(jù)集劃分:將數(shù)據(jù)分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。

·優(yōu)化器選擇:選擇合適的優(yōu)化算法,如自適應(yīng)矩估計(jì)梯度下降的優(yōu)化算法和隨機(jī)梯度下降等算法。

·損失函數(shù)定義:確定用于訓(xùn)練的損失函數(shù),例如交叉熵?fù)p失。

5.模型訓(xùn)練

·預(yù)訓(xùn)練:在大規(guī)模文本上進(jìn)行無(wú)監(jiān)督預(yù)訓(xùn)練。

·微調(diào):在特定任務(wù)上進(jìn)行有監(jiān)督微調(diào)。

.6.評(píng)估與調(diào)優(yōu)

·性能評(píng)估:使用測(cè)試集評(píng)估模型性能。

·超參數(shù)調(diào)優(yōu):根據(jù)評(píng)估結(jié)果調(diào)整學(xué)習(xí)率、批次大小等超參數(shù)。7.模型部署

·模型壓縮:通過(guò)剪枝、量化等手段減少模型大小。

·服務(wù)部署:將模型部署到云服務(wù)或邊緣設(shè)備。8維護(hù)與更新

·持續(xù)學(xué)習(xí):根據(jù)用戶反饋和數(shù)據(jù)變化,不斷更新模型。

·監(jiān)控:監(jiān)控模型性能,確保穩(wěn)定運(yùn)行。 簡(jiǎn)化的流程表示如圖7-1所示。圖7-1的流程圖僅為簡(jiǎn)化示意圖,實(shí)際的構(gòu)建過(guò)程會(huì)更加復(fù)雜,將涉及到許多

細(xì)節(jié)和技術(shù)決策。

7.1.4LLM評(píng)估7.1.4大語(yǔ)言模型的評(píng)估評(píng)估模型性能是確保模型在特定任務(wù)中表現(xiàn)良好且滿足實(shí)際需求的關(guān)鍵步驟。以下從評(píng)估方法、常用指標(biāo)和實(shí)際應(yīng)用中的注意事項(xiàng)三個(gè)方面進(jìn)行詳細(xì)說(shuō)明:1.評(píng)估方法評(píng)估模型性能時(shí),首先需要選擇合適的評(píng)估方法,確保模型在未見過(guò)的數(shù)據(jù)上表現(xiàn)穩(wěn)定且泛化能力強(qiáng)。幾種常見的評(píng)估方法如下。(1)數(shù)據(jù)集劃分①將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集(通常比例為70%訓(xùn)練集和30%測(cè)試集,或80%訓(xùn)練集和20%測(cè)試集)。②訓(xùn)練集用于模型訓(xùn)練,測(cè)試集用于評(píng)估模型在未見過(guò)的數(shù)據(jù)上的表現(xiàn)。(2)交叉驗(yàn)證①K折交叉驗(yàn)證:將數(shù)據(jù)集分成K個(gè)子集,每次用K-1個(gè)子集訓(xùn)練模型,剩下的1個(gè)子集用于測(cè)試,重復(fù)K次并取平均結(jié)果。適用于數(shù)據(jù)量較小的情況,能夠更全面地評(píng)估模型性能。②留一法:當(dāng)數(shù)據(jù)集非常小時(shí),留一法將每個(gè)樣本單獨(dú)作為測(cè)試集,其余樣本作為訓(xùn)練集,確保每個(gè)樣本都被測(cè)試到。③自助法:抽樣生成多個(gè)訓(xùn)練集,未抽中的樣本作為測(cè)試集,適用于數(shù)據(jù)量有限但需要更多評(píng)估樣本的情況。.2.常用評(píng)估指標(biāo)根據(jù)任務(wù)類型(如分類、回歸、生成等),選擇合適的評(píng)估指標(biāo)是關(guān)鍵。以下是常用指標(biāo)的分類及適用場(chǎng)景:(1)分類任務(wù)①準(zhǔn)確率:正確預(yù)測(cè)的樣本占總樣本的比例,適用于類別均衡的數(shù)據(jù)集。但在類別不均衡時(shí)可能誤導(dǎo)。②精確率:預(yù)測(cè)為正的樣本中實(shí)際為正的比例,適用于關(guān)注假正例的任務(wù)。③召回率:實(shí)際為正的樣本中被正確預(yù)測(cè)的比例,適用于關(guān)注假負(fù)例的任務(wù)。F1分?jǐn)?shù):精確率和召回率的調(diào)和平均數(shù),適用于需要平衡精確率和召回率的任務(wù)。④混淆矩陣:展示模型預(yù)測(cè)結(jié)果與實(shí)際結(jié)果之間的關(guān)系,包含真陽(yáng)性(TP)、真陰性(TN)、假陽(yáng)性(FP)和假陰性(FN)。⑤ROC曲線和AUC值:ROC曲線展示不同閾值下模型的真正例率(TPR)與假正例率(FPR),AUC值衡量曲線下的面積,適用于二分類任務(wù)。(2)回歸任務(wù)①均方誤差(MSE):預(yù)測(cè)值與真實(shí)值之差的平方的平均值,適用于需要關(guān)注預(yù)測(cè)值與真實(shí)值差異的任務(wù)。②均方根誤差(RMSE):MSE的平方根,用于更直觀地衡量誤差大小。③平均絕對(duì)誤差(MAE):預(yù)測(cè)值與真實(shí)值之差的絕對(duì)值的平均值,適用于對(duì)異常值不敏感的任務(wù)。④R2分?jǐn)?shù):衡量模型對(duì)數(shù)據(jù)的擬合程度,值越接近1表示擬合越好2。.(3)生成任務(wù)①BLEU:用于評(píng)估機(jī)器翻譯生成的文本質(zhì)量,通過(guò)計(jì)算生成文本與參考文本的匹配程度。②ROUGE:用于評(píng)估文本摘要的質(zhì)量,衡量生成文本與參考文本的重疊程度。③BERTScore:基于語(yǔ)義相似性,評(píng)估生成文本與參考文本在語(yǔ)義層面的接近程度。(4)多任務(wù)和復(fù)雜場(chǎng)景①流暢性、連貫性和相關(guān)性:評(píng)估生成文本的自然程度、邏輯一致性和與輸入提示的契合度。②偏差與公平性:通過(guò)分析模型在敏感類別上的表現(xiàn),確保生成結(jié)果無(wú)偏見。3.結(jié)合具體場(chǎng)景和需求進(jìn)行綜合考量在評(píng)估模型性能時(shí),還需結(jié)合具體場(chǎng)景和需求進(jìn)行綜合考量。(1)數(shù)據(jù)集選擇與預(yù)處理確保數(shù)據(jù)集的分布與實(shí)際任務(wù)一致,避免因數(shù)據(jù)偏差導(dǎo)致評(píng)估結(jié)果失真。(2)模型選擇與參數(shù)調(diào)整·根據(jù)任務(wù)需求選擇合適的模型架構(gòu)(如分類任務(wù)選擇Encoder-only模型,生成任務(wù)選擇Decoder-only模型)?!ねㄟ^(guò)交叉驗(yàn)證等方法優(yōu)化超參數(shù),避免過(guò)擬合或欠擬合。(3)綜合評(píng)估與迭代優(yōu)化·結(jié)合多種指標(biāo)進(jìn)行綜合評(píng)估,如同時(shí)關(guān)注準(zhǔn)確率、召回率和F1分?jǐn)?shù)?!ねㄟ^(guò)多次迭代優(yōu)化模型,確保模型在性能和資源消耗之間取得平衡。.(4)使用評(píng)估工具利用工具如Scikit-learn、TensorBoard、HuggingFace的Evaluate庫(kù)等,簡(jiǎn)化評(píng)估流程并可視化結(jié)果。通過(guò)選擇合適的評(píng)估方法、指標(biāo)和工具,結(jié)合實(shí)際需求對(duì)模型進(jìn)行全面評(píng)估,可以確保模型在特定任務(wù)中表現(xiàn)優(yōu)異。例如,分類任務(wù)可優(yōu)先關(guān)注準(zhǔn)確率、召回率和F1分?jǐn)?shù),而生成任務(wù)則需結(jié)合BLEU和BERTScore等指標(biāo)。同時(shí),注意數(shù)據(jù)集選擇、模型優(yōu)化和綜合評(píng)估,以提升模型的泛化能力和實(shí)際應(yīng)用價(jià)值。7.2LLM結(jié)構(gòu)優(yōu)化LLM結(jié)構(gòu)設(shè)計(jì)與優(yōu)化是NLP的關(guān)鍵技術(shù)之一,LLM結(jié)構(gòu)設(shè)計(jì)與優(yōu)化的關(guān)鍵點(diǎn)如下。7.2.1LLM優(yōu)化目標(biāo)LLM的優(yōu)化策略是指提高模型的性能、降低成本、提高可解釋性以及確保其安全性的策略。優(yōu)化策略匯總?cè)缦隆?/p>

1.模型壓縮

·剪枝:為了減少模型大小,移除權(quán)重較小的連接。

·量化:將浮點(diǎn)數(shù)權(quán)重轉(zhuǎn)換為低精度格式,如INT8或FLOAT16。

·蒸餾:將大型模型的知識(shí)傳遞給小型模型。

2.訓(xùn)練優(yōu)化

·學(xué)習(xí)率調(diào)度:使用余弦退火、預(yù)熱(Warm-up)等策略調(diào)整學(xué)習(xí)率。

·梯度累積:在顯存有限的情況下,通過(guò)累積多個(gè)小批量梯度來(lái)模擬大批量訓(xùn)練。

·混合精度訓(xùn)練:結(jié)合使用16位和32位浮點(diǎn)數(shù)來(lái)減少計(jì)算量和內(nèi)存占用。

3.數(shù)據(jù)效率

·數(shù)據(jù)增強(qiáng):對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行變換,如回譯(反向翻譯,用于檢查翻譯是否忠實(shí)于原文)、詞匯替換等,以增強(qiáng)模型泛化能力。

·動(dòng)態(tài)數(shù)據(jù)篩選:根據(jù)模型在訓(xùn)練過(guò)程中的表現(xiàn)動(dòng)態(tài)調(diào)整訓(xùn)練數(shù)據(jù)的分布。

.

4.注意力機(jī)制改進(jìn)

·稀疏注意力:只計(jì)算部分注意力矩陣,減少計(jì)算量。

·低秩注意力:使用低秩近似來(lái)減少注意力矩陣的計(jì)算復(fù)雜度。

·內(nèi)存高效注意力:通過(guò)重用計(jì)算結(jié)果來(lái)減少內(nèi)存占用。

5.并行計(jì)算

·模型并行:將模型的不同部分分布放置在不同的設(shè)備上。

·數(shù)據(jù)并行:將數(shù)據(jù)分割到不同的設(shè)備上,每個(gè)設(shè)備計(jì)算一部分梯度。

6.優(yōu)化器改進(jìn)

·自適應(yīng)優(yōu)化器:能夠根據(jù)參數(shù)的歷史梯度自適應(yīng)調(diào)整學(xué)習(xí)率,如AdamW

Adamax等。

·非單調(diào)優(yōu)化器:允許學(xué)習(xí)率在一定條件下增加,以跳出局部最小值。

7.正則化技術(shù)

·正則化技術(shù)用于防止模型過(guò)擬合。正則化通過(guò)在損失函數(shù)中添加額外的項(xiàng)來(lái)懲罰模型的復(fù)雜度,從而鼓勵(lì)模型學(xué)習(xí)更簡(jiǎn)單、更泛化的表示。

·Dropout:在訓(xùn)練過(guò)程中隨機(jī)丟棄一些神經(jīng)元,以防止過(guò)擬合。

.8.安全性和可解釋性

·對(duì)抗性訓(xùn)練:通過(guò)在訓(xùn)練數(shù)據(jù)中加入對(duì)抗樣本來(lái)提高模型的魯棒性。

·可解釋性工具:開發(fā)工具來(lái)解釋模型的決策過(guò)程,確保模型的可解釋性。

9.環(huán)境適應(yīng)性

·自適應(yīng)推理:根據(jù)設(shè)備性能動(dòng)態(tài)調(diào)整模型大小或推理策略。

·節(jié)能模式:在能耗敏感的環(huán)境中降低模型的計(jì)算需求。

10.資源管理 云服務(wù)優(yōu)化:在云環(huán)境中優(yōu)化資源分配,以降低成本。 通過(guò)上述這些策略,可以在不犧牲太多性能的情況下,使LLM更加高效、經(jīng)濟(jì),并易于部署。7.2.2LLM優(yōu)化的部分介紹1.參數(shù)共享 在LLM中,參數(shù)共享是一種常用的技術(shù),旨在通過(guò)參數(shù)共享來(lái)減少模型的大小和減少模型參數(shù)數(shù)量,可以加快訓(xùn)練速度,提高訓(xùn)練效率,并可以提升模型在多個(gè)任務(wù)上的泛化能力。 (1)多任務(wù)學(xué)習(xí) 多任務(wù)學(xué)習(xí)旨在用其他相關(guān)任務(wù)提升主要任務(wù)的泛化性能。簡(jiǎn)單地說(shuō),多任務(wù)學(xué)習(xí)是一種集成學(xué)習(xí),通過(guò)對(duì)幾個(gè)任務(wù)同時(shí)訓(xùn)練而使得多個(gè)任務(wù)之間相互影響,這種影響將反映到共享參數(shù)上。當(dāng)所有任務(wù)都收斂的時(shí),這個(gè)結(jié)構(gòu)就相當(dāng)于融合了所有任務(wù)。 將多任務(wù)學(xué)習(xí)視為對(duì)人類學(xué)習(xí)的一種模擬,為了學(xué)習(xí)一個(gè)新的任務(wù),使用學(xué)習(xí)相關(guān)任務(wù)而獲得知識(shí),例如:嬰兒先學(xué)會(huì)識(shí)別臉,然后將這種知識(shí)來(lái)識(shí)別其他物體。在機(jī)器學(xué)習(xí)中,將多任務(wù)學(xué)習(xí)視為一種感應(yīng)轉(zhuǎn)移,通過(guò)引入電感偏置來(lái)改進(jìn)模型,使得模型更強(qiáng)于某些假設(shè),例如:L1正則化就是一種常見的歸納偏置,它使得模型更偏向于那些稀疏的解,在多任務(wù)學(xué)習(xí)場(chǎng)景中,歸納偏置由輔助任務(wù)提供,這將導(dǎo)致模型更傾向于那些可以同時(shí)解釋多個(gè)任務(wù)的解,從而保證模型具有更好的泛化性能。

.多任務(wù)學(xué)習(xí)其實(shí)在某種程度上屬于遷移學(xué)習(xí),即利用其他信息或者其他來(lái)源的信息來(lái)影響主任務(wù),使得當(dāng)前的主任務(wù)表現(xiàn)更好。而實(shí)現(xiàn)則是通過(guò)影響共享模塊的參數(shù)。在編碼器-解碼器架構(gòu)下,凡是編碼器或者解碼器有共享潛質(zhì)的任務(wù)都可以用多任務(wù)學(xué)習(xí)。 多任務(wù)處理架構(gòu)有硬參數(shù)共享和軟參數(shù)共享之分,如圖7-4所示。在硬共享參數(shù)中,參數(shù)被分為共享參數(shù)和特定任務(wù)參數(shù)。其實(shí)除了這兩種還有分層共享和稀疏共享,還有一些比較新穎的共享機(jī)制,例如梯度共享,元共享等。目前硬共享是最為廣泛應(yīng)用的共享機(jī)制,它把多個(gè)任務(wù)的數(shù)據(jù)表示嵌入到同一個(gè)語(yǔ)義空間中,再為每個(gè)任務(wù)使用以任務(wù)特定層提取任務(wù)的特定表示,硬共享實(shí)現(xiàn)起來(lái)相對(duì)簡(jiǎn)單,適合處理有較強(qiáng)相關(guān)性的任務(wù),但對(duì)于弱相關(guān)任務(wù)常常表現(xiàn)很差。硬共享參數(shù)軟參數(shù)共享LLM中的常用參數(shù)共享方式如下。 (2)硬參數(shù)共享 硬參數(shù)共享是最常用的參數(shù)共享方法,特別是在多任務(wù)學(xué)習(xí)中。以下是硬參數(shù)共享的幾個(gè)關(guān)鍵點(diǎn):

.·共享底層:在多任務(wù)學(xué)習(xí)中,不同任務(wù)共享同一個(gè)底層網(wǎng)絡(luò),而僅在網(wǎng)絡(luò)的頂層使用任務(wù)的特定參數(shù)。

·節(jié)省資源:由于底層網(wǎng)絡(luò)參數(shù)被多個(gè)任務(wù)共享,因此可以顯著減少模型的總參數(shù)量,節(jié)省計(jì)算資源和存儲(chǔ)空間。 例如,在BERT模型中,預(yù)訓(xùn)練階段的所有層都是共享的,而在微調(diào)階段,針對(duì)特定任務(wù),可能會(huì)添加一些任務(wù)特定的層。 (3)軟參數(shù)共享 軟參數(shù)共享不強(qiáng)制不同任務(wù)的模型參數(shù)完全相同,而是通過(guò)一些技術(shù)手段使參數(shù)在不同任務(wù)之間相似。例如:·蒸餾:將一個(gè)大模型的知識(shí)“蒸餾”到一個(gè)或多個(gè)小模型上,使小模型的參數(shù)與大模型相似?!ふ齽t化:通過(guò)在損失函數(shù)中添加正則化項(xiàng),鼓勵(lì)不同任務(wù)的模型參數(shù)趨于相似。.2.梯度累積利用梯度累積方法可以訓(xùn)練更大模型。 (1)梯度累積方法的基本思想 梯度累積是一種在訓(xùn)練期間虛擬增加批量大?。╞atchsize)的方法,當(dāng)可用的GPU內(nèi)存不足以容納所需的批量大小時(shí),梯度累積方法非常有用。在梯度累積中,梯度是針對(duì)較小的批次計(jì)算的,并在多次迭代中累積(通常是求和或平均),而不是在每一批次之后更新模型權(quán)重。一旦累積梯度達(dá)到目標(biāo)虛擬批大小,模型權(quán)重就會(huì)使用累積梯度進(jìn)行更新。 例7-1,如果使用256的批量大小,但只將64的批量大小放入GPU內(nèi)存中,就可以對(duì)大小為64的四個(gè)批執(zhí)行梯度累積,處理完所有四個(gè)批次后,將獲得相當(dāng)于單個(gè)批量大小為256的累積梯度,。這樣能夠有效地模擬更大的批量大小,而無(wú)需更大的GPU內(nèi)存或跨不同設(shè)備的張量分片。 雖然梯度累積可以訓(xùn)練具有更大批量大小的模型,但它不會(huì)減少所需的總計(jì)算量。實(shí)際上,它有時(shí)會(huì)導(dǎo)致訓(xùn)練過(guò)程略慢,因?yàn)闄?quán)重更新的執(zhí)行頻率較低。盡管如此,它卻能幫解決限制問(wèn)題,但是,當(dāng)批量大小過(guò)小時(shí),將導(dǎo)致的更新頻繁且混亂。 利用梯度累積可以在有限內(nèi)存的情況下訓(xùn)練LLM。梯度累積可以在有限的顯存資源下訓(xùn)練更大的模型。梯度累積是將多個(gè)小批量的梯度累加起來(lái),然后使用累積的梯度來(lái)更新模型參數(shù)。 (2)梯度累積的關(guān)鍵步驟①初始化梯度:在開始訓(xùn)練之前,將模型的梯度初始化為零。.②前向傳播和反向傳播:對(duì)于每個(gè)小批量數(shù)據(jù),執(zhí)行前向傳播和反向傳播,得到梯度。③累積梯度:將當(dāng)前小批量的梯度與之前累積梯度相加。①批量大?。菏褂锰荻壤鄯e可以使得實(shí)際用于計(jì)算梯度的小批量大小變小,從而減少顯存占用。例如,如果原本的批量大小是256,可以通過(guò)將批量大小調(diào)整為64,并累積4個(gè)批量的梯度來(lái)達(dá)到相同的效果。②學(xué)習(xí)率調(diào)整:由于累積了多個(gè)批量的梯度,因此需要適當(dāng)調(diào)整學(xué)習(xí)率。通常情況下,學(xué)習(xí)率需要乘以累積的批量數(shù)量,以保持每個(gè)參數(shù)更新的步長(zhǎng)不變。 ③性能影響:梯度累積會(huì)稍微增加訓(xùn)練時(shí)間,因?yàn)樗枰嗟那跋騻鞑ズ头聪騻鞑ゲ襟E來(lái)完成一次參數(shù)更新。.3.混合精度訓(xùn)練

混合精度訓(xùn)練可以提高訓(xùn)練速度。訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時(shí),默認(rèn)使用的數(shù)據(jù)類型為單精度FP32。為了加快訓(xùn)練速度、減少網(wǎng)絡(luò)訓(xùn)練時(shí)所占用的內(nèi)存,并且保存訓(xùn)練出來(lái)的模型精度相同的條件下,使用了混合精度訓(xùn)練的方法,混合精度訓(xùn)練是指在訓(xùn)練的過(guò)程中,同時(shí)使用單精度(FP32)和半精度(FP16)進(jìn)行訓(xùn)練。 (1)使用FP16訓(xùn)練的問(wèn)題分析 浮點(diǎn)數(shù)據(jù)類型主要分為雙精度(FP64)、單精度(FP32)和半精度(FP16)。在神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練過(guò)程中,一般默認(rèn)采用單精度(FP32)浮點(diǎn)數(shù)據(jù)類型來(lái)表示網(wǎng)絡(luò)模型權(quán)重和其它參數(shù)。 根據(jù)IEEE二進(jìn)制浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE754)的定義,浮點(diǎn)數(shù)據(jù)類型三種精度,其中每一種都有三個(gè)不同的位來(lái)表示。FP64表示采用8個(gè)字節(jié)共64位,來(lái)進(jìn)行的編碼存儲(chǔ)的一種數(shù)據(jù)類型;同理,F(xiàn)P32表示采用4個(gè)字節(jié)共32位來(lái)表示;FP16則是采用2字節(jié)共16位來(lái)表示。FP32和FP16的浮點(diǎn)格式如圖7-5所示。.從圖7-5中可以看出,與FP32相比,F(xiàn)P16的存儲(chǔ)空間是FP32的一半,F(xiàn)P32則是FP64的一半。其中,每一種類型的浮點(diǎn)數(shù)據(jù)類型都由三個(gè)部分組成:最高位表示符號(hào)位(SIGNBIT);中間表示指數(shù)位(EXPONENTBIT);低位表示分?jǐn)?shù)位(FRACTIONBIT)。 例如,F(xiàn)P16的第一位符號(hào)位SIGN表示正負(fù)符號(hào),接著5位表示指數(shù),最后10位表示分?jǐn)?shù)。

FP16可以表示的最大值為0111101111111111,

FP16可以表示的最小值為0000010000000000,因此FP16的最大取值范圍是[-65504~66504],超過(guò)這個(gè)數(shù)值的數(shù)字被直接置0。

①使用FP16訓(xùn)練神經(jīng)網(wǎng)絡(luò),相對(duì)比使用FP32帶來(lái)的優(yōu)點(diǎn)有:

·減少內(nèi)存占用:FP16的位寬是FP32的一半,因此權(quán)重等參數(shù)所占用的內(nèi)存也是原來(lái)的一半,節(jié)省下來(lái)的內(nèi)存可以放更大的網(wǎng)絡(luò)模型或者使用更多的數(shù)據(jù)進(jìn)行訓(xùn)練。

·加快通訊效率:針對(duì)分布式訓(xùn)練,特別是在大模型訓(xùn)練的過(guò)程中,通訊的開銷制約了網(wǎng)絡(luò)模型訓(xùn)練的整體性能,通訊的位寬少了表明可以提升通訊性能,減少等待時(shí)間,加快數(shù)據(jù)的流通。

·計(jì)算效率更高:在特殊的AI加速芯片如華為Ascend910和310系列,或者NVIDIAVOTAL架構(gòu)的TitanVandTeslaV100的GPU上,使用FP16的執(zhí)行運(yùn)算性能比FP32更加快。①使用FP16的一些問(wèn)題

·數(shù)據(jù)溢出:FP16比FP32的有效數(shù)據(jù)范圍要小,使用FP16替換FP32會(huì)出現(xiàn)上溢和下溢的情況。而在深度學(xué)習(xí)中,經(jīng)常需要計(jì)算權(quán)重的梯度,由于梯度會(huì).比權(quán)重值更小,往往容易出現(xiàn)下溢情況。

·舍入誤差:舍入誤差表示當(dāng)網(wǎng)絡(luò)模型的反向梯度大小,一般FP32能夠表示,但是轉(zhuǎn)換到FP16會(huì)小于當(dāng)前區(qū)間內(nèi)的最小間隔,會(huì)導(dǎo)致數(shù)據(jù)溢出。如0.00006666666在FP32中能正常表示,轉(zhuǎn)換到FP16后會(huì)表示成為0.000067,不滿足FP16最小間隔的數(shù)會(huì)強(qiáng)制舍入。 為了讓深度學(xué)習(xí)訓(xùn)練可以使用FP16的優(yōu)點(diǎn),又要避免精度溢出和舍入誤差。于是可以進(jìn)行FP16和FP32的混合精度訓(xùn)練,混合精度訓(xùn)練過(guò)程中可以引入權(quán)重備份、損失放大和精度累加三種技術(shù)。 (2)權(quán)重備份 權(quán)重備份用于解決舍入誤差的問(wèn)題,其主要思想是:在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中把訓(xùn)練過(guò)程中產(chǎn)生的激活、梯度和中間變量等數(shù)據(jù),都利用FP16來(lái)存儲(chǔ),同時(shí)復(fù)制一份FP32的權(quán)重參數(shù),用于訓(xùn)練時(shí)候的更新。具體過(guò)程如圖7-6所示。

.在計(jì)算過(guò)程中所產(chǎn)生的權(quán)重、激活和梯度等均使用FP16來(lái)進(jìn)行存儲(chǔ)和計(jì)算,但是權(quán)重使用FP32額外備份。在深度模型中,邏輯回歸,梯度則是優(yōu)化算法中一個(gè)非常重要的概念,特別是在梯度下降算法中。梯度的參數(shù)值可能非常小,利用FP16來(lái)進(jìn)行相加的話,則很可能出現(xiàn)舍入誤差問(wèn)題,導(dǎo)致更新無(wú)效。因此通過(guò)將權(quán)重weights拷貝成FP32格式,并且確保整個(gè)更新過(guò)程是在FP32格式下進(jìn)行的。 雖然權(quán)重用FP32格式備份一次,使得內(nèi)存占用反而更高,額外拷貝一份weight的確增加了訓(xùn)練時(shí)候內(nèi)存的占用。但是實(shí)際上,在訓(xùn)練過(guò)程中內(nèi)存中分為動(dòng)態(tài)內(nèi)存和靜態(tài)內(nèi)容,其中動(dòng)態(tài)內(nèi)存是靜態(tài)內(nèi)存的3-4倍,主要是中間變量值和激活的值。而這里備份的權(quán)重增加的主要是靜態(tài)內(nèi)存。只要?jiǎng)討B(tài)內(nèi)存的值基本都是使用FP16來(lái)進(jìn)行存儲(chǔ),則最終模型與整網(wǎng)使用FP32進(jìn)行訓(xùn)練相比起來(lái),內(nèi)存占用也基本能夠減半。 (3)損失縮放 如果僅使用FP32訓(xùn)練,模型收斂得比較好,但是如果用了混合精度訓(xùn)練,存在網(wǎng)絡(luò)模型無(wú)法收斂的情況。原因是梯度的值太小,使用FP16表示會(huì)造成了數(shù)據(jù)下溢出的問(wèn)題,導(dǎo)致模型不收斂。于是需要引入損失縮放技術(shù)。 為了解決梯度過(guò)小數(shù)據(jù)下溢的問(wèn)題,對(duì)前向計(jì)算出來(lái)的損失(Loss)值進(jìn)行放大操作,也就是把FP32的參數(shù)乘以某一個(gè)因子系數(shù)后,把可能溢出的小數(shù)位數(shù)據(jù)往前移,平移到FP16能表示的數(shù)據(jù)范圍內(nèi)。根據(jù)鏈?zhǔn)角髮?dǎo)法則,放大Loss后會(huì)作用在反向傳播的每一層梯度,這樣比在每一層梯度上進(jìn)行放大更加高效。 損失放大是需要結(jié)合混合精度實(shí)現(xiàn)的,其主要的主要思路是:

·擴(kuò)大規(guī)模階段,網(wǎng)絡(luò)模型前向計(jì)算后在反響傳播前,將得到的損失變化值DLoss增大2K倍。

·按比例縮小階段,反向傳播后,將權(quán)重梯度縮2K倍,恢復(fù)FP32值進(jìn)行存儲(chǔ)。. 損失縮放都是使用一個(gè)默認(rèn)值對(duì)損失值進(jìn)行縮放,為了充分利用FP16的動(dòng)態(tài)范圍,可以更好地緩解舍入誤差,盡量使用比較大的放大倍數(shù)??偨Y(jié)動(dòng)態(tài)損失縮放算法,就是每當(dāng)梯度溢出時(shí)候減少損失縮放規(guī)模,并且間歇性地嘗試增加損失規(guī)模,從而實(shí)現(xiàn)在不引起溢出的情況下使用最高損失縮放因子,更好地恢復(fù)精度。 動(dòng)態(tài)損失縮放的算法如下:①?gòu)谋容^高的縮放因子開始(如224),然后開始進(jìn)行訓(xùn)練迭代中檢查數(shù)是否會(huì)溢出;②如果沒(méi)有梯度溢出,則不進(jìn)行縮放,繼續(xù)進(jìn)行迭代;如果檢測(cè)到梯度溢出,則縮放因子會(huì)減半,重新確認(rèn)梯度更新情況,直到數(shù)不產(chǎn)生溢出的范圍內(nèi);③在訓(xùn)練的后期,loss已經(jīng)趨近收斂穩(wěn)定,梯度更新的幅度往往小了,這時(shí)可以允許更高的損失縮放因子來(lái)再次防止數(shù)據(jù)下溢。④因此,動(dòng)態(tài)損失縮放算法會(huì)嘗試在每N(N=2000)次迭代將損失縮放增加F倍數(shù),然后執(zhí)行步驟2檢查是否溢出。 (3)精度累加 在混合精度的模型訓(xùn)練過(guò)程中,使用FP16進(jìn)行矩陣乘法運(yùn)算,利用FP32來(lái)進(jìn)行矩陣乘法中間的累加,然后再將FP32的值轉(zhuǎn)化為FP16進(jìn)行存儲(chǔ)。簡(jiǎn)單而言,就是利用FP16進(jìn)行矩陣相乘,利用FP32來(lái)進(jìn)行加法計(jì)算彌補(bǔ)丟失的精度。這樣可以有效減少計(jì)算過(guò)程中的舍入誤差,盡量減緩精度損失的問(wèn)題,如圖7-7所示。.4.優(yōu)化器選擇 在NLP領(lǐng)域,優(yōu)化器是指導(dǎo)模型訓(xùn)練過(guò)程的關(guān)鍵組件。對(duì)于LLM,優(yōu)化器的作用尤為重要。 (1)優(yōu)化器的概念 優(yōu)化器可以優(yōu)化損失函數(shù),優(yōu)化器的任務(wù)是以使損失函數(shù)最小化的方式更改可訓(xùn)練參數(shù),損失函數(shù)指導(dǎo)優(yōu)化器向所需的方向移動(dòng)。優(yōu)化器(即優(yōu)化算法)是用來(lái)求取模型的最優(yōu)解,通過(guò)比較神經(jīng)網(wǎng)絡(luò)自己預(yù)測(cè)的輸出與真實(shí)標(biāo)簽的差距,找到最小的loss。通常采用梯度下降方法,而梯度下降方法是一種優(yōu)化算法,主要內(nèi)容歸納如下:①目標(biāo):優(yōu)化器的目標(biāo)是找到一組模型參數(shù),使得預(yù)定義的損失函數(shù)(如交叉熵?fù)p失)最小化。②過(guò)程:優(yōu)化器迭代地調(diào)整模型參數(shù),以減少訓(xùn)練數(shù)據(jù)上的損失。③算法:優(yōu)化器內(nèi)部使用特定的算法來(lái)計(jì)算參數(shù)的更新,這些算法是基于梯度下降算法的變體。

.(2)優(yōu)化器的作用 ①指導(dǎo)參數(shù)更新 通過(guò)計(jì)算損失函數(shù)相對(duì)于模型參數(shù)的梯度,優(yōu)化器來(lái)決定如何調(diào)整參數(shù)以減少損失。使用梯度信息來(lái)更新參數(shù),以使模型預(yù)測(cè)更接近真實(shí)標(biāo)簽。

②加速收斂?jī)?yōu)化器通過(guò)引入動(dòng)量、自適應(yīng)學(xué)習(xí)率等方法,加速訓(xùn)練過(guò)程,幫助模型更快地收斂。例如,Adam優(yōu)化器結(jié)合了動(dòng)量和自適應(yīng)學(xué)習(xí)率,比標(biāo)準(zhǔn)的梯度下降收斂得更快。 ③避免局部最小值優(yōu)化器通過(guò)使用不同的策略(如隨機(jī)梯度下降的隨機(jī)性)來(lái)避免模型陷入局部最小值。某些優(yōu)化器(如Adamax)通過(guò)限制更新方向,幫助模型跳出局部最小值。④提高數(shù)值穩(wěn)定性 優(yōu)化器通過(guò)引入小常數(shù)(如ε)來(lái)防止在計(jì)算中出現(xiàn)除以零的情況。通常,ε的具體值取決于上下文,它可以是任意小的正數(shù),用于證明或者算法設(shè)計(jì)中。在沒(méi)有具體指定的情況下,ε只是一個(gè)符號(hào),代表一個(gè)極小的量。在某些情況下,ε可能會(huì)被賦予一個(gè)具體的數(shù)值,比如在計(jì)算機(jī)程序中,可能會(huì)將ε設(shè)為一個(gè)很小的數(shù)字,如1e-6(科學(xué)記數(shù)法表示的1乘以10的負(fù)6次方)或者其他更小的數(shù),這取決于所需的精度。例如,在計(jì)算自適應(yīng)學(xué)習(xí)率時(shí),添加一個(gè)小的ε值可以避免數(shù)值不穩(wěn)定。.⑥處理大規(guī)模數(shù)據(jù) 對(duì)于LLM,優(yōu)化器需要有效地處理大規(guī)模數(shù)據(jù)集和高維參數(shù)空間。某些優(yōu)化器(如LAMB)專門為大規(guī)模模型設(shè)計(jì),可以更高效地使用計(jì)算資源。⑦正則化一些優(yōu)化器(如AdamW)結(jié)合了權(quán)重衰減(L2正則化)來(lái)防止過(guò)擬合。權(quán)重衰減通過(guò)懲罰大權(quán)重值,鼓勵(lì)模型學(xué)習(xí)更簡(jiǎn)單、泛化能力更強(qiáng)的參數(shù)。(3)Adam優(yōu)化器Adam的主要特點(diǎn)如下:

·自適應(yīng)學(xué)習(xí)率:Adam優(yōu)化器根據(jù)每個(gè)參數(shù)的梯度的一階矩估計(jì)(即均值)和二階矩估計(jì)(即未中心化的方差)來(lái)調(diào)整學(xué)習(xí)率。

·動(dòng)量:Adam結(jié)合了動(dòng)量方法,它考慮了歷史梯度來(lái)加速學(xué)習(xí)過(guò)程。

·魯棒性:由于它結(jié)合了多個(gè)優(yōu)化器的優(yōu)點(diǎn),Adam比基本的梯度下降更魯棒。Adam的算法步驟如下:①初始化參數(shù) 初始化參數(shù)θ(比如神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置):

·初始化一階矩向量m0為0(對(duì)每個(gè)參數(shù)的梯度的一階矩估計(jì))。

·初始化二階矩向量v0為0(對(duì)每個(gè)參數(shù)的梯度的二階矩估計(jì))。

·設(shè)置學(xué)習(xí)率α(比如0.001)。

·設(shè)置一階矩估計(jì)的衰減率β1(通常設(shè)為0.9)。

·設(shè)置二階矩估計(jì)的衰減率β2(通常設(shè)為0.999)。

.·設(shè)置用于數(shù)值穩(wěn)定的小常數(shù)?(通常設(shè)為10?8)。②對(duì)于每個(gè)時(shí)間步t(即每次迭代)執(zhí)行以下步驟:

·計(jì)算梯度:計(jì)算在當(dāng)前時(shí)間步損失函數(shù)關(guān)于參數(shù)θ的梯度gt。

·更新有偏一階矩估計(jì):mt=β1?mt?1+(1?β1)?gt

這里的mt是對(duì)gt的指數(shù)衰減平均。

·更新有偏二階矩估計(jì):

這里的vt是對(duì)gt2的指數(shù)衰減平均。·修正一階矩的偏差:

由于mt是有偏的,尤其是在t較小時(shí),所以通過(guò)上述公式進(jìn)行偏差修正。·修正二階矩的偏差:

同樣,vt也是有偏的,需要進(jìn)行偏差修正?!じ聟?shù):

這里的更新規(guī)則結(jié)合了動(dòng)量(Momentum)和RMSprop的思想①,通過(guò)對(duì)學(xué)習(xí)率進(jìn)行自適應(yīng)調(diào)整來(lái)更新參數(shù)。③重復(fù)步驟②,直到滿足停止準(zhǔn)則(比如達(dá)到一定的迭代次數(shù)或損失函數(shù)值低于某個(gè)閾值)。.Adam算法在實(shí)踐中表現(xiàn)良好,因?yàn)樗軌驗(yàn)椴煌膮?shù)動(dòng)態(tài)調(diào)整學(xué)習(xí)率,并且通常情況下收斂速度較快。不過(guò),也有一些研究指出,在某些情況下,Adam可能不如SGD(隨機(jī)梯度下降)配合學(xué)習(xí)率衰減的效果好。因此,選擇優(yōu)化算法時(shí),應(yīng)根據(jù)具體問(wèn)題和數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)和調(diào)整。Adam的優(yōu)勢(shì)如下:·易于實(shí)現(xiàn):Adam算法簡(jiǎn)單,易于理解和實(shí)現(xiàn)。·無(wú)需手動(dòng)調(diào)整學(xué)習(xí)率:自適應(yīng)學(xué)習(xí)率機(jī)制通常意味著不需要太多關(guān)于學(xué)習(xí)率的手動(dòng)調(diào)整?!みm用于非平穩(wěn)目標(biāo):由于它的自適應(yīng)性質(zhì),Adam適用于目標(biāo)函數(shù)隨時(shí)間變化的情況?!dam是一種強(qiáng)大且常用的優(yōu)化器,特別適合于訓(xùn)練具有大量參數(shù)的復(fù)雜模型。然而,針對(duì)特定問(wèn)題,可能需要調(diào)整其參數(shù)或考慮其他優(yōu)化器。 (4)AdamW優(yōu)化器

AdamW是一種對(duì)Adam優(yōu)化器進(jìn)行了改進(jìn)的變體,它主要引入了權(quán)重衰減(WeightDecay)技術(shù)。在深度學(xué)習(xí)中,權(quán)重衰減是一種常見的正則化技術(shù),用于防止模型過(guò)擬合。①AdamW的主要特點(diǎn)

AdamW結(jié)合了權(quán)重衰減技術(shù),將權(quán)重衰減直接應(yīng)用到權(quán)重本身,而不是梯度上。這一點(diǎn)與L2正則化相似,但實(shí)現(xiàn)方式不同。

·權(quán)重衰減:權(quán)重衰減通過(guò)在損失函數(shù)中添加一個(gè)與權(quán)重大小成比例的項(xiàng)來(lái)懲罰大的權(quán)重值,從而鼓勵(lì)模型學(xué)習(xí)更簡(jiǎn)單、泛化能力更強(qiáng)的參數(shù)。

·適用于大規(guī)模訓(xùn)練:AdamW特別適用于大規(guī)模的深度學(xué)習(xí)模型訓(xùn)練,因?yàn)樗梢詭椭P透玫胤夯?/p>

.綜上所述,優(yōu)化器在LLM訓(xùn)練中扮演著至關(guān)重要的角色,它們不僅決定了模型參數(shù)的更新方式,而且對(duì)訓(xùn)練的速度、穩(wěn)定性和最終性能有著直接影響。因此,選擇和配置合適的優(yōu)化器對(duì)于成功訓(xùn)練LLM至關(guān)重要。②RMSprop(RootMeanSquarePropagation)是一種用于深度學(xué)習(xí)中的優(yōu)化算法,旨在加速梯度下降過(guò)程,特別是在處理非平穩(wěn)目標(biāo)和處理小批量數(shù)據(jù)時(shí)使用。從而提高優(yōu)化過(guò)程的穩(wěn)定性和效率。

.

5.學(xué)習(xí)率調(diào)度

學(xué)習(xí)率調(diào)度是深度學(xué)習(xí)訓(xùn)練過(guò)程中的一個(gè)關(guān)鍵環(huán)節(jié),特別是在訓(xùn)練大型語(yǔ)言模型時(shí)。學(xué)習(xí)率決定了模型權(quán)重更新的幅度,一個(gè)合適的學(xué)習(xí)率調(diào)度策略可以幫助模型更快地收斂,同時(shí)避免過(guò)擬合和數(shù)值不穩(wěn)定問(wèn)題。 (1)常用的學(xué)習(xí)率調(diào)度策略 ①固定學(xué)習(xí)率 在整個(gè)訓(xùn)練過(guò)程中保持學(xué)習(xí)率不變。適用于簡(jiǎn)單的任務(wù)或當(dāng)訓(xùn)練數(shù)據(jù)量較小時(shí)。②指數(shù)衰減 學(xué)習(xí)率以指數(shù)形式隨時(shí)間衰減。③步進(jìn)衰減

·策略:每隔一定的回合(epoch)數(shù),學(xué)習(xí)率乘以一個(gè)衰減因子。epoch是指進(jìn)行一次完整的訓(xùn)練數(shù)據(jù)集迭代的過(guò)程。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),一個(gè)epoch表示整個(gè)數(shù)據(jù)集被前向傳播和反向傳播過(guò)程遍歷了一次。

·適用情況:適用于訓(xùn)練數(shù)據(jù)量大,需要長(zhǎng)時(shí)間訓(xùn)練的情況。 ④多階段衰減

·策略:在預(yù)定義的多個(gè)epoch處減少學(xué)習(xí)率。

·適用情況:當(dāng)模型在訓(xùn)練的不同階段需要不同的學(xué)習(xí)率時(shí)。 ⑤逆時(shí)間衰減 學(xué)習(xí)率與epoch成反比。 ⑥余弦退火

·策略:學(xué)習(xí)率隨時(shí)間按照余弦函數(shù)衰減。

·適用情況:適用于訓(xùn)練數(shù)據(jù)量大,需要長(zhǎng)時(shí)間訓(xùn)練的情況。

.⑦循環(huán)學(xué)習(xí)率

·策略:學(xué)習(xí)率在兩個(gè)邊界值之間循環(huán)變化。

·適用情況:有助于模型逃離局部最小值。 ⑧學(xué)習(xí)率預(yù)熱

·策略:在訓(xùn)練開始時(shí)逐漸增加學(xué)習(xí)率。

·適用情況:有助于在訓(xùn)練初期穩(wěn)定模型。 (2)實(shí)現(xiàn)學(xué)習(xí)率調(diào)度的步驟 ①選擇調(diào)度策略:根據(jù)模型的復(fù)雜度和訓(xùn)練數(shù)據(jù)的特點(diǎn)選擇合適的學(xué)習(xí)率調(diào)度策略。 ②設(shè)置初始學(xué)習(xí)率:根據(jù)經(jīng)驗(yàn)或通過(guò)實(shí)驗(yàn)確定一個(gè)合適的初始學(xué)習(xí)率。 ③應(yīng)用調(diào)度:在訓(xùn)練過(guò)程中,根據(jù)選擇的策略調(diào)整學(xué)習(xí)率。

·熱身:在訓(xùn)練開始時(shí)逐步增加學(xué)習(xí)率。

·衰減策略:例如線性衰減、余弦退火等。.6.蒸餾

模型蒸餾是一種有效的模型壓縮技術(shù),它可以應(yīng)用于各種類型的模型,包括深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、Transformer模型等。通過(guò)蒸餾可以將這些模型的知識(shí)遷移到更小的模型中,同時(shí)盡量保持原始模型的性能。一般說(shuō)來(lái),只能用離線方式完成蒸餾。 (1)模型蒸餾基本過(guò)程 在離線環(huán)境下,同時(shí)訓(xùn)練兩個(gè)模型:一個(gè)學(xué)生模型和一個(gè)教師模型。其中教師模型額外利用了優(yōu)勢(shì)特征,則準(zhǔn)確率更高。將教師模型蒸餾出來(lái)的知識(shí)傳遞給學(xué)生模型,輔助其訓(xùn)練,提升學(xué)生模型的準(zhǔn)確率。在線上服務(wù)時(shí),只用學(xué)生模型進(jìn)行部署,由于輸入中不依賴優(yōu)勢(shì)特征,則保證了線上線下特征的一致性。其過(guò)程如圖7-8所示。 ①訓(xùn)練教師模型:首先需要一個(gè)已經(jīng)訓(xùn)練好的大模型,這個(gè)模型在目標(biāo)任務(wù)上表現(xiàn)良好。 ②軟標(biāo)簽生成:教師模型對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行預(yù)測(cè),生成軟標(biāo)簽。軟標(biāo)簽不僅包括最終的類別預(yù)測(cè),還包括模型對(duì)每個(gè)類別的預(yù)測(cè)概率,這提供了更多的有助于學(xué)生模型學(xué)習(xí)的信息。.

③學(xué)生模型訓(xùn)練:使用這些軟標(biāo)簽來(lái)訓(xùn)練學(xué)生模型。學(xué)生模型的損失函數(shù)是由真實(shí)標(biāo)簽和軟標(biāo)簽組合而成的,這允許學(xué)生模型從教師模型中學(xué)到更細(xì)致的知識(shí)。 ④溫度調(diào)節(jié):在生成軟標(biāo)簽時(shí),通常入溫度超參數(shù)來(lái)調(diào)節(jié)概率分布的尖銳程度。較高的溫度會(huì)使分布更加平滑,有助于學(xué)生模型學(xué)習(xí)到更多的信息。關(guān)于溫度參數(shù)見第15章提示工程的介紹。 ⑤知識(shí)遷移:除了類別預(yù)測(cè)之外,教師模型的其他知識(shí),如中間層的激活值,也可以遷移用來(lái)指導(dǎo)學(xué)生模型的訓(xùn)練。⑥微調(diào):學(xué)生模型在蒸餾過(guò)程中還會(huì)接受真實(shí)標(biāo)簽的訓(xùn)練,可以進(jìn)一步微調(diào)其性能。模型蒸餾的目的是讓學(xué)生模型保持較小規(guī)模的同時(shí),盡可能地接近教師模型的性能。可以將一個(gè)在服務(wù)器上運(yùn)行的大型模型轉(zhuǎn)化為一個(gè)可以在手機(jī)或嵌入式設(shè)備上運(yùn)行的小型模型,同時(shí)盡量減少性能損失。

。(2)模型蒸餾的優(yōu)勢(shì) ①參數(shù)數(shù)量減少:通過(guò)蒸餾,可以將一個(gè)大型、復(fù)雜的教師模型的知識(shí)遷移到一個(gè)參數(shù)更少的學(xué)生模型中。學(xué)生模型因此可以更小,更容易部署在資源受限的環(huán)境中。②計(jì)算成本降低:學(xué)生模型通常具有更簡(jiǎn)單的架構(gòu),因此在前向傳播和反向傳播過(guò)程中需要更少的計(jì)算資源,從而降低了模型的計(jì)算成本。 ③內(nèi)存占用減少:由于參數(shù)數(shù)量的減少,學(xué)生模型占用的內(nèi)存也會(huì)相應(yīng)減少,這對(duì)于嵌入式設(shè)備和移動(dòng)設(shè)備來(lái)說(shuō)非常重要。 ④能耗降低:減少了模型的參數(shù)和計(jì)算量,可以降低模型的能耗,這對(duì)于移動(dòng)設(shè)備和需要長(zhǎng)時(shí)間運(yùn)行的系統(tǒng)來(lái)說(shuō)非常有用。 ⑤推理速度提升:較小的模型通??梢愿斓剡M(jìn)行推理,這對(duì)于需要快速響應(yīng)的應(yīng)用場(chǎng)景(如在線服務(wù)、實(shí)時(shí)控制系統(tǒng))非常重要。.7.剪枝技術(shù)

LLM的參數(shù)剪枝是指去除模型中不重要的參數(shù),移除權(quán)重較小的連接,減少模型大小、提高模型推理速度和降低內(nèi)存消耗的技術(shù)。通過(guò)剪枝,可以移除模型中不重要的參數(shù),而保持模型的性能基本不變。以下是參數(shù)剪枝的一些常見方法。 (1)修剪方法 ①權(quán)重剪枝

·非結(jié)構(gòu)化剪枝:?jiǎn)为?dú)刪除權(quán)重矩陣中的參數(shù),不保留任何結(jié)構(gòu)。

·結(jié)構(gòu)化剪枝:按照一定的結(jié)構(gòu)(如權(quán)重矩陣中的行或列)刪除參數(shù)。 ②單元剪枝針對(duì)神經(jīng)元或?yàn)V波器進(jìn)行剪枝,整個(gè)神經(jīng)元或?yàn)V波器的所有參數(shù)都會(huì)被移除。 ③模型剪枝在模型層面上進(jìn)行剪枝,移除整個(gè)層或子網(wǎng)絡(luò)。 (2)剪枝準(zhǔn)則

·幅度剪枝:刪除絕對(duì)值較小的權(quán)重,認(rèn)為這些權(quán)重對(duì)模型輸出的貢獻(xiàn)較小。.

·單元重要性剪枝:根據(jù)神經(jīng)元或?yàn)V波器的重要性來(lái)決定是否剪枝,重要性強(qiáng)的不剪,重要性小的剪枝,可以通過(guò)多種方式評(píng)估,如梯度、激活值等。

·二次性剪枝:利用權(quán)重的二次性屬性來(lái)評(píng)估其對(duì)模型性能的影響。 (3)剪枝流程①訓(xùn)練模型:首先訓(xùn)練一個(gè)LLM直到收斂。②評(píng)估重要性:根據(jù)剪枝準(zhǔn)則評(píng)估模型中每個(gè)參數(shù)的重要性。③剪枝:根據(jù)評(píng)估結(jié)果,移除不重要的參數(shù)。④微調(diào):對(duì)剪枝后的模型進(jìn)行微調(diào),以恢復(fù)模型性能。⑤迭代:重復(fù)上述步驟,直到達(dá)到期望的剪枝程度。 參數(shù)剪枝是一個(gè)復(fù)雜的過(guò)程,需要根據(jù)具體的模型和任務(wù)需求來(lái)定制剪枝策略。隨著研究的深入,剪枝技術(shù)也在不斷發(fā)展,以適應(yīng)不同的應(yīng)用場(chǎng)景和優(yōu)化目標(biāo)。.8.量化技術(shù)

量化是一種將模型參數(shù)從浮點(diǎn)數(shù)轉(zhuǎn)換為低比特寬度的整數(shù)表示的技術(shù),量化技術(shù)的主要目的是節(jié)省顯存、加速計(jì)算和降低通訊量。不同的應(yīng)用場(chǎng)景下,可以根據(jù)具體需求選擇不同的量化策略。 在量化過(guò)程中,常用的數(shù)據(jù)類型包括FP32(單精度浮點(diǎn)數(shù))和INT8(8位整數(shù))等。量化可以進(jìn)一步分為后量化、訓(xùn)練時(shí)量化(混合精度)和量化感知訓(xùn)練。后量化是一種針對(duì)預(yù)訓(xùn)練模型部署的高效加速方式,它不需要重新訓(xùn)練模型,但可能影響模型性能。 量化技術(shù)的挑戰(zhàn)包括精度損失、零樣本泛化能力的保持以及計(jì)算開銷。為了解決這些挑戰(zhàn),開發(fā)了各種量化工具和技術(shù),如AutoGPTQ、AutoAWQ和QLoRA等,它們支持多種模型和量化精度,旨在盡量保持模型的準(zhǔn)確性,同時(shí)降低內(nèi)存占用和推理時(shí)間,量化技術(shù)主要通過(guò)以下兩個(gè)方面實(shí)現(xiàn):

·參數(shù)壓縮:將模型中的浮點(diǎn)數(shù)參數(shù)轉(zhuǎn)換為低精度的整數(shù)參數(shù),從而減少模型所需的存儲(chǔ)空間和加載時(shí)間。

·計(jì)算加速:由于低精度整數(shù)運(yùn)算通常比浮點(diǎn)數(shù)運(yùn)算快,量化可以加速計(jì)算,提高模型的推理速度,同時(shí)加快推理速度并降低能耗。量化的關(guān)鍵方法如下。 (1)量化級(jí)別①權(quán)重量化 對(duì)模型的權(quán)重進(jìn)行量化,通常是浮點(diǎn)數(shù)權(quán)重轉(zhuǎn)換為整數(shù)。②激活量化 對(duì)模型的激活值進(jìn)行量化,即對(duì)神經(jīng)網(wǎng)絡(luò)中間層的輸出進(jìn)行量化。

.③全量化 同時(shí)對(duì)權(quán)重和激活進(jìn)行量化。 (2)量化方法①對(duì)稱量化 使用相同的范圍對(duì)正數(shù)和負(fù)數(shù)進(jìn)行量化,中心點(diǎn)是0。②非對(duì)稱量化 對(duì)正數(shù)和負(fù)數(shù)使用不同的范圍進(jìn)行量化。 ③線性量化 使用線性映射將浮點(diǎn)數(shù)映射到整數(shù)。 ④非線性量化 使用非線性映射(如對(duì)數(shù)或指數(shù))進(jìn)行量化。 (3)量化位寬 ①二值量化:使用1比特(+1,-1)表示權(quán)重和/或激活。 ②三值量化:使用2比特表示權(quán)重和/或激活。③四值量化:使用2比特表示權(quán)重和/或激活,但表示方式不同。④八位量化:使用8比特(通常是無(wú)符號(hào)字符)表示權(quán)重和/或激活,這是目前最常用的量化位寬。 (4)量化流程 ①選擇量化方案:根據(jù)硬件和性能需求選擇合適的量化級(jí)別和方法。訓(xùn)練后量化:在模型訓(xùn)練完成后進(jìn)行量化,不需要額外的訓(xùn)練過(guò)程。

.

③感知訓(xùn)練:在訓(xùn)練過(guò)程中模擬量化效果,以減少量化帶來(lái)的性能損失。④量化校準(zhǔn):確定量化參數(shù),如縮放因子和零點(diǎn)。⑤量化實(shí)現(xiàn):將模型轉(zhuǎn)換為量化表示,并在目標(biāo)硬件上實(shí)現(xiàn)。⑥性能評(píng)估:評(píng)估量化模型的性能,必要時(shí)進(jìn)行微調(diào)。 量化是部署LLM到生產(chǎn)環(huán)境中的一個(gè)重要步驟,尤其是在資源受限的設(shè)備上。隨著技術(shù)的發(fā)展,量化技術(shù)也在不斷進(jìn)步,以支持更高效的模型部署。.9.適應(yīng)性模型

LLM的適應(yīng)性模型它們能夠根據(jù)新的數(shù)據(jù)或環(huán)境變化自動(dòng)調(diào)整其參數(shù)或結(jié)構(gòu),能夠捕捉到數(shù)據(jù)中的復(fù)雜關(guān)系和模式,適應(yīng)性主要體現(xiàn)在以下幾個(gè)方面。。 (1)持續(xù)學(xué)習(xí):LLM能夠從新數(shù)據(jù)中學(xué)習(xí),不斷更新其知識(shí)庫(kù)和參數(shù),以適應(yīng)數(shù)據(jù)分布的變化。這種能力對(duì)于處理持續(xù)變化的數(shù)據(jù)流尤為重要。 (2)遷移學(xué)習(xí):在目標(biāo)數(shù)據(jù)稀缺的情況下,LLM能夠?qū)⒃谝粋€(gè)任務(wù)上學(xué)到的知識(shí)遷移到另一個(gè)相關(guān)的任務(wù)上。例如,NLP中的大型預(yù)訓(xùn)練語(yǔ)言模型(如BERT、GPT)可以在多種語(yǔ)言任務(wù)中進(jìn)行微調(diào),而無(wú)需從頭開始訓(xùn)練。 (3)元學(xué)習(xí):LLM可以采用元學(xué)習(xí)策略,即學(xué)習(xí)如何學(xué)習(xí),以便通過(guò)少量的樣本快速適應(yīng)新任務(wù)。這對(duì)于那些需要快速適應(yīng)新情況的應(yīng)用場(chǎng)景非常有用。 (4)環(huán)境適應(yīng)性:LLM能夠根據(jù)不同的應(yīng)用環(huán)境(如硬件限制、數(shù)據(jù)可用性等)調(diào)整其結(jié)構(gòu)和復(fù)雜度。例如,模型壓縮和剪枝技術(shù)可以用于減少模型的規(guī)模,使其適應(yīng)資源受限的環(huán)境。 (5)動(dòng)態(tài)結(jié)構(gòu)調(diào)整:LLM可以具有動(dòng)態(tài)的結(jié)構(gòu),根據(jù)任務(wù)需求自動(dòng)調(diào)整其網(wǎng)絡(luò)架構(gòu),如通過(guò)添加或刪除神經(jīng)元、層或連接。

LLM的適應(yīng)性對(duì)于處理復(fù)雜、動(dòng)態(tài)變化的環(huán)境至關(guān)重要。它們?cè)贜LP、計(jì)算機(jī)視覺(jué)、推薦系統(tǒng)等多個(gè)領(lǐng)域都顯示優(yōu)秀出應(yīng)用能力。隨著深度學(xué)習(xí)和其他先進(jìn)技術(shù)的發(fā)展,LLM的適應(yīng)性將得到進(jìn)一步的提升,它們?cè)谔幚泶笠?guī)模、多樣化數(shù)據(jù)方面的潛力將得到更充分的發(fā)掘。

.10.倫理與安全性

在設(shè)計(jì)LLM時(shí),需要關(guān)注模型的倫理和安全性問(wèn)題,確保模型在實(shí)際應(yīng)用中的合規(guī)性。 (1)數(shù)據(jù)隱私:語(yǔ)言模型通常需要海量的數(shù)據(jù)來(lái)進(jìn)行訓(xùn)練,這些數(shù)據(jù)可能包含個(gè)人隱私信息。確保這些數(shù)據(jù)得到妥善處理,不被非法利用。 (2)信息真實(shí)性:語(yǔ)言模型有可能會(huì)生成虛假或誤導(dǎo)性信息。因此,如何確保輸出的信息是真實(shí)、準(zhǔn)確的,是一個(gè)需要解決的問(wèn)題。 (3)偏見與歧視:由于訓(xùn)練數(shù)據(jù)可能存在偏差,這可能會(huì)導(dǎo)致模型生成帶有偏見或歧視性的內(nèi)容。減少這些偏見,保證內(nèi)容的公平性是至關(guān)重要。 (4)濫用風(fēng)險(xiǎn):語(yǔ)言模型可能被用于撰寫網(wǎng)絡(luò)欺詐信息、惡意軟件、虛假新聞等。如何防止這些濫用行為,是一個(gè)需要深入考慮的問(wèn)題。 (5)法律與合規(guī):遵循相關(guān)的法律法規(guī),確保語(yǔ)言模型的使用不違反任何法律條款。 (6)透明度:提高模型的決策過(guò)程和運(yùn)作機(jī)制的透明度,讓用戶了解模型的局限性和可能的偏見。 (7)責(zé)任歸屬:當(dāng)語(yǔ)言模型產(chǎn)生不良后果時(shí),如何界定責(zé)任和進(jìn)行相應(yīng)的處理,是一個(gè)需要明確的問(wèn)題。 在設(shè)計(jì)和使用語(yǔ)言模型時(shí),需要綜合考慮這些倫理和安全問(wèn)題,并采取相應(yīng)的措施來(lái)降低風(fēng)險(xiǎn)。同時(shí),公眾的監(jiān)督和反饋也是保證語(yǔ)言模型倫理與安全性的重要途徑。7.2.3LLM數(shù)據(jù)增強(qiáng)在NLP領(lǐng)域,數(shù)據(jù)增強(qiáng)有助于模型更好地學(xué)習(xí)數(shù)據(jù)的本質(zhì)特征,減少對(duì)特定數(shù)據(jù)分布的依賴,從而數(shù)據(jù)增強(qiáng)是一種提高模型性能和泛化能力。LLM需要大量的數(shù)據(jù)訓(xùn)練來(lái)達(dá)到較高的性能,尤其是在數(shù)據(jù)量有限的情況下,LLM的數(shù)據(jù)增強(qiáng)方法如下。

1.文本復(fù)述

·使用預(yù)訓(xùn)練的語(yǔ)言模型生成給定句子的不同表達(dá)方式。

·應(yīng)用句法變換,比如主動(dòng)語(yǔ)態(tài)與被動(dòng)語(yǔ)態(tài)的轉(zhuǎn)換。

2.回譯 將原始文本翻譯成另一種語(yǔ)言,然后再翻譯回原始語(yǔ)言,以產(chǎn)生語(yǔ)義相同但表達(dá)方式不同的句子。

3.同義詞替換 在句子中隨機(jī)替換一些單詞為其同義詞,可以使用數(shù)據(jù)庫(kù)(WordNet)或預(yù)訓(xùn)練的詞嵌入來(lái)找到同義詞。

4.隨機(jī)插入、刪除和交換

·隨機(jī)插入句子中的單詞。

·隨機(jī)刪除句子中的單詞。

·隨機(jī)交換句子中的兩個(gè)單詞。

.

5.使用預(yù)訓(xùn)練的語(yǔ)言模型生成數(shù)據(jù) 利用GPT-3、BERT等大型預(yù)訓(xùn)練模型根據(jù)給定上下文生成新的句子或段落。

6.數(shù)據(jù)混合 將不同來(lái)源的數(shù)據(jù)混合,或者將數(shù)據(jù)集中的多個(gè)樣本混合,生成新的樣本。

7.對(duì)抗性訓(xùn)練 通過(guò)在輸入數(shù)據(jù)上添加小的擾動(dòng)來(lái)生成對(duì)抗樣本,以增強(qiáng)模型的魯棒性。

8.屬性控制生成 利用屬性(如情感、風(fēng)格、主題等)控制文本生成模型,生成具有特定屬性的數(shù)據(jù)。

9.使用外部知識(shí)庫(kù) 結(jié)合外部知識(shí)庫(kù)(如維基百科等)來(lái)擴(kuò)充原始數(shù)據(jù)。

10.自動(dòng)摘要和擴(kuò)展 對(duì)長(zhǎng)文本進(jìn)行自動(dòng)摘要,或?qū)Χ涛谋具M(jìn)行內(nèi)容擴(kuò)展。 在進(jìn)行數(shù)據(jù)增強(qiáng)時(shí),需要注意以下幾點(diǎn):

·數(shù)據(jù)質(zhì)量:增強(qiáng)后的數(shù)據(jù)需要保持高質(zhì)量,避免引入錯(cuò)誤或噪聲。

·多樣性:增強(qiáng)方法應(yīng)增加數(shù)據(jù)的多樣性,但不要偏離原始數(shù)據(jù)的分布。

·領(lǐng)域適應(yīng)性:確保增強(qiáng)的數(shù)據(jù)與目標(biāo)任務(wù)的領(lǐng)域和特點(diǎn)相匹配。

·平衡性:在分類任務(wù)中,要避免數(shù)據(jù)增強(qiáng)導(dǎo)致類別不平衡。 對(duì)于LLM,數(shù)據(jù)增強(qiáng)不僅可以提高模型的性能,還可以幫助模型更好地泛化到未見過(guò)的數(shù)據(jù)上,從而在實(shí)際應(yīng)用中更加可靠和有效。7.2.4LLM分詞器在NLP中,tokenizer(分詞器)是一個(gè)非常重要的工具,它的主要作用是將文本字符串分割成一系列單詞或詞匯單元(tokens),這些tokens可以是單詞、短語(yǔ)、標(biāo)點(diǎn)符號(hào)或其他元素。Tokenizer既可以是軟件工具,也可以是嵌入在軟件庫(kù)或框架中的一個(gè)功能模塊。它是一個(gè)用于文本處理的工具,可以在不同的軟件環(huán)境和編程語(yǔ)言中實(shí)現(xiàn)和使用。

1.tokenizer的關(guān)鍵點(diǎn) (1)基本功能

·切分文本:將連續(xù)的文本分割成獨(dú)立的token。

·標(biāo)準(zhǔn)化:例如,將所有文本轉(zhuǎn)換為小寫,去除標(biāo)點(diǎn)符號(hào)等。

·詞匯化:將變體的詞匯形式(如復(fù)數(shù)形式、時(shí)態(tài)變化)映射回基本形式。 (2)類型

·基于空格的tokenizer:簡(jiǎn)單地基于空格來(lái)分割文本,這對(duì)于空格分隔的語(yǔ)言(如英語(yǔ))比較有效。

·基于規(guī)則的tokenizer:使用預(yù)定義的規(guī)則來(lái)分割文本,適用于有明確分詞規(guī)則的語(yǔ)言。

·基于統(tǒng)計(jì)的tokenizer:通過(guò)統(tǒng)計(jì)方法學(xué)習(xí)文本中的分詞模式,對(duì)語(yǔ)言中的復(fù)雜分詞情況更為有效。.

·子詞tokenizer:如BytePairEncoding(BPE)、WordPiece等,它們可以將單詞分解成更小的單元,以處理大量未知詞匯或變形詞。 (3)應(yīng)用

·文本分析:為文本分析提供結(jié)構(gòu)化的輸入。

·機(jī)器學(xué)習(xí):在構(gòu)建機(jī)器學(xué)習(xí)模型時(shí),tokenizer用于將文本數(shù)據(jù)轉(zhuǎn)換為模型可以理解的格式。

·搜索引擎:在索引和查詢處理中,tokenizer幫助理解查詢意圖和文檔內(nèi)容。 (4)處理中文的Tokenizer對(duì)于中文處理,傳統(tǒng)的英文Tokenizer不適用,因?yàn)橹形奈谋静皇峭ㄟ^(guò)空格來(lái)分隔單詞的。以下是一些能夠處理中文的Tokeniz。er:在中文處理中的特殊性是中文沒(méi)有明顯的單詞邊界,因此分詞比空格分隔的語(yǔ)言更為復(fù)雜。常用的中文分詞工具有jieba、HanLP等,它們可以使用基于規(guī)則、統(tǒng)計(jì)或深度學(xué)習(xí)的方法來(lái)分詞。·jieba:這是一個(gè)廣泛使用的中文分詞Python庫(kù),它支持多種分詞模式,包括基于字典的最短路徑分詞、全模式分詞和搜索引擎模式分詞?!anLP:這是一個(gè)面向自然語(yǔ)言處理的Java庫(kù),提供了中文分詞、詞性標(biāo)注和命名實(shí)體識(shí)別等功能。·PKUSeg:這是基于北京大學(xué)開發(fā)的一個(gè)中文分詞工具,它也提供了Python接口。·THULAC:由清華大學(xué)自然語(yǔ)言處理與社會(huì)人文計(jì)算實(shí)驗(yàn)室開發(fā)的一個(gè)高效的中文詞法分析工具包,同樣適用于中文分詞。

.

(5)與模型的結(jié)合 在現(xiàn)代NLP框架中,如TensorFlow和PyTorch,tokenizer通常與特定的預(yù)訓(xùn)練模型結(jié)合使用,確保輸入數(shù)據(jù)的格式與模型訓(xùn)練時(shí)使用的格式一致。正確選擇和使用tokenizer對(duì)于后續(xù)的NLP任務(wù)(如文本分類、情感分析、機(jī)器翻譯等)的性能有著決定性的影響。

2.tokenizer在LLM中的作用與位置 在LLM架構(gòu)中,通常tokenizer不被視為模型的一部分,而是模型輸入和輸出處理流程中的一個(gè)關(guān)鍵組件。Tokenizer的作用是將原始文本數(shù)據(jù)轉(zhuǎn)換成模型可以理解和處理的格式。tokenizer在LLM中的作用和位置如下。 ①輸入處理:在模型的輸入端,tokenizer負(fù)責(zé)將原始文本(如句子或段落)轉(zhuǎn)換成模型能夠處理的數(shù)字表示形式。這通常涉及以下步驟:

·分詞:將文本拆分成基本的單元(如單詞、子詞或字符)。

·編碼:將這些單元映射到一個(gè)預(yù)定義的詞匯表中的索引。

·添加特殊標(biāo)記:插入開始和結(jié)束標(biāo)記,以及用于序列填充和標(biāo)記化的特殊標(biāo)記。 ②模型交互:Tokenizer生成的數(shù)字表示(通常是整數(shù)序列)隨后被送入LLM進(jìn)行進(jìn)一步的處理和預(yù)測(cè)。 ③輸出處理:在模型的輸出端,tokenizer不直接參與,但生成的文本輸出可能會(huì)再次通過(guò)tokenizer進(jìn)行解碼,以便于理解和分析。

tokenizer位于LLM的輸入處理階段,是文本數(shù)據(jù)與模型之間的橋梁。它不屬于LLM的核心架構(gòu)(如多層Transformer結(jié)構(gòu)),但它是整個(gè)LLM系統(tǒng)中不可缺的一部分,對(duì)于模型的性能和功能有著重要影響。

.

tokenizer經(jīng)常使用下述的三種算法字節(jié)對(duì)編碼、詞段算法和句子片算法。

3.字節(jié)對(duì)編碼

GPT-2和GPT-3等大型語(yǔ)言模型就使用了BPE來(lái)處理輸入文本。通過(guò)使用BPE,這些模型能夠處理包含數(shù)百萬(wàn)個(gè)詞匯的龐大詞匯表,同時(shí)保持模型的大小和計(jì)算效率。字節(jié)對(duì)編碼(BytePairEncoding,BPE)可以提高詞匯表的效率。 (1)優(yōu)點(diǎn)

·處理未登錄詞:BPE能夠有效地處理新詞和稀有詞匯,這在處理大型文本語(yǔ)料庫(kù)時(shí)特別有用。

·減少詞匯表大?。和ㄟ^(guò)合并常見字符序列,BPE可以顯著減少詞匯表的大小,從而降低模型的復(fù)雜性。

·支持多種語(yǔ)言:BPE不依賴于特定的語(yǔ)言,因此它可以用于處理多種語(yǔ)言的文本。 (2)缺點(diǎn)

·需要大量數(shù)據(jù):為了構(gòu)建一個(gè)有效的詞匯表,BPE需要大量的訓(xùn)練數(shù)據(jù)。

·分詞歧義:在某些情況下,BPE可能會(huì)產(chǎn)生歧義,因?yàn)樗皇腔谡Z(yǔ)言規(guī)則來(lái)分詞。BPE在NLP領(lǐng)域的應(yīng)用非常廣泛,特別是在機(jī)器翻譯、語(yǔ)言模型訓(xùn)練和文本生成等領(lǐng)域 (3)字節(jié)對(duì)編碼的工作流程 字節(jié)對(duì)編碼(BytePairEncoding,BPE)構(gòu)建詞表的基本工作流程如下。

.

①準(zhǔn)備足夠的訓(xùn)練預(yù)料以及期望的詞表大小。②將單詞拆分為字符粒度(字粒度),并在末尾添加后綴</w>,統(tǒng)計(jì)單詞頻率。③合并方式:統(tǒng)計(jì)每一個(gè)連續(xù)/相鄰字節(jié)對(duì)的出現(xiàn)頻率,將最高頻的連續(xù)字節(jié)對(duì)合并為新的字詞。④重復(fù)第③步,直到詞表達(dá)到設(shè)定的詞大小,或下一個(gè)最高頻字節(jié)對(duì)出現(xiàn)頻率為1。 字節(jié)對(duì)編碼是一種簡(jiǎn)單的數(shù)據(jù)壓縮算法,它通過(guò)合并常見字節(jié)對(duì)來(lái)構(gòu)建一個(gè)動(dòng)態(tài)的詞匯表。在NLP領(lǐng)域,BPE作為一種高效的分詞方法,能夠?qū)⑽谋痉指畛勺釉~單元,這些子詞單元可以是單個(gè)字符、完整的單詞或者更長(zhǎng)的字符串。 為了理解,將通過(guò)一個(gè)簡(jiǎn)化的例子來(lái)展示BPE如何從一個(gè)簡(jiǎn)單的詞匯表開始,通過(guò)合并最常見的字節(jié)對(duì)來(lái)逐步構(gòu)建一個(gè)更復(fù)雜的詞匯表。7.2.5LLM數(shù)據(jù)預(yù)處理在訓(xùn)練大型語(yǔ)言模型(LLMs)之前,數(shù)據(jù)預(yù)處理是一個(gè)至關(guān)重要的步驟。良好的數(shù)據(jù)預(yù)處理能夠提高數(shù)據(jù)集的質(zhì)量和性能。

1.LLM數(shù)據(jù)預(yù)處理的步驟 (1)數(shù)據(jù)收集

·從多個(gè)來(lái)源收集大量的文本數(shù)據(jù),確保數(shù)據(jù)多樣性。

·使用爬蟲工具或公開可用的數(shù)據(jù)集。 (2)數(shù)據(jù)清洗

·去除無(wú)關(guān)內(nèi)容:刪除廣告、HTML標(biāo)簽、非文本元素等。

·修正錯(cuò)誤:修正拼寫錯(cuò)誤、語(yǔ)法錯(cuò)誤等。

·過(guò)濾噪聲:去除無(wú)關(guān)的符號(hào)、表情、多余的空格等。

·統(tǒng)一格式:統(tǒng)一文本的格式,如日期、數(shù)字的表示方式。 (3)文本標(biāo)準(zhǔn)化

·小寫轉(zhuǎn)換:將所有文本轉(zhuǎn)換為小寫,以減少詞匯的多樣性。

·分詞:根據(jù)特定的語(yǔ)言規(guī)則進(jìn)行分詞,對(duì)于中文等沒(méi)有明確空格分隔的語(yǔ)言尤其重要。

·詞干提?。簩⒃~語(yǔ)還原為詞干形式,減少詞匯的多樣性。

.·詞性標(biāo)注:對(duì)文本進(jìn)行詞性標(biāo)注,有助于后續(xù)處理。 (4)去除停用詞 刪除高頻但信息量低的詞語(yǔ),如“的”、“和”、“是”等。 (5)文本分割 將文本分割成更小的單元,如句子、段落或固定長(zhǎng)度的片段。 (6)構(gòu)建詞匯表

·從文本中構(gòu)建一個(gè)詞匯表,并為每個(gè)詞分配一個(gè)唯一的索引。

·確定詞匯表的大小,處理稀有詞匯,例如使用UNK(未知詞)標(biāo)記。 (7)序列化 將文本轉(zhuǎn)換為模型可以理解的序列格式,通常是數(shù)字序列。 (8)填充和截?cái)?對(duì)于不同長(zhǎng)度的文本,進(jìn)行填充(padding)或截?cái)啵╰runcation)以統(tǒng)一長(zhǎng)度。 (9)批處理 將數(shù)據(jù)組織成批處理形式,以便于模型的并行處理。 (10)數(shù)據(jù)增強(qiáng) 應(yīng)用前面提到的數(shù)據(jù)增強(qiáng)技術(shù),如回譯、同義詞替換等,以增加數(shù)據(jù)的多樣性和模型的泛化能力。 (11)去重 刪除重復(fù)的文本,避免模型學(xué)習(xí)到重復(fù)的信息。

.

(12)平衡數(shù)據(jù)集 如果是分類任務(wù),確保每個(gè)類別的樣本數(shù)量大致相等。 (13)數(shù)據(jù)驗(yàn)證 在預(yù)處理完成后,驗(yàn)證數(shù)據(jù)的質(zhì)量和格式是否正確。上述的數(shù)據(jù)預(yù)處理的具體步驟會(huì)根據(jù)不同的模型架構(gòu)、訓(xùn)練目標(biāo)和可用資源進(jìn)行調(diào)整。良好的數(shù)據(jù)預(yù)處理可以顯著提高模型訓(xùn)練的效率和最終性能。

2.數(shù)據(jù)清洗(1)數(shù)據(jù)清洗的過(guò)程與模型數(shù)據(jù)清洗的基本過(guò)程如圖7-9所示,主要步驟如下:1.數(shù)據(jù)分析:在數(shù)據(jù)清洗之前,對(duì)數(shù)據(jù)進(jìn)行分析,對(duì)數(shù)據(jù)的質(zhì)量問(wèn)題有更為詳細(xì)的了解,從而更好地選擇方法,設(shè)計(jì)清洗方案。2.定義清洗規(guī)則:通過(guò)數(shù)據(jù)分析,掌握了數(shù)據(jù)質(zhì)量的信息后,針對(duì)各類問(wèn)題制定清洗規(guī)則,如對(duì)缺失數(shù)據(jù)進(jìn)行選擇填補(bǔ)策略。3.規(guī)則驗(yàn)證:檢驗(yàn)清洗規(guī)則的效率和準(zhǔn)確性。在數(shù)據(jù)源中隨機(jī)選取一定數(shù)量的樣本進(jìn)行驗(yàn)證。4.清洗驗(yàn)證:當(dāng)不滿足清洗要求時(shí)要對(duì)清洗規(guī)則進(jìn)行調(diào)整和改進(jìn)。真正的數(shù)據(jù)清洗過(guò)程中需要多次迭代進(jìn)行分析,設(shè)計(jì)和驗(yàn)證,直到獲得滿意的清洗規(guī)則。清洗規(guī)則的質(zhì)量決定了數(shù)據(jù)清洗的效率和質(zhì)量。.5.清洗數(shù)據(jù)中存在的錯(cuò)誤:執(zhí)行清洗方案,對(duì)數(shù)據(jù)源中的各類問(wèn)題進(jìn)行清洗操作。6.干凈數(shù)據(jù)的回流:執(zhí)行清洗方案后,將清洗后符合要求的數(shù)據(jù)回流到數(shù)據(jù)源中。圖7-9數(shù)據(jù)清洗過(guò)程.(2)不完整數(shù)據(jù)清洗不完整數(shù)據(jù)的清洗是指對(duì)缺失值的填補(bǔ),準(zhǔn)確填補(bǔ)缺失值與填補(bǔ)算法密切相關(guān),在這里,介紹常用的不完整數(shù)據(jù)的清洗方法。①刪除法刪除法是指當(dāng)缺失數(shù)據(jù)的觀測(cè)比例非常低時(shí)(如5%以內(nèi)),直接刪除存在缺失的數(shù)據(jù),或者當(dāng)某些變量的缺失觀測(cè)比例非常高時(shí)(如85%以上),直接刪除這些缺失的變量。

②替換法替換法是指用某種常數(shù)直接替換那些缺失值,例如,對(duì)連續(xù)變量而言,可以使用均值或中位數(shù)替換,對(duì)于離散變量,可以使用眾數(shù)替換。

③插補(bǔ)法插補(bǔ)法是指根據(jù)其他非缺失的變量來(lái)預(yù)測(cè)缺失值,常見的插補(bǔ)法有回歸插補(bǔ)法、K近鄰插補(bǔ)法、拉格朗日插補(bǔ)法等。(3)異常數(shù)據(jù)清洗

處理異常值常用的方法

①刪除異常值:明顯看出是異常且數(shù)量較少可以直接刪除。 ②不處理:如果算法對(duì)異常值不敏感則可以不處理,但如果算法對(duì)異常值敏感,則不要用基于距離計(jì)算的一些算法。 ③平均值替代:損失信息小,簡(jiǎn)單高效。

④視為缺失值:可以按照處理缺失值的方法來(lái)處理。

.(4)重復(fù)數(shù)據(jù)清洗重復(fù)數(shù)據(jù)清洗又稱為數(shù)據(jù)去重。通過(guò)數(shù)據(jù)去重可以減少重復(fù)數(shù)據(jù),提高數(shù)據(jù)質(zhì)量。重復(fù)的數(shù)據(jù)是冗余數(shù)據(jù),對(duì)于這一類數(shù)據(jù)應(yīng)刪除其冗余部分。數(shù)據(jù)清洗是一個(gè)反復(fù)的過(guò)程,只有不斷地發(fā)現(xiàn)問(wèn)題,解決問(wèn)題才能完成數(shù)據(jù)去重。去重是指在不同的時(shí)間維度內(nèi),重復(fù)一個(gè)行為產(chǎn)生的數(shù)據(jù)只計(jì)入一次。按時(shí)間維度去重主要分為按小時(shí)去重、按日去重、按周去重、按月去重或按自選時(shí)間段去重等。例如,來(lái)客訪問(wèn)次數(shù)的去重,同一個(gè)訪客在所選時(shí)間段內(nèi)產(chǎn)生多次訪問(wèn),只記錄該訪客的一次訪問(wèn)行為,來(lái)客訪問(wèn)次數(shù)僅記錄為1。如果選擇的時(shí)間維度為按天,則同一個(gè)訪客在當(dāng)日內(nèi)產(chǎn)生的多次訪問(wèn),來(lái)客訪問(wèn)次數(shù)也僅記錄為1。①使用字段相似度識(shí)別重復(fù)值算法。②面對(duì)以億計(jì)出現(xiàn)的網(wǎng)頁(yè),去重處理頁(yè)面方法采用了特征抽取、文檔指紋生成和文檔相似性計(jì)算,其中Shingling算法和SinHash算法是兩個(gè)常用的頁(yè)面查重算法。③文本去重Simhash算法。7.3詞向量詞向量是將單詞映射到連續(xù)的向量空間中,使每個(gè)單詞都可以用一個(gè)固定長(zhǎng)度的向量來(lái)表示。詞向量的目的是捕捉單詞的語(yǔ)義和句法信息,使機(jī)器能夠通過(guò)詞向量的運(yùn)算來(lái)理解和處理自然語(yǔ)言。7.3.1自然語(yǔ)言表示學(xué)習(xí)自然語(yǔ)言表示學(xué)習(xí)就是將人類的語(yǔ)言表示成更易于計(jì)算機(jī)理解的方式。尤其是在深度神經(jīng)網(wǎng)絡(luò)技術(shù)興起之后,如何在網(wǎng)絡(luò)的輸入層使用更好的自然語(yǔ)言表示成了值得關(guān)注的問(wèn)題。例如,每個(gè)人的名字就是作為自然人的一個(gè)表示,名字可以是若干個(gè)漢字,也可以是其他語(yǔ)言的單詞。當(dāng)然,也可以通過(guò)一些方法表示成由0和1組成的字符串,或者轉(zhuǎn)換為一定長(zhǎng)度的向量,使計(jì)算機(jī)更容易處理。自然語(yǔ)言表示學(xué)習(xí)的發(fā)展歷程如圖7-10所示。.

1.最早期的n-gram模型是基于統(tǒng)計(jì)的語(yǔ)言模型,通過(guò)前n個(gè)詞來(lái)預(yù)測(cè)第n+1個(gè)詞。在20世紀(jì)50年代提出的分布式理論是近10年,自然語(yǔ)言表示的基礎(chǔ)思想。

2.早期的詞袋模型,雖然能夠方便計(jì)算機(jī)快速處理,卻無(wú)法衡量單詞間的語(yǔ)義相似度。

3.到了1986年,分布式表示被提出。分布式理論的核心思想是:上下文相似的詞,其語(yǔ)義也相似,是一種統(tǒng)計(jì)意義上的分布;而在分布式表示中,并沒(méi)有統(tǒng)計(jì)意義上的分布。分布式表示是指文本的一種表示方式。相比于獨(dú)熱編碼表示,分布式表示是將文本在更低的維度進(jìn)行表示。隨著word2vec和GloVe等基于分布式表示的方法被提出,判斷語(yǔ)義的相似度成為可能。

4.在2013

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論