文章轉載來源:機器之心

驚人發現:大模型在知識推演上存在嚴重缺陷。

靈活運用知識是智慧的關鍵。人腦可以快速處理知識,如快速回答 “(靜夜思)中有幾個月字”。那麼,大模型是否能進行類似操作?已知大模型可以通過思維鏈(Chain of Thought / CoT),先默寫(靜夜思),再根據默寫內容回答問題,但這會使生成的文字冗長。相比之下,人類可以在大腦中完成簡單的知識推演,無需寫出中間步驟。那麼,超大語言模型能否在其人工腦 (artificial brain) 中直接生成答案,而無需先寫下知識點呢?

答案竟然是否定的!圖 1/2/3 展示了 GPT4 上的諸多反例。即使是最基本的分類(如判斷名人生日的奇偶性)和比較(如比較兩位總統的生日先後),竟然要通過思維鏈 Chain of Thought。更糟糕的是,大模型幾乎完全不能逆向提取訓練集中的知識。

圖1:GPT4在知識分類/比較上出錯,但通過思維鏈可得正確答案

圖2:GPT4的知識逆向搜索錯誤示例

圖 3:雖然 GPT4 能正確回答 “某人的生日是哪天” 和 “某數是否爲偶數”,但在將兩者結合時,如果不用思維鏈 (CoT) 正確率只有 50%。在比較 1900-1910 年間名人的生日時,其表現也近乎盲猜。

朱澤園 (MetaAI) 和李遠志 (MBZUAI) 的最新研究(語言模型物理學 Part 3.2:知識的推演 (manipulation))集中探討了上面這些問題。

論文地址:https://arxiv.org/abs/2309.14402

先問一個問題,諸如圖 1/2/3 這樣的問題,是 GPT4 對人的生日記憶不夠精確(壓縮比不夠,訓練 loss 不夠低),還是未通過微調深化對奇偶性的理解?是否可以通過微調 GPT4,使其能夠在模型內部組合現有知識,生成 "生日的奇偶性" 這種新知識,從而無需依賴 CoT 直接回答相關問題?由於我們不知道 GPT4 的訓練數據集,無法微調。因此,作者提出通過可控訓練集,來更深入研究語言模型的 “知識推演” 能力。

圖 4:對 GPT4 之類的預訓練模型,由於互聯網數據的不可控性,很難確定情形 B/C/D 是否發生

在(語言模型物理學 Part 3.1:知識的儲存與提取)中,作者創建了一個包含 100k 個人物傳記的數據集。每個傳記包括人名和六個屬性:出生日期,出生地,大學專業,大學名稱,工作地點,工作單位。譬如:

「Anya Briar Forger originated from Princeton, NJ. She dedicated her studies to Communications. She gained work experience in Menlo Park, CA. She developed her career at Meta Platforms. She came into this world on October 2, 1996. She pursued advanced coursework at MIT.」

作者確保了傳記條目的多樣性,以幫助模型更好的存取知識。在預訓練 (pretrain) 後,模型能通過微調準確回答知識提取類問題,如 “Anya 的生日是哪天” (正確率接近 100%)

接下來作者繼續微調,試圖讓模型學會知識推演類問題,如知識的分類 / 比較 / 加減。文章發現,自然語言模型在知識推演方面的能力非常有限,難以通過微調產生新知識,即便它們只是模型已掌握知識的簡單變換 / 組合。

圖 5:若微調時不使用 CoT,讓模型進行知識的分類 / 比較 / 減法,需要海量的樣本或者正確率極低 —— 實驗中用了 100 個專業

如圖 5,作者發現,儘管預訓練(pretrain)之後模型已經能準確回答每個人的生日(正確率接近 100%),但要通過微調讓其回答 “xxx 的出生月是偶數嗎?” 並達到 75% 的正確率 —— 別忘了盲猜有 50% 的正確率 —— 需要至少 10000 個微調樣本。相較之下,如果模型能正確完成 “生日” 和 “奇偶性” 的知識組合,那麼根據傳統機器學習理論,模型只需學習對 12 個月份進行二分類,通常約 100 個樣本就足夠了!

同樣,模型預訓練之後能準確回答每個人的專業(共 100 個不同專業),但即使用了 50000 個微調樣本,讓模型比較 “Anya 的專業和 Sabrina 的專業哪個更好”,正確率僅爲 53.9%,近乎盲猜。

然而,當我們使用 CoT 微調讓模型學習 “Anya 的出生月是 October,因此是偶數” 這樣的句子時,模型在測試集上判斷出生月奇偶性的正確率大幅提升(見圖 5 的 “test 用 CoT” 一列)。

作者還嘗試在微調訓練數據中混合 CoT 和非 CoT 的回答,結果發現模型在測試集上不使用 CoT 時的正確率仍然很低(見圖 5 的 “test 不用 CoT” 一列)。這說明,即便補上足夠的 CoT 微調數據,模型依然無法學會 “顱內思考” 並直接報答案。

這些結果表明,對於語言模型來說,進行簡單的知識運算極其困難!模型必須先把知識點寫出來再進行運算,無法像人一樣在大腦裏直接進行操作,即使經過充分的微調也無濟於事。

逆向知識搜索的挑戰

文章也發現,自然語言模型無法逆向搜索學到的知識。儘管它能回答關於某人的所有信息,但無法根據這些信息確定人名。

和知識的分類 / 比較一樣,作者對 GPT3.5/4 進行了試驗,發現它們在逆向知識提取上表現差(見圖 6)。但由於我們無法確定 GPT3.5/4 的訓練集,這並不能證明所有語言模型都有此問題。

圖 6:對比 GPT3.5/4 的正向 / 逆向知識搜索。幾天前我們報道的「逆轉詛咒」工作(arxiv 2309.12288)也在現有的大模型上觀察到了這一點。

作者利用前述的人物傳記數據集,對模型的逆向知識搜索能力進行了更深入的可控試驗 (controlled experiment)。由於所有傳記的人名都在段首,作者設計了 10 個反向信息提取問題,例如:

“請告訴我 1996 年 10 月 2 日在 Princeton, NJ 出生的人的名字是什麼?”

“請告訴我在 MIT 學習 Communications ,1996 年 10 月 2 日在 Princeton, NJ 出生,並在 Menlo Park, CA 的 Meta Platforms 工作的人的名字是什麼?”

圖 7:名人傳記數據集上的可控試驗

作者驗證了,儘管模型實現了無損知識壓縮和充分知識增強,且能幾乎 100% 正確提取這些知識,在經過微調後,模型仍無法進行知識的逆向搜索,準確率幾乎爲零(見圖 7)。但是,一旦逆向知識直接出現在預訓練集中,逆向搜索的準確率立即飆升。

綜上所述,只有在預訓練集 (pretrain data) 中直接包含了逆向知識時,模型才能通過微調來回答逆向問題 —— 但這實際上是作弊,因爲如果知識已經反轉,就不再是 “逆向知識搜索” 了。如果預訓練集只包含正向知識,模型無法通過微調來掌握逆向回答問題的能力。因此,使用語言模型進行知識索引 (knowledge database) 目前看來是不可能的。

另外,有人可能會認爲,上述 “逆向知識搜索” 的失敗可能是由於自迴歸 (autoregressive) 語言模型如 GPT 的單向性。但實際上,雙向語言模型如 BERT 在知識提取上表現更差,甚至在正向提取上也會失敗。有興趣的讀者可以參考論文細節。