GPT只擅長生成?清華、智源等研究力證:GPT語言理解能力不輸BERT

機器之心報道

編輯:張倩、小舟

GPT-3 大型語言模型向我們展示了 AI 模型在生成自然語言文本方面的強大能力。從創作歷史人物對話到總結電影再到編寫代碼,GPT-3 似乎無所不能。

然而,儘管 GPT-3 的輸出在語法上是正確的,甚至在習慣用法上也令人印象深刻,但它對語言的理解似乎存在明顯不足,以至於一些生成效果令人大跌眼鏡。例如:

問:鉛筆和烤麪包機哪個更重?

答:鉛筆比烤麪包機重。

GPT-3 的成功表明,「巨大的單向語言模型 + 適當的手工 prompt」這一組合可能有助於提高模型的自然語言理解能力。然而,手工製作表現最佳的 prompt 無異於大海撈針,通常需要異常龐大的驗證集。在很多情況下,有效的 prompt 工程意味着過擬合測試集。而且,這很容易導致對抗 prompt 的產生,進而導致模型性能大幅下降。

爲了解決這些問題,部分研究者致力於自動搜索離散 prompt 並取得了一些成效,但神經網絡本質上是連續的,因此離散 prompt 可能並非最優。

在一篇標題爲《GPT Understands, Too》的論文中,來自清華大學、麻省理工、北京智源人工智能研究院、Recurrent AI 的 Xiao Liu、唐傑、楊植麟等研究者提出了一種名爲 P-tuning 的新方法來自動搜索連續空間中的 prompt,以提高 GPT 模型的自然語言理解能力。

論文鏈接:https://arxiv.org/pdf/2103.10385.pdf

項目鏈接:https://github.com/THUDM/P-tuning

實驗結果表明,利用 P-tuning 方法,GPT 的自然語言能力可以匹敵 BERT。而且,P-tuning 還可以提高 BERT 在 few-shot 和監督場景下的性能。

該研究的主要貢獻如下:

1. 表明在 P-tuning 的加持下,GPT 也能擁有和 BERT 一樣強大(有時甚至超越後者)的自然語言理解能力,而 P-tuning 可以提高預訓練語言模型的性能。這表明,GPT 類架構在自然語言理解方面的能力被低估了。

2. 表明 P-tuning 是一種提高 GPT 和 BERT 在 few-shot 和全監督場景中自然語言理解能力的通用方法。在 LAMA knowledge probing 和 few-shot SuperGLUE 兩個基準的測試中,該方法優於之前的 SOTA 方法,表明語言模型在預訓練過程中掌握的世界知識和 prior-task 知識比以往認爲的要多。

同時,這一新方法也是北京智源人工智能研究院前段時間發佈的超大規模智能模型——「悟道 1.0」的一部分。「悟道 1.0」是我國首個超大規模智能模型系統,由智源研究院學術副院長、清華大學唐傑教授領銜,帶領來自北京大學、清華大學、中國人民大學、中國科學院等單位的 100 餘位 AI 科學家團隊聯合攻關,取得了多項國際領先的 AI 技術突破,形成超大規模智能模型訓練技術體系,訓練出包括中文、多模態、認知、蛋白質預測在內的系列模型,勇闖通用智能發展前沿,構建我國人工智能應用基礎設施。

「悟道 1.0」先期啓動了 4 個大模型的研發,分別是面向中文的預訓練語言模型「悟道 · 文源」、首個公開的中文通用圖文多模態預訓練模型「悟道 · 文瀾」、我國首個具有認知能力的超大規模預訓練模型「悟道 · 文匯」和超大規模蛋白質序列預測預訓練模型「悟道 · 文溯」。P-Tuning 屬於「悟道 · 文匯」,使得自迴歸模型在理解任務上首次超越自編碼模型,還在知識抽取 (LAMA)、少樣本學習 (Superglue Fewshot) 等 10 多個任務上取得世界第一,性能提升超 20%。

P-tuning:自動搜索連續空間中的 prompt

P-tuning 架構本身比較簡單。給定一個預訓練的語言模型,通過預訓練的嵌入層將一組離散輸入 token 映射到輸入嵌入。prompt p 的作用是將上下文 x、目標 y 和自身組合成一個 template t。藉助這種方式,該方法可以找到更好的連續 prompt,並通過下游損失函數對連續 prompt 進行優化。

架構細節

給定一個預訓練的語言模型 M,離散輸入 token 序列「x_1:n = 」將被預訓練嵌入層 e ∈ M 映射到輸入嵌入 。在以上下文 x 爲條件的特定場景中,我們經常使用一組目標 token「y」的輸出嵌入來進行下游處理。例如,在預訓練中,x 爲 unmasked token,y 爲 [MASK] token;在句子分類中,x 爲句子 token,y 通常指 [CLS]。

prompt p 的作用是將上下文 x、目標 y 和自身組合成一個 template t。例如,在一個預測國家首都的任務中(LAMA-TREx P36),「The capital of Britain is [MASK]」就是一個 template(如圖 2 所示)。其中,「The capital of ... is ....」就是 prompt,「Britain」就是上下文,而「[MASK]」就是目標。Prompt 非常靈活,我們甚至可以將其插入上下文或目標。

設 V 爲語言模型 M 的詞彙表, [P_i] 爲 template T 中的第 i 個 prompt token。爲簡單起見,給定一個 template,傳統離散 prompt 滿足 [P_i ] ∈ V 並將 T 映射到

P-tuning 並非如此。它將 [P_i] 視爲僞 token,並將 template 映射到:

其中,h_i(0 ≤ i < m) 是可訓練的嵌入張量。這使得我們能夠在 V 所能表達的原有詞彙之外找到更好的連續 prompt。最後,利用下游損失函數 L,對連續 prompt h_i(0 ≤ i < m) 進行優化

實驗

研究團隊在流行的 LAMA knowledge probing 和 SuperGLUE NLU 基準上對模型進行了測試。

其中,LAMA knowledge probing 用來評估語言模型從預訓練中得到了多少知識。實驗結果顯示,P-tuning 極大地提高了模型的 knowledge-probing 性能。這表明,僅僅是找到一個更好的 prompt(不需要微調),我們就能讓語言模型獲得更多的知識。P-tuning 也可以超越之前的 AutoPrompt、LPAQA 等離散 prompt 搜索方法。

在 SuperGLUE 的測試中,研究人員考慮了全監督和 few-shot 兩種設置,任務包括問答(BoolQ 和 MultiRC)、文本蘊涵(CB 和 RTE)、指代消解(WiC)、因果推理(COPA)和詞義消歧(WSC)。

在全監督設置下,對於 BERT-base-cased 和 BERT-large-cased 模型,P-tuning 方法在大多數任務中都超越了其他所有 BERT-based 模型。此外,P-tuning 在 GPT-2-base 和 GPT-2-medium 模型上也取得了令人驚喜的結果。

代替手工 prompt

GPT-3 這樣的大模型可移植性往往較差,這意味着,對這些模型進行微調以適應下游任務的做法並不可行。因此,GPT-3 利用手工 prompt 提高模型在下游任務中的可用性。然而,這些手工 prompt 搜索嚴重依賴不現實的大型驗證集,改動其中的一個詞就可能導致性能的嚴重下降。

下表給出了使用手工 prompt 和 P-tuning 的對比結果。如表中數據所示,使用 D_dev32 找到性能最佳的手工 prompt 並不現實,在 few-shot 設置中挑選出最佳的手工 prompt 是一項極具挑戰性的任務。相比之下,使用 P-tuning 自動搜索 prompt 的方法更具優勢。

在 few-shot 學習設置下,P-tuning 在所有的任務中都超越了帶有手工 prompt 的 PET (D_dev32) 和 PET-best (D_dev32) 方法。與 GPT-3 相比,P-tuning 在六項任務(共七項)中都提高了模型的自然語言理解性能,證明與手工方法相比,P-tuning 可以搜索出好得多的 prompt,同時大幅提升模型在 few-shot 任務中的性能。

參考鏈接:https://www.iheima.com/article-313904.html