大語言模型的「逆轉詛咒」,被解開了!
這個詛咒在去年9月首次被發現,一時間引起LeCun、Karpathy、馬庫斯等一眾大佬的驚呼。
由於風光無兩、不可一世的大模型竟存在著“阿克琉斯之踵”:一個在“A是B”上訓練的語言模型,並不能正確回答「B是否A」。
例如下面這個例子:在LLM明知道「湯姆·克魯斯的母親是Mary Lee Pfeiffer」的情況下,卻無法答出「Mary Lee Pfeiffer的孩子是湯姆·克魯斯」。
——這可是當時最先進的GPT-4,結果連小孩都具備的正常邏輯思維,LLM卻做不到。
基於海量的數據之上,記住了幾乎超過所有人類的知識,卻表現得如此呆板,取得了智慧之火,卻永遠被囚禁於這個詛咒之中。
論文網址:https://arxiv.org/pdf/2309.12288v1.pdf
這事一出,全網一片嘩然。
一方面,網友表示,大模型真傻,真的。單知道「A是B」,卻不知道「B是A」,自己終於保住了身為人類的尊嚴。
而另一方面,研究人員也開始對此展開研究,快馬加鞭解決這個重大挑戰。
近日,來自Meta FAIR的研究人員推出了反向訓練大法來一舉解決LLM的「逆轉詛咒」。
論文網址:https://arxiv.org/pdf/2403.13799.pdf
研究人員首先觀察到,LLMs從左到右以自回歸的方式進行訓練,——這可能是導致逆轉詛咒的原因。
那麼,如果以從右到左的方向來訓練LLM(逆向訓練),就有可能讓模型在反方向上看到事實。
可以將反向文字視為第二語言,透過多工或跨語言預訓練,來利用多個不同的來源。
研究人員考慮了4種反向類型:標記反轉、單字反轉、實體保留反轉和隨機段反轉。
標記和單字反轉,透過將序列分別拆分為標記或單詞,並顛倒它們的順序以形成新序列。
實體保留反轉,在序列中尋找實體名稱,並在其中保留從左到右的單字順序,同時進行單字反轉。
隨機段反轉,將標記化的序列分割成隨機長度的區塊,然後保留每個區塊內從左到右的順序。
研究人員在1.4B和7B的參數規模上,測試了這些反轉類型的有效性,結果表明,實體保留和隨機分段反向訓練可以減輕逆向詛咒,甚至在某些情況下完全消除它。
此外,研究人員還發現,與標準的從左到右訓練相比,訓練前逆轉的方式使模型的表現有所提高,——所以反向訓練可以作為一種通用的訓練方法。
逆向訓練包含取得具有N個樣本的訓練資料集,並建構反向樣本集REVERSE(x )。
函數REVERSE負責反轉給定的字串,具體做法如下:
單字反轉:每個範例首先被拆分為單詞,然後在單字層級反轉字串,用空格將其連接在一起。
實體保留反轉:對給定的訓練樣本運行實體偵測器,將非實體也拆分為單字。然後將非實體的單字顛倒,而表示實體的單字保留原有詞序。
隨機段反轉:這裡沒有使用實體偵測器,而是嘗試使用均勻取樣,將序列隨機分割成大小為1到k個token之間的句段,然後顛倒這些句段,但保持每個句段內的詞序,之後,這些句段使用特殊標記[REV]連接。
上表給出了在給定字串上,不同反轉類型的範例。
此時,語言模型仍然從左到右進行訓練,在單字反轉的情況下,就相當於從右到左預測句子。
逆向訓練涉及標準和反向範例的訓練,因此訓練token的數量增加了一倍,同時正向和反向訓練樣本都混合在一起。
逆向轉換可以看作是模型必須學習的第二種語言,請注意,在反轉的過程中,事實之間的關係保持不變,模型可以從語法中判斷它是處於正向還是反向語言預測模式。
逆向訓練的另一個角度可以由資訊理論來解釋:語言建模的目標是學習自然語言的機率分佈
實體對映射
#首先建立一個簡單的基於符號數據集,以研究受控環境中的反轉詛咒。
以一對一的方式隨機配對實體a和b,訓練資料包含所有(a→b)映射對,但僅包含一半的(b→a)映射,另一半作為測試數據。
模型必須從訓練資料推斷規則a→b ⇔ b→a,然後將其推廣到測試資料中的對。
上表展示了符號反向任務的測試準確度(%)。儘管這項任務很簡單,但標準語言模型訓練完全失敗了,這表明僅靠擴展不太可能解決。
相較之下,反向訓練幾乎可以解決兩個單字實體的問題,但隨著實體變長,其表現會迅速下降。
單字反轉適用於較短的實體,但對於具有較多單字的實體,實體保留反轉是必要的。當最大段長度k至少與實體一樣長時,隨機段反轉表現良好。
恢復人名
上表展示了確定人全名的反轉任務,當僅給出出生日期確定一個人的全名時,反轉任務的準確性仍然接近於零,——這是因為在本文採用的實體檢測方法中,日期被視為三個實體,因此在反轉中不會保留它們的順序。
如果將反轉任務簡化為僅確定人的姓氏,則單字層級的反轉就足夠了。
另一個可能會令人驚訝的現像是,實體保留方法可以確定該人的全名,但不能確定該人的姓氏。
這是一個已知的現象:語言模型可能完全無法檢索知識片段的後期標記(例如姓氏)。
現實世界事實
#這裡作者訓練了一個Llama-2 14億參數模型,在從左到右方向上訓練一個2萬億個token的基線模型。
相比之下,逆向訓練僅使用1兆token,但使用相同的資料子集在從左到右和從右到左兩個方向上進行訓練, ——兩個方向合起來是2兆個token,在運算資源上做到公平公正。
為了測試對現實世界事實的反轉能力,研究人員使用了一個名人任務,其中包含「諸如某個名人的母親是誰」之類的問題,同時還包含更具挑戰性的反向問題,例如「某個名人的父母的孩子是誰」。
結果如上表所示。研究人員對每個問題的模型進行多次抽樣,如果其中任何一個包含正確答案,則將其視為成功。
一般來說,由於模型在參數數量方面很小,預訓練有限,並且缺乏微調,因此準確性通常相對較低。然而,反向訓練的表現更加優秀。
1988年,Fodor和Pylyshyn在《認知》刊物上發了一篇關於思考的系統性的文章。
如果你真的理解這個世界,那你就應該可以理解a相對於b的關係,也能理解b相對於a的關係。
即使是非語言認知生物,也應該能夠做到這一點。
以上是破除36年前魔咒! Meta推出反向訓練大法消除大模型「逆轉詛咒」的詳細內容。更多資訊請關注PHP中文網其他相關文章!