恕我直言,你的模型可能并沒看懂prompt在說啥
大數(shù)據(jù)文摘授權(quán)轉(zhuǎn)載自夕小瑤的賣萌屋
作者:python
隨著GPT-3等超大模型的興起,in-context learning的形式也流行起來。在in-context learning中,模型不根據(jù)下游任務(wù)調(diào)整參數(shù),而是將下游任務(wù)的輸入輸出接起來之后作為prompt,引導模型根據(jù)測試集的輸入生成預測結(jié)果。該方法的表現(xiàn)可以大幅超越零監(jiān)督學習,并給大模型高效運用提供了新的思路。
然而,in-context learning中,模型真的學習了下游任務(wù)么?作為prompt的訓練樣本,到底是如何讓模型work的?
本文作者發(fā)現(xiàn),in-context learning學習的并不是輸入與標注之間的關(guān)聯(lián),而是通過展示數(shù)據(jù)形式,來激活預訓練模型的能力。此外還有兩個附帶的結(jié)論:(1)在meta learning的環(huán)境下,in-context learning的這一特點更為明顯;(2)因為標簽不重要,所以可以用無標注領(lǐng)域內(nèi)數(shù)據(jù)做in-context zero shot learning。
論文題目:
Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?論文鏈接:
https://arxiv.org/abs/2202.12837項目地址:
https://github.com/Alrope123/rethinking-demonstrations
背景
大規(guī)模預訓練模型的無監(jiān)督預測:對預訓練好的語言模型,輸入測試數(shù)據(jù)的輸入(x),直接通過語言模型預測輸出(P(y|x))。如下圖所示。其中minimal是最簡單的方式,mannual是加入人工設(shè)計的部分。藍色是需要預測的標簽部分。這篇論文中,作者默認采用Minimal的方式處理測試數(shù)據(jù)。
而in-context learning,類似于上述的無監(jiān)督預測,但在輸入測試樣例前輸入少量標注數(shù)據(jù)。同樣不需要參數(shù)調(diào)整,直接訓練。相當于在無監(jiān)督預測的基礎(chǔ)上,引入如下前綴:
而本文主要探究的,就是in-context learning中,模型究竟從加入的這段前綴中學到了什么。
實驗設(shè)置
本文主要探究了6種不同的預訓練模型,其中,MetaICL采用了大量的下游任務(wù)以in-context learning的形式進行了元學習:
對于每個模型,作者采用了兩種應用方式,即direct和channel:
作者一共探究了26個數(shù)據(jù)集,其中16個分類任務(wù)和10個多項選擇任務(wù)。
在實驗細節(jié)上,作者對于每個instance,展示了16個標注樣例。每組設(shè)置(26個數(shù)據(jù)集6個預訓練模型2組使用方式)用5個隨機數(shù)種子跑了5遍。作者在 airseq 13B 和 GPT-3 兩個大模型上,出于算力的考慮只做了6個數(shù)據(jù)集,和3個隨機數(shù)種子。
由于實驗較多,作者一般僅匯報各種均值。
模型沒有學習標簽
這篇文章的第一個結(jié)論是:in-context learning中,模型并沒有學習輸入和標簽之間的對應關(guān)系。
通過給in-context的訓練樣本賦予隨機標簽,可以構(gòu)建隨機標注的設(shè)置。從下圖中可以看出,無論是分類任務(wù)(上),還是多項選擇任務(wù)(下),隨機標注設(shè)置下(紅)模型表現(xiàn)均和正確標注(黃)表現(xiàn)相當,且明顯超過沒有in-context樣本的zero-shot 設(shè)置(藍)。
這一點趨勢,在改變隨機標簽的in-context樣本比例,以及改變in-context樣本數(shù)量時,都是保持的。選用人工設(shè)計的in-context展示形式(prompt),結(jié)論也不發(fā)生改變。
下圖調(diào)整的是改變隨機標簽的in-context樣本比例。
下圖左邊是Channel MetaICL,右邊是 Direct GPT-J,K調(diào)的是展示樣例的數(shù)目。
下圖+T表示采用人工設(shè)計的in-context展示形式。
模型學習任務(wù)形式
這篇文章的第二個結(jié)論是:in-context learning中,模型學到(激活)了輸入數(shù)據(jù)、預測標簽的分布,以及這種數(shù)據(jù)+label的語言表達形式。
下圖中,青綠色的柱子為用(從外部語料中)隨機采樣的句子替換輸入句子的設(shè)置。可以看到,模型表現(xiàn)明顯下降。因此,in-context learning中,展示樣本和測試樣本在語料分布上的一致性比較中央。猜測模型很可能學到了展示樣本的語言風格。
下圖中,青綠色的柱子為用隨機詞匯替代展示樣本中的標簽??梢钥吹?,模型表現(xiàn)明顯下降。因此,in-context learning中,展示樣本中的標簽內(nèi)容與測試樣本的標簽內(nèi)容的一致性是比較重要的。猜測模型很可能從展示樣本中學到了標簽詞匯的分布。
下圖中,分別用labels only(深紫)和no labels(深綠)來探索展示模式的差異對模型表現(xiàn)的影響。可以看到,模型相對于上面兩圖的OOD setting而言,都有了進一步的下降。這可以表明,除了領(lǐng)域內(nèi),輸入和標簽表達方式之外,in-context learning中模型還會學習這種輸入輸出的語言模式。
總結(jié)與討論
作者認為,傳統(tǒng)意義上的學習指模型建模輸入樣本和輸出樣本之間的關(guān)聯(lián)(P(y|x)或P(x,y)∝P(x|y))。在這種意義下,in-context learning并沒有學習。
然而,模型可以通過展示樣例,中的輸入、輸出、及輸入+輸出的語言表達風格來提升表現(xiàn)。在一定程度上,這種利用前綴輸入激活大模型語言表達建模能力的方式也算是一種學習。
因此,這也表明:大模型零監(jiān)督能力遠超預期。
畢竟,學習表達形式、語言風格與標簽形式,不需要標注數(shù)據(jù)的參與。大模型潛在地就具有了這種(分類)能力。
當然,反過來,也表明了in-context learning的局限在于,它不能真正建模輸入和輸出之間的關(guān)系,因此在一些輸入輸出之間的關(guān)系必然沒有被無監(jiān)督預訓練任務(wù)所建模的下游任務(wù)而言,in-context learning很可能失效。
不過,看起來目前大多數(shù)傳統(tǒng)NLP的任務(wù)都不會滿足上述“失效”設(shè)定。
額外的一點啟示
這篇文章的一作 Sewon Min 近期創(chuàng)作了很多相關(guān)主題的高質(zhì)量工作,包括:
Noisy Channel Language Model Prompting for Few-Shot Text Classification ~ https://arxiv.org/pdf/2108.04106.pdf
MetaICL: Learning to Learn In Context ~ https://arxiv.org/pdf/2110.15943.pdf
平時有些同學做了很多實驗,一到寫論文就什么實驗結(jié)果都想往論文里放。
這里還是可以學習一下 Sewon Min。這三篇文章arxiv的時間跨度只有6個月,很多實驗甚至是有overlap的,基本可以判斷為一作同時在做的幾項工作。作者從不同的角度去分割了這些實驗,以不同的匯報方式,講出了三個故事,每個故事看起來都完整且獨立,看起來就很棒。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。