最近又出了個(gè)比較吸引人眼球的Prompt Learning,甚至該方法還被稱之為NLP的“第四范式”,具體有哪幾項(xiàng)請(qǐng)參考以下鏈接:
綜述文章:https://arxiv.org/pdf/2107.13586.pdf
相關(guān)資源:http://pretrain.nlpedia.ai
Part1什么是Prompt Learning
從BERT誕生開始,使用下游任務(wù)數(shù)據(jù)微調(diào)預(yù)訓(xùn)練語(yǔ)言模型 (LM)已成為 NLP 領(lǐng)域的通用做法。直到GPT-3模型首先將自然語(yǔ)言的提示信息(prompt)和任務(wù)示例(demonstration)作為上下文輸入給GPT-3,使得GPT-3只需要少數(shù)的幾個(gè)樣本,不需要訓(xùn)練底層的參數(shù)便能夠處理任務(wù)。應(yīng)該是受到這一做法的啟發(fā),目前很多研究聚焦在Prompt Learning上,只為了更好的激發(fā)語(yǔ)言模型的潛能。
在了解Prompt Learning之前,首先我們要知道什么是prompt。prompt是提示的意思,也就是說(shuō)需要提示模型我們想讓它干什么。通常在GPT-3中,我們輸入一段描述,再加上“翻譯”或者“問(wèn)答”的prompt,那么GPT-3會(huì)生成相應(yīng)的結(jié)果。
最近該玩法在NLU中也得到了應(yīng)用,比如情感分類任務(wù),給定一句話“I missed the bus today.”,在其之后添加一個(gè)prompt:“I felt so __”,之后讓語(yǔ)言模型用一個(gè)情感類的詞進(jìn)行完型填空,再將填空的詞語(yǔ)映射到標(biāo)簽,這樣一來(lái)就能夠解決分類任務(wù)了。
大家發(fā)現(xiàn)沒有,這樣一來(lái)減少了訓(xùn)練和測(cè)試階段之間的gap,因?yàn)槲覀冊(cè)陬A(yù)訓(xùn)練的時(shí)候使用的MLM任務(wù)就是一個(gè)完型填空任務(wù),通常使用分類任務(wù)fine-tuning模型的時(shí)候需要加一個(gè)hidden_size * label_size的FFN,還得專門去訓(xùn)練這個(gè)FFN的參數(shù)。但是如果使用Prompt Learning的方式,就省略了這一步了。這樣一來(lái)豈不是不用花大力氣訓(xùn)練模型了?哈哈是的,很多研究證明Prompt Learning在小樣本(few-shot)場(chǎng)景下很有效。
Part2Few-shot Learner
論文標(biāo)題:Making Pre-trained Language Models Better Few-shot Learners
論文來(lái)源:ACL2021
論文鏈接:https://arxiv.org/pdf/2012.15723.pdf
論文代碼:https://github.com/princeton-nlp/LM-BFF
本文主要有兩個(gè)貢獻(xiàn)點(diǎn):
(1)基于提示(prompt)進(jìn)行微調(diào),關(guān)鍵是如何自動(dòng)化生成提示模板;
(2)將樣本示例以上下文的形式添加到每個(gè)輸入中,關(guān)鍵是如何對(duì)示例進(jìn)行采樣;
1prompt-based fine-tuning
之前說(shuō)過(guò)GPT-3模型基于prompt生成文本。受到該啟發(fā)本文提出了一種可以應(yīng)用于任意預(yù)訓(xùn)練模型的prompt learning模型——LM-BFF(小樣本微調(diào)預(yù)訓(xùn)練模型)。
從上圖可以看出在預(yù)訓(xùn)練的時(shí)候使用的MLM任務(wù)就是一個(gè)完型填空任務(wù),在分類任務(wù)中微調(diào)的時(shí)候需要加一個(gè)hidden_size * label_size的FFN,微調(diào)的過(guò)程需要訓(xùn)練這個(gè)FFN的參數(shù)。在使用Prompt Learning的方式的時(shí)候省略了這一步。這樣一來(lái)就不用花大力氣訓(xùn)練模型了,而且該方法減少了訓(xùn)練和測(cè)試階段之間的gap,在小樣本(few-shot)場(chǎng)景下很有效。
在具體的實(shí)驗(yàn)過(guò)程中,作者發(fā)現(xiàn)使用不同的模板或不同的標(biāo)簽詞進(jìn)行微調(diào)得到的效果是不同的,如下圖所示:
比如對(duì)于同一個(gè)標(biāo)簽詞,如果使用的prompt的模板不同(替換了某個(gè)單詞或者刪除某一個(gè)標(biāo)點(diǎn)符號(hào)),得到的結(jié)果會(huì)有較大的波動(dòng);而且當(dāng)選擇不同的標(biāo)簽詞時(shí),對(duì)預(yù)測(cè)的結(jié)果也會(huì)產(chǎn)生影響。這是由于人工設(shè)計(jì)模板和標(biāo)簽詞時(shí)候和模型本身具有的gap帶來(lái)的缺陷。因此作者提出一種自動(dòng)創(chuàng)建模板的方法。
2Automatic Prompt Generation
Prompt的自動(dòng)生成又分為了兩個(gè)部分(label的生成和模板的生成):
Label Generation
這個(gè)部分主要分成3步:
(1)首先在訓(xùn)練集中,針對(duì)未經(jīng)過(guò)微調(diào)的語(yǔ)言模型,對(duì)于每個(gè)label都找到使其條件概率最大Topk個(gè)單詞;
(2)綜合每個(gè)類別下的候選標(biāo)簽詞,然后找出使得訓(xùn)練集正確率最大的top-n個(gè)分配方式;
(3)使用dev集對(duì)模型進(jìn)行微調(diào),從n個(gè)分配方式中選擇最佳的一個(gè)標(biāo)簽詞,構(gòu)建標(biāo)簽映射關(guān)系M。
Prompt Generation
模板的生成則是使用的T5模型,固定標(biāo)簽詞,生成固定模板。
整體過(guò)程如下所示:
Fine-tuning with Demonstration
在GPT-3中,微調(diào)的時(shí)候從訓(xùn)練集中隨機(jī)抽取32個(gè)示例,以上下文的形式添加到每個(gè)輸入中;
這種方式的缺陷在于:樣本示例的數(shù)量會(huì)受到模型最大輸入長(zhǎng)度的限制;不同類型的大量隨機(jī)示例混雜在一起,會(huì)產(chǎn)生很長(zhǎng)的上下文,不利于模型學(xué)習(xí)。
LM-BFF采用2種簡(jiǎn)單的方式進(jìn)行了改進(jìn):
對(duì)于每個(gè)輸入,從每個(gè)類別中隨機(jī)采樣一個(gè)樣本示例,最終將所有類別下的采樣示例進(jìn)行拼接輸入;
對(duì)于每個(gè)輸入,在每個(gè)類別中,通過(guò)與Sentence-BERT進(jìn)行相似度計(jì)算、并從排序得分的top50%中隨機(jī)選擇一個(gè)樣本示例。
Results
本文提出了一種簡(jiǎn)單而又有效的小樣本微調(diào)方法——LM-BFF。主要包括2部分:
采用提示自動(dòng)構(gòu)建方式來(lái)進(jìn)行「基于模板的微調(diào)方法」。
動(dòng)態(tài)選擇樣本示例,作為輸入的上下文。但LM-BFF也有以下缺陷:
LM-BFF仍落后基于全量標(biāo)注數(shù)據(jù)的標(biāo)準(zhǔn)微調(diào)方法(PS:廢話,數(shù)據(jù)目前還是越多好~)
LM-BFF自動(dòng)構(gòu)建提示的方法雖然有效,但擴(kuò)展搜索空間在現(xiàn)實(shí)應(yīng)用中仍是一個(gè)巨大挑戰(zhàn);
LM-BFF僅支持幾種特定的任務(wù):1)能自然轉(zhuǎn)化為「空白填空」問(wèn)題,如結(jié)構(gòu)化預(yù)測(cè)的NER任務(wù)可能就不適合;2)句子輸入不要太長(zhǎng);3)不要包含過(guò)多的類別;其中2)和3)可以在長(zhǎng)距離語(yǔ)言模型中進(jìn)行改善。
編輯:jq
-
GPT
+關(guān)注
關(guān)注
0文章
353瀏覽量
15344 -
nlp
+關(guān)注
關(guān)注
1文章
488瀏覽量
22033
原文標(biāo)題:Prompt Learning-使用模板激發(fā)語(yǔ)言模型潛能
文章出處:【微信號(hào):NLP_lover,微信公眾號(hào):自然語(yǔ)言處理愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論