【導(dǎo)讀】在當(dāng)今人工智能領(lǐng)域,AI?模型以卓越的語言理解和生成能力重塑了我們對智能交互的認(rèn)知。然而,在其卓越表現(xiàn)的背后,隱藏著諸多尚未充分挖掘的關(guān)鍵因素。本文將分享大語言模型訓(xùn)練過程中產(chǎn)生的多種獨(dú)特現(xiàn)象,推導(dǎo)在二階段預(yù)訓(xùn)練時(shí)如何巧妙平衡數(shù)據(jù)量與背景知識(shí)的注入,從理論與實(shí)踐的角度揭示其內(nèi)在運(yùn)作機(jī)制,深入剖析語言核心區(qū)與維度依賴?yán)碚摰淖饔眉捌鋷淼纳羁逃绊憽?/p>
本文整理自復(fù)旦大學(xué)教授、博士生導(dǎo)師、MOSS 大模型核心人員張奇在?2023 全球機(jī)器學(xué)習(xí)大會(huì)中的演講,同時(shí)收錄于《新程序員?007:大模型時(shí)代的開發(fā)者》,《新程序員 007》聚焦開發(fā)者成長,其間既有圖靈獎(jiǎng)得主 Joseph Sifakis、前 OpenAI 科學(xué)家 Joel Lehman 等高瞻遠(yuǎn)矚,又有對于開發(fā)者們至關(guān)重要的成長路徑、工程實(shí)踐及趟坑經(jīng)驗(yàn)等。
作者 | 張奇
自然語言處理領(lǐng)域存在著一個(gè)非常有趣的現(xiàn)象:在多語言模型中,不同的語言之間似乎存在著一種隱含的對齊關(guān)系。復(fù)旦?NLP?團(tuán)隊(duì)在早期便開始做了一些相關(guān)的工作,于?2022?年發(fā)布了一篇關(guān)于?Multilingual BERT?的分析[1],隨后團(tuán)隊(duì)持續(xù)進(jìn)行對大語言模型內(nèi)語言對齊機(jī)制、語言與知識(shí)結(jié)構(gòu)之間內(nèi)在聯(lián)系的深入研究,并在?AAAI 2024?提交了一份研究報(bào)告,提出了關(guān)于大語言模型中語言對齊部分的若干猜想?;谶@些研究成果,本文將分享一些大語言模型中語言和知識(shí)分離的現(xiàn)象。
現(xiàn)象 1:mBERT 模型的跨語言遷移
2022 年開始,我們發(fā)現(xiàn) Multilingual BERT 是一個(gè)經(jīng)過大規(guī)模跨語言訓(xùn)練驗(yàn)證的模型實(shí)例,其展示出了優(yōu)異的跨語言遷移能力。具體表現(xiàn)為,該模型能夠在某單一語言環(huán)境下訓(xùn)練完成一個(gè)部分后,可以非常容易地成功遷移到其他語言環(huán)境中執(zhí)行任務(wù)。這一現(xiàn)象不禁令人思考:模型中是否存在某種特定的部分?為了探索這種多語言對齊的現(xiàn)象,研究采用了 Prompt 搜索方法對模型逐層分析(見圖 1),針對每種語言的每一層網(wǎng)絡(luò)及各個(gè)?head(全稱?attention-head,BERT?的基本組成模塊)單元進(jìn)行了細(xì)致研究,旨在考察它們對語法分類任務(wù)的執(zhí)行能力。
圖 1?mBERT 不同層恢復(fù)各類語言語法關(guān)系的準(zhǔn)確性
在針對多語言樣本的測試中,我們選取了每種語言不同層次的部分 head 進(jìn)行測試,評估它們在語法關(guān)系預(yù)測任務(wù)上的表現(xiàn)。實(shí)驗(yàn)結(jié)果顯示了一個(gè)較為顯著的現(xiàn)象:在大規(guī)模預(yù)訓(xùn)練過程中,即使未注入任何顯式的語法先驗(yàn)知識(shí),模型依然能夠在語法結(jié)構(gòu)層面展現(xiàn)出良好的對齊特性,并能在不同層次間保持一定的精度一致性。這一趨勢在大多數(shù)語言中尤為突出,但在某些特殊或較少使用的語言中則不甚明顯。
通過對多種不同語法現(xiàn)象的預(yù)測比較,研究著重對比了英語與西班牙語、英語與日語之間的差異。在第 7 層網(wǎng)絡(luò)的語法關(guān)系可視化中,數(shù)據(jù)顯示親緣性較高的語言,其預(yù)測位置更為接近且分布趨于均勻。而像英語與日語這樣差異較大的語言,部分語法成分的預(yù)測位置相對集中(見圖 2),未能有效區(qū)分開來。
圖 2?mBERT 第 7 層的不同語法關(guān)系表示的可視化
接下來我們發(fā)現(xiàn)了更為不尋常的現(xiàn)象:當(dāng)針對特定任務(wù)對模型進(jìn)行微調(diào)(Fine-tune)時(shí),比如運(yùn)用 Multilingual BERT 進(jìn)行任務(wù)傾向性分析或命名實(shí)體識(shí)別等任務(wù)的微調(diào)后,模型在處理語法成分的對齊關(guān)系及區(qū)分邊界的表現(xiàn)會(huì)得到顯著提升(見圖 3)。
圖 3 在進(jìn)行任務(wù) Fine-Tune 之后,聚合對齊更加明顯
在未經(jīng)微調(diào)的原始模型中,其內(nèi)部蘊(yùn)含了大量的語法預(yù)測信息,這些預(yù)測主要聚集在模型的中間層級(jí),混合度比較高。但在執(zhí)行相應(yīng)的任務(wù)預(yù)測微調(diào)之后,這些預(yù)測分布會(huì)變得更為清晰、更具獨(dú)立性?;谶@一現(xiàn)象,可以合理推測 Multilingual BERT 模型上用單一語言微調(diào)特定任務(wù)后,其學(xué)習(xí)到的能力能夠快速遷移到其他語言的原因。
現(xiàn)象 2:大語言模型同樣存在顯著的語言對齊
鑒于我們已經(jīng)在上述 2022 年的研究中做了相關(guān)工作,并揭示了 Multilingual BERT 中的語言對齊現(xiàn)象,那么在大語言模型上面,除了 decoder-only 結(jié)構(gòu)的設(shè)計(jì)改進(jìn)外,剩下的就是模型的寬度和深度拓展。此現(xiàn)象在 Multilingual BERT 中的存在,自然引起了我們對大語言模型內(nèi)部語言對齊和語法-語義對齊特性的探究。
為了更深入地解釋這一問題,我們首先在?2023?年?EMNLP?發(fā)表了一篇論文[2],不僅在原始 Multilingual BERT 上進(jìn)行了相應(yīng)的分析工作,還在 LLaMa 模型上復(fù)現(xiàn)了這一現(xiàn)象。研究采用了一系列額外的語言評價(jià)指標(biāo),諸如 RSA 等,以期望獲得更全面和準(zhǔn)確的結(jié)論。研究結(jié)果表明,該現(xiàn)象在大語言模型上面與 Multilingual BERT 非常類似(見圖?4)。若按照先前提出的分層邏輯,模型在語法層面展現(xiàn)出明顯的對齊性,這與我們早期的研究結(jié)果高度一致。
圖 4?語言直接在句法關(guān)系上具有很強(qiáng)的對齊性
其次,我們探索了將 Multilingual BERT 上的遷移工作應(yīng)用到更大規(guī)模的語言模型上。具體來說,我們在詞性標(biāo)注任務(wù)(POS tag, Parts-of-speech tagging)上設(shè)計(jì)了一種特殊的方法(見圖 5)。在面對單個(gè)語言的小規(guī)模數(shù)據(jù)集時(shí),我們選取了若干位置,無須任何標(biāo)注數(shù)據(jù),直接使用 Multilingual BERT 的遷移方式,從而在多語言環(huán)境中獲得了優(yōu)秀的標(biāo)注效果。舉例來說,即使缺乏阿拉伯語的標(biāo)注數(shù)據(jù)集,僅擁有英語和法語的數(shù)據(jù)集,也能成功地遷移到其他語言環(huán)境。
圖?5?詞性標(biāo)注任務(wù),可以通過跨語言訓(xùn)練得到非常高的結(jié)果
所以,在大語言模型當(dāng)中也依然存在這種語言對齊現(xiàn)象。模型已成功實(shí)現(xiàn)了詞形(單詞形式,word form)與中間層語義表示、語法表示之間的轉(zhuǎn)換,脫離了原有的詞形,這一轉(zhuǎn)換使得模型能夠去處理別的任務(wù)。
通過前面的分析和工作,我們得出結(jié)論,大語言模型在多語言預(yù)訓(xùn)練階段確實(shí)有效地實(shí)現(xiàn)了不同語言間語義層面上的對齊。我們認(rèn)為,相較于可能不太重要的形式層面,語義層面的一致性可能是關(guān)鍵所在。一旦語義層面實(shí)現(xiàn)統(tǒng)一,理論上可以直接應(yīng)對多種相關(guān)的下游任務(wù)。為了驗(yàn)證這一猜想,我們進(jìn)一步開展了一系列研究工作。
現(xiàn)象 3:知識(shí)與語言分離
以下是我們投稿至?AAAI 2024?的論文[3]。假設(shè)語義層面已經(jīng)實(shí)現(xiàn)了很好的對齊,那么詞匯形式的具體表達(dá)的重要性便會(huì)相應(yīng)大幅削弱。為此,我們深入探究了如何從?LLaMa?模型出發(fā),將其語言能力遷移至其他小型語種的過程中,即便面對詞形的變化,模型內(nèi)部已經(jīng)具備一層進(jìn)行語義轉(zhuǎn)換的能力。
從以英語為主的訓(xùn)練語言轉(zhuǎn)向中文或任何其他語言時(shí),實(shí)際上的轉(zhuǎn)換需求就僅限于形式上的改變。通常,將 LLaMA 擴(kuò)展為小語言需要經(jīng)歷三步(見圖?6):第一步是詞表擴(kuò)展(Vocabulary Extension);第二步是繼續(xù)預(yù)訓(xùn)練(Further Pre-training);第三步是任務(wù)添加,所以需要使用 SFT(Supervised Fine-Tuning)數(shù)據(jù)。
圖?6?將英文 LLaMA 擴(kuò)展為其他語言
為了更清晰地理解這一過程,我們將其分解為三種形式進(jìn)行觀察。第一種形式是完全不改動(dòng)詞表,直接進(jìn)行繼續(xù)預(yù)訓(xùn)練和指令微調(diào)。第二種形式只進(jìn)行詞表擴(kuò)展,而不進(jìn)行其他操作。第三種形式則完全省略前兩步,直接使用大量的 SFT 數(shù)據(jù)進(jìn)行訓(xùn)練。
基于這些設(shè)定,我們進(jìn)行了對比實(shí)驗(yàn)。首先,直接使用 LLaMA 或 LLaMA 2 進(jìn)行 SFT 訓(xùn)練,觀察使用經(jīng)過詞料擴(kuò)展和大規(guī)模負(fù)責(zé)培訓(xùn)后的效果,例如 Chinese LLaMA、Chinese LLaMA 2 和我們實(shí)驗(yàn)室開源的 Open Chinese LLaMA(經(jīng)過 200b 數(shù)據(jù)訓(xùn)練)。此外,我們還測試了不進(jìn)行詞表擴(kuò)展,直接使用 100k 和 1m 數(shù)據(jù)對中文語料進(jìn)行 SFT 訓(xùn)練的情況。
由于評測的目的是模型生成能力,所以我們使用了能提供生成式問答題目的 LLMEVAL 評測方式,基于模型生成數(shù)據(jù)的正確性、信息量、流暢性、邏輯性等部分,分別用 GPT-4 進(jìn)行打分,結(jié)果如下(見圖 7)。
圖?7?Token 擴(kuò)展會(huì)導(dǎo)致原始信息丟失,需要大量訓(xùn)練才能恢復(fù)
因此,以 Chinese LLaMA 為例,恢復(fù)信息需要達(dá)到 200 倍以上的二次預(yù)訓(xùn)練數(shù)據(jù),這會(huì)大幅增加訓(xùn)練成本。如果使用需求是讓 token 的生成速度變快,我們認(rèn)為依舊可以擴(kuò)展詞表。反之,若對生成速度沒有特別大的需求,如 LLaMA 根據(jù) UTF-8 編碼生成可能需要 2 ~ 3 個(gè) token 才能產(chǎn)生一個(gè)漢字,在只追求生成質(zhì)量的情況下,直接進(jìn)行大量中文的 SFT 數(shù)據(jù)訓(xùn)練,就已經(jīng)可以實(shí)現(xiàn)非常好的處理效果。也就是說,詞形和語義在語言層面已經(jīng)進(jìn)行了分離,提供其中文能力并不需要特別大量的數(shù)據(jù)訓(xùn)練。在 SFT 非常少量時(shí),大規(guī)模的二次預(yù)訓(xùn)練可以加快模型對于指令的響應(yīng)學(xué)習(xí),但當(dāng) SFT 數(shù)據(jù)量擴(kuò)展到 950k 之后,再去增加中文的二次預(yù)訓(xùn)練數(shù)據(jù)其實(shí)并沒有什么特別的意義,例如在 950k SFT 的情況下,LLaMA 對比經(jīng)過 1M 中文二次預(yù)訓(xùn)練的 LLaMA 模型,效果并沒有大幅度的變化。
這也是我們之后在語言解釋工作上的基礎(chǔ):語言的詞形消失,知識(shí)和語言被分離,加入少量的中文數(shù)據(jù)無法在知識(shí)層面提升模型能力?;谶@種思考,我們開始了新的評測(見圖 8),其中藍(lán)色的部分是 LLaMA-7b 模型,粉紅色的部分是 LLaMA-2-7B 模型,綠色的部分是 LLaMA-13B 模型。我們希望借此看看,在經(jīng)過大量的訓(xùn)練之后,模型的知識(shí)層面會(huì)產(chǎn)生哪些變化。
圖?8?使用中文進(jìn)行二次預(yù)訓(xùn)練并不能在知識(shí)層面提升模型能力
在經(jīng)過 C-Eval、GAOKAO-Bench、MMLU 和 AGIEval 等基準(zhǔn)評測之后,觀察到大量未經(jīng)針對性優(yōu)化的預(yù)訓(xùn)練模型并未顯著提升其內(nèi)在的知識(shí)掌握程度,反而在某些情況下相較于原始 LLaMA 模型有所下滑。這主要是由于目前普遍采用的中文語料庫訓(xùn)練數(shù)據(jù)規(guī)模有限,進(jìn)而制約了模型在語言理解和生成方面的性能表現(xiàn),導(dǎo)致了此類評測結(jié)果的出現(xiàn)。因此,如何有效地開展針對中文環(huán)境的第二階段預(yù)訓(xùn)練亟需更多思考。單純依賴現(xiàn)有方法,并不能充分反映出模型在特定中文領(lǐng)域知識(shí)的進(jìn)步。值得注意的是,僅在現(xiàn)有的通用模型中融入少量涵蓋世界知識(shí)或是物理、化學(xué)、數(shù)學(xué)等領(lǐng)域?qū)I(yè)知識(shí)的中文數(shù)據(jù),是沒有太大意義的。
在其他語言中,我們也做了類似的工作(見圖 9)。研究選了十幾種語言,每種語言都用相應(yīng)的 SFT 數(shù)據(jù)進(jìn)行訓(xùn)練和測試,觀察發(fā)現(xiàn)數(shù)據(jù)達(dá)到一定量級(jí),如 65k SFT 之后,都處于相對可用的版本。但因?yàn)檫@些 SFT 數(shù)據(jù)有一部分是機(jī)器翻譯的,不如中文直接使用的效果。
圖?9?在其他低資源語言中表現(xiàn)類似
現(xiàn)象 4:語義和詞形對齊
訓(xùn)練過程中,我們發(fā)現(xiàn)了一些有趣的現(xiàn)象,也可以從一定程度上說明這種語義和詞形對齊的關(guān)系。例如,用 95k 的 SFT 對某些進(jìn)行訓(xùn)練,并將早前的一些 checkpoint(在訓(xùn)練過程中不同時(shí)間點(diǎn)保存的模型版本)打印出來,并詢問以下問題(見圖?10):
圖?10?訓(xùn)練過程中非常明顯的 Coding-Switch(語碼轉(zhuǎn)換)現(xiàn)象
模型在響應(yīng)查詢時(shí),輸出的部分內(nèi)容以紅色和藍(lán)色標(biāo)示。我們觀察到,模型能夠在保持語義連貫正確的前提下,自動(dòng)插入其他語言的詞匯,而且這些詞匯與前面的內(nèi)容銜接自然流暢,仿佛原本就應(yīng)該屬于同一句話。這就從某種程度上表明,模型在內(nèi)部實(shí)現(xiàn)了語義與詞形的解耦,即模型有能力在維持語義完整性的同時(shí),靈活處理不同語言的詞形表達(dá),引證了我們前文中的一些猜想。我們做了十幾種語言,每種語言都出現(xiàn)了一定比例的 Coding-Switch 現(xiàn)象,所以這并不僅僅是中文特有的個(gè)例。
現(xiàn)象 5:少量的數(shù)據(jù)就能影響整個(gè)大模型
基于上述發(fā)現(xiàn),我們開始深入思考。除了之前觀察到的這些現(xiàn)象之外,其實(shí)在大語言模型的訓(xùn)練過程當(dāng)中還有很多別的現(xiàn)象,比如“毛刺”(見圖?11),即“噪音”(Noise)。在進(jìn)行大規(guī)模預(yù)訓(xùn)練時(shí),我們自身也進(jìn)行了 30b 和 50b 參數(shù)級(jí)別的模型預(yù)訓(xùn)練,同樣發(fā)現(xiàn)了類似情況。每當(dāng)遇到這些噪音數(shù)據(jù),我們的解決辦法通常是回溯,回滾到出現(xiàn)問題的預(yù)訓(xùn)練階段,檢查那一階段的數(shù)據(jù)。多數(shù)情況下,我們發(fā)現(xiàn)是由預(yù)訓(xùn)練數(shù)據(jù)所引起的,這部分有問題的數(shù)據(jù)會(huì)導(dǎo)致模型的 PPL(perplexity)值急劇升高。
圖?11?“毛刺”
為何少量的數(shù)據(jù)會(huì)對如此大規(guī)模的模型造成如此嚴(yán)重的影響呢?OpenAI 和 Anthropic 在他們的論文[4][5]中均對此有所涉及,他們在研究 SFT 和預(yù)訓(xùn)練相關(guān)課題時(shí),大多得出類似的結(jié)論:模型進(jìn)行兩三輪的微調(diào)通常就已經(jīng)接近最優(yōu)狀態(tài),過多的訓(xùn)練輪次往往會(huì)導(dǎo)致模型性能下降。這一結(jié)論在我們自身的實(shí)驗(yàn)中均得到了印證。
在傳統(tǒng)訓(xùn)練流程中,我們可能對某部分?jǐn)?shù)據(jù)訓(xùn)練 30 輪或 50 輪,即便數(shù)據(jù)質(zhì)量不高,也只是導(dǎo)致這部分訓(xùn)練效果不佳。然而,在大語言模型上,當(dāng)我們引入少量 SFT 數(shù)據(jù)并進(jìn)行六輪甚至十輪微調(diào)時(shí),整個(gè)模型的能力卻可能會(huì)急劇下降,且在 SFT 數(shù)據(jù)上的表現(xiàn)也并未改善。這究竟是什么原因呢?這一系列疑問驅(qū)使我們?nèi)ヌ綄ど顚哟蔚拇鸢福偈刮覀冮_始想要打開黑盒,去對它做更進(jìn)一步的解釋和分析。
以前,想對人腦的認(rèn)知功能進(jìn)行深入分析是很難的,因?yàn)橹苯佑^測和測量人腦各區(qū)域的功能是不可行,同時(shí)現(xiàn)代倫理準(zhǔn)則也嚴(yán)格約束了對動(dòng)物(如猴子)進(jìn)行復(fù)雜神經(jīng)科學(xué)實(shí)驗(yàn)的可能性。例如,我看過一則關(guān)于剝奪猴子視覺社交刺激的研究引發(fā)爭議,因其可能對動(dòng)物造成不可逆的影響。
在人工智能領(lǐng)域,BERT 模型的出現(xiàn)雖然為語言處理帶來了重大突破,但其智能程度相對有限,且結(jié)構(gòu)和動(dòng)態(tài)行為相對易于分析。隨著大語言模型的發(fā)展,尤其是參數(shù)量龐大的預(yù)訓(xùn)練模型,它們展現(xiàn)了更高水平的智能表現(xiàn),同時(shí)也帶來了新的挑戰(zhàn)——模型的內(nèi)部工作機(jī)理更加復(fù)雜且難以直觀理解。那怎么辦呢?我覺得不能像電視劇里劉華強(qiáng)說的那樣,“給你機(jī)會(huì)還不中用”。既然有了機(jī)會(huì),我們還是得把握住。
大語言模型參數(shù)中記錄了知識(shí)有明顯的語言核心區(qū)
經(jīng)過先前的一系列分析,我們旨在探究這些現(xiàn)象如何具體表現(xiàn)在大型語言模型的參數(shù)結(jié)構(gòu)中,并從參數(shù)當(dāng)中研究出一些解釋和情況。過去半年以來,我們不停地實(shí)驗(yàn)就是圍繞這一目標(biāo)展開。在某種程度上,這與人腦的功能分區(qū)原理相似——人腦中有專門的語言區(qū)及核心區(qū),而在大語言模型中也可能存在著負(fù)責(zé)語言理解與知識(shí)表達(dá)的部分結(jié)構(gòu)?,F(xiàn)在有相當(dāng)一部分共識(shí),認(rèn)為一部分知識(shí)存儲(chǔ)和處理功能可能對應(yīng)于模型中的前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network, FFN)部分,尤其是其中的多層感知器(Multi-Layer Perceptron, MLP)組件。然而,目前我們的研究結(jié)果其實(shí)還比較初步,有些實(shí)驗(yàn)結(jié)論其實(shí)并不一定十分可靠。
研究中,我們認(rèn)為大模型中明顯存在著承載語言能力的核心區(qū)域。為什么會(huì)這么說?這一判斷基于如下實(shí)驗(yàn)設(shè)計(jì):首先,我們選取了六種語言,針對每種語言收集了約十萬條未曾出現(xiàn)在 LLaMA 原始訓(xùn)練集中的文本數(shù)據(jù),這些數(shù)據(jù)源自書籍并經(jīng)由轉(zhuǎn)換獲取,出現(xiàn)重疊的概率較低。接下來,我們利用這些數(shù)據(jù)對 LLaMA 模型進(jìn)行了二次預(yù)訓(xùn)練。
預(yù)訓(xùn)練完成后,我們對比了模型訓(xùn)練前后參數(shù)的變化情況,針對每種語言獨(dú)立進(jìn)行。首先對韓語進(jìn)行預(yù)訓(xùn)練并記錄參數(shù)變化,隨后依次對俄語、越南語等其余語言進(jìn)行相同操作。實(shí)驗(yàn)中,我們特別關(guān)注了權(quán)重變化最大的 1% 至 5% 的參數(shù)部分,因?yàn)橹庇X上人們通常認(rèn)為權(quán)重變化較大的區(qū)域更為重要。經(jīng)過四個(gè)月的研究,我們發(fā)現(xiàn)并非權(quán)重變化大的區(qū)域才最關(guān)鍵,相反,那些經(jīng)過大規(guī)模預(yù)訓(xùn)練后變化很小的參數(shù)區(qū)域才是模型的核心穩(wěn)定部分。
為驗(yàn)證這一點(diǎn),我們進(jìn)一步做了若干實(shí)驗(yàn)。我們發(fā)現(xiàn)有非常少數(shù)的參數(shù)在所有語言二次預(yù)訓(xùn)練中變化都很小(見圖 12),無論在哪一層、哪個(gè)矩陣,都有一個(gè)顯著的集中區(qū)域,其參數(shù)變化極其微小,在不同語言上的變化都非常有限。因此,我們將六種語言訓(xùn)練前后參數(shù)變化幅度累計(jì)起來,考察各個(gè)位置變化的綜合程度,并挑選出變化最小的?1%?至 5%?的參數(shù)。
圖?12?有非常少數(shù)的參數(shù)在所有語言二次預(yù)訓(xùn)練中變化都很小
把這部分參數(shù)拿出來之后,我們將這些變化極小的參數(shù)區(qū)域進(jìn)行擾動(dòng)實(shí)驗(yàn)。通過 7b 參數(shù)規(guī)模的模型,我們選取底層變化最小的 3%?參數(shù)進(jìn)行隨機(jī)化處理,然后觀察模型的 PPL 指標(biāo)(見圖?13)。實(shí)驗(yàn)結(jié)果顯示,當(dāng)擾動(dòng)這最小變化的 3% 參數(shù)時(shí),PPL 值會(huì)顯著上升;而如果我們從模型中隨意選取 3% 的參數(shù)進(jìn)行同樣的擾動(dòng),PPL 雖會(huì)下降,但下降幅度并不明顯。反之,如果我們對權(quán)重變化最大的那部分參數(shù)(同樣取 3%)進(jìn)行擾動(dòng),雖然 PPL 會(huì)比隨機(jī)擾動(dòng)稍高,但只要擾動(dòng)那些變化最小的核心區(qū)域,PPL 值就會(huì)劇烈上升。同樣,我們還嘗試了僅擾動(dòng) 1% 參數(shù)的情況,盡管變化幅度略有減小,但總體影響仍然較大,表現(xiàn)為幾千到幾萬的增量。
圖?13?擾動(dòng)核心區(qū)域在 130 種語言上 PPL 全都呈現(xiàn)爆炸趨勢
如果用 13b 參數(shù)的模型重復(fù)上述工作,得到的結(jié)論是完全一致的(見圖 14)。只要是變動(dòng)這個(gè)區(qū)域 3% 的部分,整個(gè)模型語言能力基本上就會(huì)完全喪失掉了。
圖?14?LLaMA2-7B 和 13B 現(xiàn)象完全一樣
語言能力區(qū)域非常重要,所以我們通過凍結(jié)它做了另一個(gè)實(shí)驗(yàn)(見圖 15)。實(shí)驗(yàn)中,我們首先鎖定了模型的語言核心區(qū)參數(shù),并用中文知乎數(shù)據(jù)對該模型進(jìn)行再訓(xùn)練。另一組對照實(shí)驗(yàn)則是不解凍核心區(qū)參數(shù)。通過在中文微信公眾號(hào)和英文 Falcon 數(shù)據(jù)集各選取 1 萬條樣本計(jì)算 PPL,我們發(fā)現(xiàn):若凍結(jié)語言核心區(qū)并用 5 萬條中文知乎數(shù)據(jù)進(jìn)行訓(xùn)練,模型的中文 PPL 可以恢復(fù)至約 7 左右,表明模型通過其他區(qū)域的參數(shù)補(bǔ)償了語言能力;但英文能力在這種條件下無法恢復(fù)到先前的爆炸趨勢中。
圖?15 模型具備一定的“代償”能力,可以使用中文數(shù)據(jù)訓(xùn)練以恢復(fù)中文能力
然而,如果僅擾亂而不凍結(jié)語言核心區(qū)參數(shù),僅通過中文知乎數(shù)據(jù)訓(xùn)練,無論是中文?PPL?還是英文?PPL?都能恢復(fù)至接近原始模型的良好狀態(tài)(見圖 16)。因此,語言核心區(qū)的參數(shù)至關(guān)重要,且對模型能力的影響呈現(xiàn)出平滑而敏感的特點(diǎn),只需幾千條數(shù)據(jù)即可相對容易地恢復(fù)其原有功能。然而,一旦該區(qū)域被鎖定,模型能力的恢復(fù)將變得困難,性能指標(biāo)會(huì)出現(xiàn)顯著變化。
圖?16 在語言區(qū)不鎖定的情況下,僅訓(xùn)練中文,英文也能恢復(fù)一定能力
觀察打印出的區(qū)域(見圖 17),可以發(fā)現(xiàn) QKVO 矩陣在維度上具有明顯的集中現(xiàn)象,即主要集中在一小部分維度上。
圖?17 QKVO矩陣都呈現(xiàn)維度集中現(xiàn)象
雖然?MLP?層沒有那么明顯的集中性,但在進(jìn)一步放大查看后,發(fā)現(xiàn)在某些列上也存在顯著的現(xiàn)象(見圖?18)。
圖?18 FFN-UP & Down某些維度上具有明顯的列聚集現(xiàn)象
例如,在最后一層的?mlp.down?這個(gè)區(qū)域里面,少量維度尤其集中(見圖?19)。
圖?19 維度集中現(xiàn)象明顯
基于此,我們進(jìn)一步分析,這種維度集中性與 Layer Norm(層歸一化,Layer normalization)中的單個(gè)維度擾動(dòng)在計(jì)算上等效,于是我們嘗試直接擾動(dòng) Layer Norm 中的單個(gè)維度。
實(shí)驗(yàn)結(jié)果顯示,在 LLaMA 2-13B 模型中,如果僅擾動(dòng)第一層的 input Layer Norm 2100 維度,將其隨機(jī)化,模型的 PPL 值會(huì)由 5.877 突升至 21.42;若將該值乘以 10,PPL 值則更劇烈地增加到為 3 億多(見圖 20)。這表明盡管其他 Layer Norm 參數(shù)在理論上同樣重要,但擾動(dòng)它們并不會(huì)導(dǎo)致如此嚴(yán)重的性能崩潰。然而,對于這些特定維度,即便是微小的改動(dòng)也會(huì)帶來顯著的性能變化。
圖?20 擾動(dòng)實(shí)驗(yàn)
為了直觀展示這種變化,我們用擾動(dòng)后的模型進(jìn)行句子補(bǔ)全任務(wù),輸入為“Fudan University is located in”(復(fù)旦大學(xué)位于……)。在正常狀態(tài)下,LLaMA2-13B 模型能夠輸出高質(zhì)量的結(jié)果,甚至可以處理中英混合,例如直接給出復(fù)旦大學(xué)官網(wǎng)的鏈接。然而,如果將 2100 維度的 Layer Norm 隨機(jī)化,模型便開始出現(xiàn)知識(shí)錯(cuò)誤和語言錯(cuò)誤,生成的文本不再正確(見圖 21)。但同等程度地?cái)_動(dòng)其他維度,模型的語言輸出卻不會(huì)出現(xiàn)較大變化。
圖?21?僅修改 130 億參數(shù)中的 1 個(gè)就會(huì)使模型混亂
再回來看圖 20,若將 2100 的維度乘以 10,模型的 PPL 值急劇增大,輸出變得雜亂無章。可見,如果在這個(gè)特定位置(2100 維度)改動(dòng)參數(shù),整個(gè)語言模型的功能就會(huì)嚴(yán)重受損。當(dāng)然,如果我們對其他位置的參數(shù)乘以 10,也會(huì)導(dǎo)致一些錯(cuò)誤,比如模型可能會(huì)錯(cuò)誤地將濟(jì)南等地識(shí)別為復(fù)旦大學(xué)的校區(qū)。通過 PPL 指標(biāo),我們可以明顯看出這些擾動(dòng)對模型性能的具體影響,更何況未經(jīng)擾動(dòng)的 LLaMA2-13B 模型上本身也經(jīng)不起多次嘗試導(dǎo)致的錯(cuò)誤。也就是說,130 億參數(shù)的大模型只改一個(gè)參數(shù),整個(gè)模型的語言能力就能完全歸零。
大模型語言核心區(qū)與維度依賴?yán)碚?/strong>
這些現(xiàn)象和理論能帶來什么?其實(shí)我覺得它能在構(gòu)建大模型時(shí)提供諸多有益的解釋。以往我們的部分工作采用了一些技巧性的方法,盡管成效顯著,但卻難以闡明其內(nèi)在機(jī)制。
首先,在進(jìn)行二階段預(yù)訓(xùn)練時(shí),若目標(biāo)是增強(qiáng)模型在特定領(lǐng)域(如醫(yī)學(xué)或強(qiáng)化中文知識(shí))的表現(xiàn),而原始訓(xùn)練數(shù)據(jù)對該領(lǐng)域覆蓋不足,傳統(tǒng)的經(jīng)驗(yàn)告訴我們,必須輔以大量相關(guān)背景知識(shí)的混合數(shù)據(jù)。例如,在開發(fā) Open Chinese LLaMA 時(shí),我們發(fā)現(xiàn)僅添加純中文數(shù)據(jù)會(huì)導(dǎo)致模型性能大幅下降,而現(xiàn)在我們明白參數(shù)各個(gè)區(qū)域負(fù)責(zé)部分其實(shí)已經(jīng)確定,如果大量增加某類在預(yù)訓(xùn)練時(shí)沒有的知識(shí),會(huì)造成參數(shù)的大幅度變化,造成整個(gè)語言模型能力損失。
若要對特定分區(qū)進(jìn)行調(diào)整,就必須引入與之相關(guān)的背景知識(shí),添加 5 ~ 10 倍原始預(yù)訓(xùn)練中的數(shù)據(jù),并打混后一起訓(xùn)練,這樣才能讓模型逐步適應(yīng)變化。否則,一旦觸及核心區(qū)域,模型將喪失幾乎所有能力。
其次,大模型語言關(guān)鍵區(qū)域參數(shù)極為敏感,尤其是那些對模型性能至關(guān)重要的小區(qū)域。在 SFT 階段,若訓(xùn)練周期過長,針對少量數(shù)據(jù)進(jìn)行多個(gè) EPOCH 的訓(xùn)練,會(huì)造成語言關(guān)鍵區(qū)域變化,導(dǎo)致 PPL 飆升,甚至整個(gè)模型失效。因此,與小模型不同,不能針對少量訓(xùn)練數(shù)據(jù)進(jìn)行過度擬合。
第三,模型對于噪音數(shù)據(jù)的敏感性是眾所周知的,但其背后的原因值得深挖。比如,預(yù)訓(xùn)練數(shù)據(jù)中如果出現(xiàn)大量連續(xù)的噪音數(shù)據(jù),比如連續(xù)重復(fù)單詞、非單詞序列等,都可能造成特定維度的調(diào)整,從而使得模型整體?PPL?大幅度波動(dòng)。
另外,有監(jiān)督微調(diào)指令中如果有大量與原有大語言模型不匹配的指令片段,也可能造成模型調(diào)整特定維度,從而使得模型整體性能大幅度下降。我們可通過語言核心區(qū)和維度依賴?yán)碚搧斫忉屵@一現(xiàn)象,這意味著在未來訓(xùn)練和?SFT?階段,我們需要采取相應(yīng)的策略進(jìn)行精細(xì)化調(diào)整。
審核編輯:黃飛
?
評論