首頁  >  文章  >  科技週邊  >  GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

WBOY
WBOY轉載
2023-11-18 11:41:41660瀏覽

中國人民大學的研究人員發現,Llama等因果語言模型遇到的「逆轉詛咒」可以歸咎於next-token prediction causal language model的固有缺陷。他們還發現,GLM採用的自回歸填空的訓練方法在應對這種「逆轉詛咒」時表現更為穩健

透過將雙向注意力機制引入Llama 模型進行微調,該研究實現了對Llama 的「逆轉詛咒」 的緩解。

研究指出,目前流行的大型模型結構和訓練方式存在許多潛在問題。希望有更多的研究人員能夠在模型結構和預訓練方法上進行創新,以提升智能水平

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

論文地址:https:/ /arxiv.org/pdf/2311.07468.pdf

背景

在Lukas Berglund等人的研究中發現,GPT和Llama模型存在一種「逆轉詛咒」。當向GPT-4提問“誰是湯姆·克魯斯的媽媽?”時,GPT-4能夠給出正確的回答“瑪麗·李·皮菲爾”,但當向GPT-4提問“瑪麗·李·皮菲爾的兒子是誰?」時,GPT-4表示自己不知道這個人。也許對齊之後,GPT-4出於對人物隱私的保護,不願意回答這類問題。然而,在一些不涉及隱私的知識問答中,也存在著這種“逆轉詛咒”

#舉個例子,GPT-4 能夠準確回答“黃鶴一去不復返”的下一句,但是對於「白雲千載空悠悠」的上一句是什麼,模型產生了嚴重的幻象

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

圖一:詢問GPT-4 「黃鶴一去不復返」 的下一句是什麼,模型正確回答

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

圖二:問GPT-4 「白雲千載空悠悠」 的上一句是什麼,模型出錯

逆轉詛咒因何而來?

Berglund等人的研究只在Llama和GPT上進行了測試。這兩種模型具有共同的特點:(1)它們使用無監督的下一個標記預測任務進行訓練,(2)在僅有解碼器的模型中,採用單向的因果注意力機制(因果關注)

逆轉詛咒的研究觀點認為,這些模型的訓練目標導致了該問題的出現​​,並且可能是Llama、GPT 等模型獨有的難題

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

重寫後的內容:圖三:展示了使用Next-token prediction(NTP)訓練因果語言模型的示意圖

這兩點的結合導致一個問題:如果訓練資料包含實體A和B,且A在B之前出現,那麼這個模型只能優化正向預測的條件機率p(B|A),對於反向的條件機率p(A|B)沒有任何保證。如果訓練集不夠大,無法充分涵蓋A和B可能的排列,就會出現「逆轉詛咒」的現象

當然,也有很多生成式語言模型並沒有採取以上的訓練範式,例如清華提出的GLM,訓練方法如下圖所示:

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

#圖四:一個簡化版的GLM 訓練示意

GLM 使用自回歸填充(Autoregressive Blank Infilling,ABI)的訓練目標,即從輸入中隨機選擇一段內容進行遮蓋,然後自回歸預測該段內容。雖然要預測的令牌仍然依賴「上文」透過單向注意力,但此時「上文」包括原始輸入中該令牌之前和之後的所有內容,因此ABI隱式地考慮了輸入中的反向依賴關係

該研究進行了一項實驗,發現GLM在一定程度上確實具有免疫「逆轉詛咒」的能力

  • 該研究採用Berglund et al. 提出的「人名- 描述問答」 資料集,該資料集使用GPT-4 編造了若干人名和對應的描述,人名和描述都是獨一無二的。資料範例如下圖所示:

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

#訓練集分為兩部分,一部分是人名在前(NameToDescription), 另一部分是描述在前(DescriptionToName),兩部分不存在重疊的人名或描述。測試資料的 prompt 對訓練資料的 prompt 進行了改寫。

  • 此資料集有四個測試子任務:
  1. #NameToDescription (N2D): 透過prompt模型訓練集「NameToDescription」 部分涉及的人名,讓模型回答對應的描述
  2. DescriptionToName (D2N): 透過prompt 模型訓練集「DescriptionToName」 部分涉及到的描述,讓模型回答對應的人名
  3. DescrptionToName-reverse (D2N-reverse): 透過prompt 模型訓練集「DescriptionToName」 部分涉及的人名,讓模型回答對應的描述
  4. NameToDescription-reverse (N2D-reverse): 透過prompt 模型訓練集「NameToDescription」 部分涉及的描述,讓模型回答對應的人名
  • #該研究在此資料集上對Llama 和GLM 按照各自的預訓練目標(Llama 用NTP 目標,GLM 用ABI 目標),進行微調。微調後,透過測試模型回答逆轉任務的準確率,可以定性地評估模型在真實場景下遭受 「逆轉詛咒」 的嚴重性。由於所有人名和資料都是編造的,因此這些任務基本上不會被模型已有的知識幹擾。

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?實驗結果表明,透過NTP 微調的Llama 模型,基本上沒有正確回答逆轉任務的能力(NameToDescription-reverse 任務準確率為0),而透過ABI 微調的GLM 模型,在NameToDescrption 逆轉任務上的準確率非常高。

為了進行對比,研究也使用了NTP的方法對GLM進行微調,並發現GLM在N2D-reverse任務中的準確率下降到了0

#也許由於D2N-reverse(利用逆轉知識,給定人名生成描述)比N2D-reverse(利用逆轉知識,給定描述生成人名)要困難許多,GLM- ABI 相對於GLM-NTP 只有微弱的提升。

研究得出的主要結論並沒有受到影響:訓練目標是導致 "逆轉詛咒" 的原因之一。在以next-token prediction方式預先訓練的因果語言模型中,"逆轉詛咒" 尤其嚴重

如何緩解逆轉詛咒

由於「逆轉詛咒」 是Llama,GPT 等模型的訓練階段導致的內在問題,在有限的資源下,我們能做的就是想辦法在新數據上微調模型,並儘可能地避免模型在新知識上「逆轉詛咒」 的發生,以更充分地利用訓練資料。

受到GLM 訓練方法的啟發,該研究提出了一種訓練方法「雙向因果語言模型最佳化」(Bidirectional Causal language model Optimization),在基本上不引入新的gap 的情況下,讓Llama 也能採用雙向注意力機制進行訓練,簡單來說,有以下幾個重點:

1. 消除OOD 的位置資訊。 Llama 採用的 RoPE 編碼在 attention 計算的時候為 query 和 key 添加位置信息,計算方法如下所示:

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

其中GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?分別是目前層m 和n 位置的輸入,GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?是 RoPE 使用的旋轉矩陣,定義為:

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

如果直接將Llama 的因果注意力掩碼去掉,會引入out-of-distribution 的位置資訊。原因是,在預訓練的過程中,在m 位置的query 只需與在n 位置的key 進行內積(GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?),上式內積計算中的query-key 的相對距離(n-m) 總是是非正的;而直接去掉注意力掩碼,在m 位置的query 就會與在n>m 位置的key 做內積,導致n-m 變成一個正值,引入了模型沒見過的位置資訊。

該研究提出的解決方法非常簡單,規定:

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

 時,不需要對內積計算做任何修改;當n > m,透過引入一個新的旋轉矩陣

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

來計算。

是將旋轉矩陣中所有的 sin 項都取相反數字得到的。這樣,就有

。則當n > m 時則有:

該研究將attention score 的計算分為兩部分,以上述運算分別計算上三角與下三角,並最終進行拼接,這樣就很有效率地實現了本文規定的注意力計算方法,整體操作如下子圖(a) 所示:

2. 採用mask denosing 的方式訓練

因為引入了雙向注意力機制,繼續使用NTP任務進行訓練可能會導致資訊洩漏,從而導致訓練失敗。因此,研究採用恢復遮罩標記的方法對模型進行最佳化############該研究嘗試使用BERT,在輸出的第i個位置還原輸入的第i個位置的mask token 。然而,由於這種預測方式與模型在測試階段所使用的自回歸預測有較大差異,因此並沒有取得預期效果############最終,出於不引入新的gap的思想,研究採用了自回歸式的mask denoising,如上圖(a)所示:該研究在輸出端的第i 個位置去還原第i 1 位置輸入的mask token。 ############此外,由於因果語言模型的預訓練詞表是沒有[mask] 這個token 的,如果在微調階段新加一個token 的話,模型還得去學習這個無意義token 的表示,因此研究只是輸入一個佔位token,並在attention 計算中忽略掉佔位token。 ############研究在微調 Llama 時,每一步以均等的機率,隨機選擇 BICO 與普通的 NTP 作為訓練目標。在同樣微調十個 epoch 的情況下,在上述人名描述資料集上,與正常 NTP 微調的表現對比如下:#######

GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?

該研究的方法對於逆轉詛咒有一定的緩解是可以看到的。本文的方法在D2N-reverse上的改進與GLM-ABI相比非常小。研究人員推測這種現象的原因是,雖然資料集中的人名和對應的描述是由GPT產生的,以減少預訓練資料對測驗的干擾,但是由於預訓練模型具有一定的常識理解能力,例如知道人名和描述之間通常存在一對多的關聯。在給定一個人名的情況下,可能會有多種不同的描述。因此,當模型需要同時利用反向知識和生成長描述時,似乎會有些困惑

此外,本文的重點是探討基礎模型的逆轉詛咒現象。在更複雜的情境中評估模型的逆轉回答能力,以及強化學習高階回饋是否對逆轉詛咒產生影響,仍需要進一步的研究工作

一些思考

目前,大多數開源的大型語言模型都遵循著「因果語言模型下一個標記預測」的模式。然而,在這個模式中可能存在更多類似「逆轉詛咒」的潛在問題。儘管目前可以透過增加模型規模和資料量來暫時掩蓋這些問題,但它們並沒有真正消失,而且仍然存在著。當我們在模型規模和資料量增加的道路上達到極限時,這個「目前足夠好用」的模式是否能真正超越人類智能,這個研究認為非常困難

該研究希望更多的大模型廠商以及有條件的研究者能夠深入挖掘當前主流大語言模型的內在缺陷,並在訓練範式上進行創新。正如該研究在正文的最後所寫,“Training future models strictly by the book may lead us to fall into a “middle-intelligence trap.”” (循規蹈矩地訓練未來的模型可能會引導我們掉入中等智能陷阱)

以上是GPT、Llama等大模型存在「逆轉詛咒」,這個bug該如何緩解?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除