GPT、Llama等大模型存在「逆轉(zhuǎn)詛咒」,這個bug該如何緩解?
來自中國人民大學(xué)的研究者將 Llama 等因果語言模型所遭遇的 “逆轉(zhuǎn)詛咒” 歸咎于 next-token prediction + causal language model 的本質(zhì)缺陷,并發(fā)現(xiàn) GLM 采用的自回歸填空的訓(xùn)練方法對這種 “逆轉(zhuǎn)詛咒” 顯示出更強(qiáng)的魯棒性。
通過將雙向注意力機(jī)制引入 Llama 模型進(jìn)行微調(diào),該研究實(shí)現(xiàn)了對 Llama 的 “逆轉(zhuǎn)詛咒” 的緩解。
該研究認(rèn)為當(dāng)前主流的這種大模型結(jié)構(gòu)與訓(xùn)練范式存在著很多潛在的缺陷,希望有更多的研究者能夠在模型結(jié)構(gòu)或者預(yù)訓(xùn)練范式上進(jìn)行創(chuàng)新突破,以獲得更高的智能水平。
論文地址:https://arxiv.org/pdf/2311.07468.pdf
背景
Lukas Berglund等人發(fā)現(xiàn) GPT 以及 Llama 模型存在一種 “逆轉(zhuǎn)詛咒”:當(dāng)向 GPT-4 提問 “Who is Tom Cruise's mom?” GPT-4 可以給出正確的回答 “Mary Lee Pfeiffer”,而當(dāng)向 GPT-4 提問 “Who is Mary Lee Pfeiffer's son?” GPT-4 表示自己并不知道這個人。也許 GPT-4 經(jīng)過對齊之后,可能出于對人物隱私的保護(hù),不愿意回答這種問題,但是經(jīng)過測試,在一些不涉及隱私的知識問答上,也存在著這種 “逆轉(zhuǎn)詛咒”。
比如,GPT-4 能正確回答 “黃鶴一去不復(fù)返” 的下一句,但是對于 “白云千載空悠悠” 的上一句是什么,模型出現(xiàn)了嚴(yán)重的幻象。
圖一:詢問 GPT-4 “黃鶴一去不復(fù)返” 的下一句是什么,模型正確回答
圖二:詢問 GPT-4 “白云千載空悠悠” 的上一句是什么,模型出錯
逆轉(zhuǎn)詛咒因何而來?
Berglund 等人的研究只在 Llama 和 GPT 上做了測試,這兩種模型的共同特點(diǎn)是:(1)利用無監(jiān)督的 next-token prediction 任務(wù)進(jìn)行訓(xùn)練,(2)在 decoder-only 的模型中,采用單向的因果注意力機(jī)制(causal attention)。
該研究的觀點(diǎn)是,逆轉(zhuǎn)詛咒是由這些模型的訓(xùn)練目標(biāo)導(dǎo)致的,并且可能是 Llama,GPT 這類模型特有的問題。
圖三:采用 Next-token prediction(NTP)訓(xùn)練一個因果語言模型的示意
這兩點(diǎn)的結(jié)合就導(dǎo)致了一個問題,如果一條訓(xùn)練數(shù)據(jù)中含有兩個實(shí)體 A 和 B,并且 A 出現(xiàn)在 B 的前面,那么這類模型只能優(yōu)化正向預(yù)測的條件概率 p (B|A),對于反向的條件概率 p (A|B) 的值是沒有任何保證的。一旦訓(xùn)練集不夠大,不能夠?qū)?A 與 B 可能的排列充分覆蓋,那么自然就會出現(xiàn) “逆轉(zhuǎn)詛咒” 現(xiàn)象。
當(dāng)然,也有很多生成式語言模型并沒有采取以上的訓(xùn)練范式,比如清華提出的 GLM,訓(xùn)練方法如下圖所示:
圖四:一個簡化版的 GLM 訓(xùn)練示意
GLM 采用了自回歸填空(Autoregressive Blank Infilling,ABI)的訓(xùn)練目標(biāo):隨機(jī)從輸入中選取一段內(nèi)容進(jìn)行 mask,并且自回歸地預(yù)測這段內(nèi)容。雖然待預(yù)測的 token 依然采用單向注意力對 “上文” 產(chǎn)生依賴,但是此時 “上文” 中包括了這個 token 在原始輸入里之前和之后的全部內(nèi)容,因此,ABI 隱式地將輸入中的反向依賴關(guān)系考慮到了。
該研究進(jìn)行了一個實(shí)驗(yàn)發(fā)現(xiàn) GLM 一定程度上確實(shí)可以免疫 “逆轉(zhuǎn)詛咒”:
- 該研究采用 Berglund et al. 提出的 “人名 - 描述問答” 數(shù)據(jù)集,該數(shù)據(jù)集使用 GPT-4 編造了若干人名和對應(yīng)的描述,人名和描述都是獨(dú)一無二的。數(shù)據(jù)示例如下圖所示:
訓(xùn)練集分為兩部分,一部分是人名在前(NameToDescription), 另一部分是描述在前(DescriptionToName),兩部分不存在重疊的人名或者描述。測試數(shù)據(jù)的 prompt 對訓(xùn)練數(shù)據(jù)的 prompt 進(jìn)行了改寫。
- 該數(shù)據(jù)集有四個測試子任務(wù):
- NameToDescription (N2D): 通過 prompt 模型訓(xùn)練集 “NameToDescription” 部分涉及到的人名,讓模型回答相應(yīng)的描述
- DescriptionToName (D2N): 通過 prompt 模型訓(xùn)練集 “DescriptionToName” 部分涉及到的描述,讓模型回答相應(yīng)的人名
- DescrptionToName-reverse (D2N-reverse): 通過 prompt 模型訓(xùn)練集 “DescriptionToName” 部分涉及到的人名,讓模型回答相應(yīng)的描述
- NameToDescription-reverse (N2D-reverse): 通過 prompt 模型訓(xùn)練集 “NameToDescription” 部分涉及到的描述,讓模型回答相應(yīng)的人名
- 該研究在此數(shù)據(jù)集上對 Llama 和 GLM 按照各自的預(yù)訓(xùn)練目標(biāo)(Llama 用 NTP 目標(biāo),GLM 用 ABI 目標(biāo)),進(jìn)行微調(diào)。微調(diào)后,通過測試模型回答逆轉(zhuǎn)任務(wù)的準(zhǔn)確率,可以定性地評估模型在真實(shí)場景下遭受 “逆轉(zhuǎn)詛咒” 的嚴(yán)重性。由于所有人名和數(shù)據(jù)都是編造的,因此這些任務(wù)基本不會被模型已有的知識干擾。
實(shí)驗(yàn)結(jié)果表明,通過 NTP 微調(diào)的 Llama 模型,基本沒有正確回答逆轉(zhuǎn)任務(wù)的能力(NameToDescription-reverse 任務(wù)準(zhǔn)確率為 0),而通過 ABI 微調(diào)的 GLM 模型,在 NameToDescrption 逆轉(zhuǎn)任務(wù)上的準(zhǔn)確率非常高。
為了對比,該研究還使用 NTP 的方式微調(diào)了 GLM,發(fā)現(xiàn) GLM 在 N2D-reverse 任務(wù)上的準(zhǔn)確率也掉到了 0。
也許由于 D2N-reverse(利用逆轉(zhuǎn)知識,給定人名生成描述)比 N2D-reverse(利用逆轉(zhuǎn)知識,給定描述生成人名)要困難許多,GLM- ABI 相對于 GLM-NTP 只有微弱的提升。
不過這并不影響該研究得出主要結(jié)論:訓(xùn)練目標(biāo)是導(dǎo)致 “逆轉(zhuǎn)詛咒” 的原因之一?!澳孓D(zhuǎn)詛咒” 在以 next-token prediction 方式預(yù)訓(xùn)練的因果語言模型中尤其嚴(yán)重。
如何緩解逆轉(zhuǎn)詛咒
由于 “逆轉(zhuǎn)詛咒” 是 Llama,GPT 等模型的訓(xùn)練階段導(dǎo)致的內(nèi)在問題,在有限的資源下,我們能做的就是想辦法在新數(shù)據(jù)上微調(diào)模型,并盡可能地避免模型在新知識上 “逆轉(zhuǎn)詛咒” 的發(fā)生,以更充分地利用訓(xùn)練數(shù)據(jù)。
受到 GLM 訓(xùn)練方法的啟發(fā),該研究提出了一種訓(xùn)練方法 “雙向因果語言模型優(yōu)化” (Bidirectional Causal language model Optimization),在基本不引入新的 gap 的情況下,讓 Llama 也能采用雙向注意力機(jī)制進(jìn)行訓(xùn)練,簡單來說,有以下幾個重點(diǎn):
1. 消除 OOD 的位置信息。Llama 采用的 RoPE 編碼在 attention 計(jì)算的時候?yàn)?query 和 key 添加位置信息,計(jì)算方法如下所示:
其中分別是當(dāng)前層 m 和 n 位置的輸入,
是 RoPE 使用的旋轉(zhuǎn)矩陣,定義為:
如果直接將 Llama 的因果注意力掩碼去掉,會引入 out-of-distribution 的位置信息。原因是,在預(yù)訓(xùn)練的過程中,在 m 位置的 query 只需與在 n 位置的 key 進(jìn)行內(nèi)積(),上式內(nèi)積計(jì)算中的 query-key 的相對距離 (n-m) 始終是非正的;而直接去掉注意力掩碼,在 m 位置的 query 就會與在 n>m 位置的 key 做內(nèi)積,導(dǎo)致 n-m 變成一個正值,引入了模型沒見過的位置信息。
該研究提出的解決方法非常簡單,規(guī)定:
當(dāng) 時,無需對內(nèi)積計(jì)算做任何修改;當(dāng) n > m,通過引入一個新的旋轉(zhuǎn)矩陣
來計(jì)算。
是將旋轉(zhuǎn)矩陣中所有的 sin 項(xiàng)都取相反數(shù)得到的。這樣,就有
。那么當(dāng) n > m 時則有:
該研究將 attention score 的計(jì)算分為兩部分,按以上操作分別計(jì)算上三角和下三角,并最終進(jìn)行拼接,這樣就很高效地實(shí)現(xiàn)了本文規(guī)定的注意力計(jì)算方法,整體操作如下子圖 (a) 所示:
2. 采用 mask denosing 的方式訓(xùn)練
由于雙向注意力機(jī)制的引入,繼續(xù)使用 NTP 任務(wù)訓(xùn)練會存在信息泄漏,導(dǎo)致訓(xùn)練失敗,因此該研究使用恢復(fù) mask token 的方式對模型進(jìn)行優(yōu)化。
該研究嘗試過遵循 BERT,在輸出端的第 i 位置去還原第 i 位置輸入的 mask token,由于這種預(yù)測方式與模型在測試階段使用的自回歸預(yù)測相差較大,并沒有取得效果。
最終,出于不引入新的 gap 的思想,該研究采用了自回歸式的 mask denoising,如上圖(a)所示:該研究在輸出端的第 i 個位置去還原第 i+1 位置輸入的 mask token。
此外,由于因果語言模型的預(yù)訓(xùn)練詞表是沒有 [mask] 這個 token 的,如果在微調(diào)階段新加一個 token 的話,模型還得去學(xué)習(xí)這個無意義 token 的表示,因此該研究只是輸入一個占位 token,并在 attention 計(jì)算中忽略掉占位 token。
該研究在微調(diào) Llama 時,每一步以均等的概率,隨機(jī)選擇 BICO 與普通的 NTP 作為訓(xùn)練目標(biāo)。在同樣微調(diào)十個 epoch 的情況下,在上述人名描述數(shù)據(jù)集上,與正常 NTP 微調(diào)的表現(xiàn)對比如下:
可以看到該研究的方法對于逆轉(zhuǎn)詛咒有一定的緩解。與 GLM-ABI 一樣,本文方法在 D2N-reverse 上取得的提升非常小。研究者推測這一現(xiàn)象的原因:盡管數(shù)據(jù)集中的人名及其對應(yīng)描述由 GPT 編造以減少預(yù)訓(xùn)練數(shù)據(jù)對測試的干擾,但由于預(yù)訓(xùn)練模型具備一定程度的常識理解能力,比如認(rèn)知到人名與描述之間通常存在一對多的關(guān)聯(lián)。在給定一個人名的情況下,可能對應(yīng)多種不同的描述。因此,當(dāng)模型在處理既需要利用反向知識,又要生成長描述的任務(wù)時,似乎顯得有些困惑。
此外,本文重點(diǎn)關(guān)注的是 base 模型的逆轉(zhuǎn)詛咒現(xiàn)象。如何在更復(fù)雜的場景下評估模型的逆轉(zhuǎn)回答能力,以及 RLHF 是否對于逆轉(zhuǎn)詛咒存在影響,仍需未來的工作進(jìn)一步探究。
一些思考
當(dāng)前大多數(shù)開源大語言模型遵循著 causal language model + next-token prediction 的范式。在這一范式中,可能隱藏著更多類似 “逆轉(zhuǎn)詛咒” 的內(nèi)在問題。盡管目前這些問題可以通過擴(kuò)大模型規(guī)模或增加數(shù)據(jù)量來暫時掩蓋,但它們并沒有真正消失,并且持續(xù)存在。當(dāng)我們在模型規(guī)模擴(kuò)大和數(shù)據(jù)量增加的道路上達(dá)到極限時,這個 “目前足夠好用” 的范式能否真正超越人類智能,該研究認(rèn)為這非常困難。
該研究希望更多的大模型廠商以及有條件的研究者能夠深入挖掘當(dāng)前主流大語言模型的內(nèi)在缺陷,并在訓(xùn)練范式上進(jìn)行創(chuàng)新。正如該研究在正文的最后所寫,“Training future models strictly by the book may lead us to fall into a “middle-intelligence trap.”” (循規(guī)蹈矩地訓(xùn)練未來的模型可能會引導(dǎo)我們掉入中等智能陷阱)