Prompt Learning(提示學習)

劉鵬飛老師認為NLP目前為止經歷了四個階段(范式):

  • 完全監督機器學習

  • 完全監督深度學習

  • 預訓練模型微調: 預訓練->微調->預測

  • Prompt提示學習:預訓練->提示->預測

在階段①中,我認為work的本質是特征,即特征的選取、衍生、側重上的針對性工程。而在階段②中更多的是對數據集與結構的抽象化構建,無論是使用Conv還是Attention,大家總能講出來為什么work的好故事。階段③中的本質就是無監督方法了,無論是像BERT一樣構建MLM/NSP,還是各種變體(PLM,DAE)也都是在如何更好的訓練預訓練模型這一問題上下足了功夫。

在階段④中,Prompt真正的不同是把焦點放在了讓下游任務來適應語言模型,而不是上述三個階段中的魔改語言模型來適應下游任務的變化。至于為什么這么做?我想可能有以下兩點原因:

  1. 語言模型越大 = 微調難度越大
  2. 相信語言模型具有獨立解決NLP問題的能力

其實第一點沒什么好解釋的,預訓練模型越大,所需要的預訓練預料也就越大,參數也就越多。如果微調時沒有足夠的數據,也就沒有辦法達到一個好的Fine-tuning效果。第二點也很好理解,預訓練語言模型的知識相當豐富,沒有必要為了利用它而去進行重構。

1. 講講Prompt方法

我們來先看一看什么是Prompt,在正常的預訓練模型中,微調是這樣的

Cheese in French is 【MASK】

而在Prompt Tuning中,將預訓練模型直接拿過來用,將任務轉化為這樣的形式

Translate English to French: /* task description */
cheese => ___                /* prompt */

上述這個例子是一個zero-shot learning,我們再來看看one-shot learning

Translate English to French:  /* task description */
sea otter => loutre de mer    /* example */
cheese => ___                 /* prompt */

在硬件耗材和語料規模上兩者的差距是顯而易見的,而Prompt方法的性能隨著LM的增大而增強,理論上LM是可以表現出無限學習的趨勢(超大規模語料加超大規模參數),所以Prompt展現的方法提供了更強大的限定域與相關性總結一下Prompt的范式為

自然語言指令(task description) + 任務demo(example) + 帶__的任務

而其中,自然語言指令與任務demo都是非必要存在的,當然了,信息越少效果越差,總不能把所有的寶都壓在別人訓練的模型上。

2. Prompt Engineering構建

2.1 Prompt Shape

簡單來說,Cloze PromptPrefix Pompt分別對應Prompt在句中還是句末。這個一般根據預訓練模型來選擇:

  • 需要用自回歸語言模型解決的生成任務,Prefix Pompt往往更好,因為它符合模型從左到右的特點
  • 需要用自編碼語言模型解決的掩碼任務,Cloze Prompt往往更好,因為它和預訓練任務的形式非常匹配
2.2 Manual Template Engineering

手動編寫,懂的都懂,需要計算機實驗、語言學理論、模型邏輯等方面的專業知識作為指導

2.3 Automated Template Learning
2.3.1 硬提示/離散提示(Hard Prompt/Discrete Prompt)

如上述例子一樣,硬提示即搜索空間是離散的。一般需要算法工程師在下游任務上具備非常豐富的經驗以及了解原預訓練模型的底層概念,一般硬提示的準確率會不及Fine-tuning的SOTA,而且不同的Prompt對模型的影響非常大,像是提示的長度提示詞匯的位置等等,一點Prompt的微小差別,可能會造成效果的巨大差異。

所以我們要做的就是兩件事:

  • 設計一個合適的提示模板,創造一個完形填空的題目
  • 設計一個合適的填空答案,創造一個完型填空的選項

具體有以下這么幾種方式:

  1. Prompt Mining:從大的語料庫中進行挖掘(一般是挖掘輸入與輸出之間的高頻詞作為模板構建元素)
  2. Prompt Paraphrasing:參考文本數據增強方法,可以做seed Prompt的同義詞替換,跨語種翻譯等
  3. Gradient-based Search:從候選詞中選擇一些詞作為Prompt并參與訓練,根據梯度下降對選擇詞重新排列組合
  4. Prompt Generation:通過文本生成模型直接生成一個Prompt
  5. Prompt Scoring:根據語言模型對所有候選Prompt打分,選擇一個對高分的Prompt使用

總而言之,上述Hard Prompt方法還是會輸出一個叫能被人類理解的句子,為了不拘泥于人類的直觀理解(機器也未必會理解),還有一些方法可以構建連續性的向量作為Prompt

2.3.2 軟提示/連續提示(Continuous prompt / Soft prompt)

因為硬提示的相對不穩定性(過多融入語言符號),軟提示概念即將Prompt的生成作為模型的一個任務來學習,也就是將上述確定性的自然語言轉化為機器進行自我搜索的過程。

  1. Prefix-tuning:在輸出前加上一串連續的向量(前綴prefix),保持PLM參數不變,僅訓練該向量。從數學上講,這包括在給定可訓練前綴矩陣M_{\phi}和由\theta參數化的固定PLM的情況下,對以下對數似然目標進行優化:
    \max_{\phi}\log P(\boldsymbol{y} \mid \boldsymbol{x}\;\theta;\phi)=\max_{\phi} \sum_{y_{i}}\log P(y_{i}\mid h_{<i};\theta;\phi)
    h_{<i}=\left[h_{<i}^{(1)} ; \cdots ; h_{<i}^{(n)}\right]是時間步長i處所有神經網絡層的串聯。如果相應的時間步長在前綴內(h_iM_{\phi}[i]),則直接從M_{\phi} 復制,否則使用PLM計算
  1. Tuning Initialized with Discrete Prompts:即先找到一個Hard Prompt,然后再基于該模板初始化Prompt的token,最后微調這些特殊token的embedding,較為簡單
  2. Hard-Soft Prompt Hybrid Tuning:在手工模板中添加一些可學習的embedding,作為結合
  3. P-turning:在3的基礎上,通過BiLSTM的輸出來表示Promptembedding,以便讓Prompt內部產生一定程度的交互
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內容