<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Prompt范式的緣起|Pattern-Exploiting Training

          共 2749字,需瀏覽 6分鐘

           ·

          2021-08-22 19:20

          卷友們好,我是rumor。

          我感覺我被卷到了。

          昨天Prompt突然刷屏,我才知道有這么個(gè)事兒,還什么都沒有學(xué),人家領(lǐng)域綜述都寫好了。

          說好了要當(dāng)走在AI前沿的姐姐,這怎么能忍???

          于是我趕緊上知乎學(xué)習(xí),并且創(chuàng)建了Prompt文件夾,連下幾篇paper,大概緩解了16%的焦慮。

          但刷了幾篇博客后覺得自己對背景的理解還是不夠,于是決定從頭看起。今天就來記錄下自己讀PET的一些收獲。

          Prompt的思想,我理解就是設(shè)計(jì)不同的輸入形態(tài),激發(fā)語言模型的潛力,得到任務(wù)相關(guān)的輸出,從而避免精調(diào)模式帶來的災(zāi)難性遺忘問題。引用下CMU的劉鵬飛博士放在博客里的圖:

          他的綜述想必大家都知道了,也推薦去讀下他自己的博客:

          博客:https://zhuanlan.zhihu.com/p/395115779
          綜述:https://arxiv.org/abs/2107.13586

          Prompt的做法,從任務(wù)形式來說可以分為兩種:

          1. 續(xù)寫Prefix:用在GPT2-3那種單向LM預(yù)訓(xùn)練模型上,輸入「好好學(xué)習(xí),翻譯成英文:」,輸出「good good study」
          2. 完形填空:用在BERT那種MLM式預(yù)訓(xùn)練模型上,比如情感分類任務(wù)可以輸入「這個(gè)餅不錯(cuò),太X了」,輸出「棒」

          我最早是從GPT2知道第一種方法的,第二種之前WWM在探究知識存儲能力的時(shí)候看到過,偏信息抽取任務(wù),給定Subject和關(guān)系,模型給出Object,很好理解,也不用對輸出進(jìn)行特殊處理。

          Prompt最近的突然興起,主要是因?yàn)閷W(xué)者們把任務(wù)擴(kuò)展到了NLU,之前大部分人聽說的是做生成和信息抽取,而在統(tǒng)一了方法之后,現(xiàn)在可以做分類任務(wù)和匹配任務(wù)了,同時(shí)在少樣本甚至正常場景,能追上精調(diào)的效果。

          其實(shí)對于這個(gè)新范式,核心idea還是很好理解的。難就難在:

          1. 怎么樣選取合適的Prompt,適配不同任務(wù),同時(shí)把模型潛能激發(fā)出來
          2. Answer實(shí)際上是不可控的,拿到answer后如何往標(biāo)準(zhǔn)化的Y映射
          3. 怎樣利用Prompt機(jī)制精調(diào)一下模型

          所以今天,我們就來看看Prompt范式的「開篇之作」PET,究竟是如何解決這些問題的。

          Prompt的選取

          PET針對不同任務(wù)手動設(shè)計(jì)了不同的Prompt,比如Yelp用戶評價(jià)星級預(yù)測(a是句子):

          MNLI句間關(guān)系推理(a、b是句子):

          PET這里可以參考的地方有兩點(diǎn):

          1. 給出了分類任務(wù)、匹配任務(wù)的Prompt設(shè)計(jì)樣例,讓預(yù)訓(xùn)練模型可以做NLU任務(wù)
          2. 每種任務(wù)都給了多個(gè)Prompt,畢竟模型預(yù)訓(xùn)練時(shí)見到的句子太多了,誰也不確定哪種Prompt能從黑盒里撈出什么,用多種輸入后再進(jìn)行整合是比較保險(xiǎn)的方式

          其實(shí)手動設(shè)計(jì)不是高效的方式,同時(shí)期還有一篇LPAQA[1],主要探索了信息抽取任務(wù)自動化挖掘Prompt和答案整合方法,但LPAQA主要關(guān)注信息抽取領(lǐng)域,感興趣的同學(xué)可以看下。

          Answer的映射

          對于答案也是手動定義,直接定義一個(gè)label到word的映射v。比如在做文本相似度任務(wù)時(shí),讓1=Yes,0=No,這樣直接看該單詞的logits就能預(yù)測出結(jié)果的概率了。

          在Yelp評價(jià)預(yù)測中,定義了五個(gè)映射:

          在MNLI句間關(guān)系推理中,定義了多種映射:

          訓(xùn)練范式

          解決了輸入和輸出的不可控問題之后,接下來就是PET的重頭,也是其名字Pattern-Exploiting Training的由來。

          如何建模

          以往模型只要對P(l|x)建模就好了(l是label),但現(xiàn)在我們加入了Prompt P以及標(biāo)簽映射(作者叫verbalizer),所以這個(gè)問題就可以更新為:

          其中M表示模型,s相當(dāng)于某個(gè)prompt下生成對應(yīng)word的logits。再通過softmax,就可以得到概率:

          通過這么兩個(gè)公式,PET就把這種范式下的建模整明白了,能建模也就能inference甚至是訓(xùn)練了

          但是這樣好像又變成精調(diào)了???

          于是作者在訓(xùn)練時(shí)又加上了MLM loss,進(jìn)行聯(lián)合訓(xùn)練。

          借鑒蒸餾思想

          如果說上面的過程還是比較好理解,那下面PET的操作就開始fancy起來了。

          首先讓我們強(qiáng)調(diào)一下初心,Prompt種范式在早期的最大價(jià)值就是few-shot表現(xiàn)很好。所以PET這篇文章主要還是用Prompt來提升少樣本的效果。

          那要怎么提升效果呢?作者的思路是借鑒蒸餾的思想,先用少量監(jiān)督數(shù)據(jù)訓(xùn)個(gè)模型A,然后用模型A去預(yù)測無標(biāo)簽數(shù)據(jù),得到soft label(概率值),再用soft label去訓(xùn)練最后的模型B。

          在我們常用的蒸餾套路中,要不然A比B強(qiáng)很多,要不然A比B多很多。于是PET采用了第二種方案,恰好就把多個(gè)Prompt利用起來了。

          具體的操作是:

          1. 在少量監(jiān)督數(shù)據(jù)上,給每個(gè)Prompt訓(xùn)練一個(gè)模型
          2. 對于無監(jiān)督數(shù)據(jù),將同一個(gè)樣本的多個(gè)prompt預(yù)測結(jié)果進(jìn)行集成,采用平均或加權(quán)(根據(jù)acc分配權(quán)重)的方式,再歸一化得到概率分布,作為無監(jiān)督數(shù)據(jù)的soft label
          3. 在得到的soft label上finetune一個(gè)最終模型

          多輪的iPET

          如果覺得上面的三步過于復(fù)雜,那就太小瞧作者了,他們又提出了iPET。

          Iterative PET。

          把所有模型集成到C上是不能滿足作者的,因?yàn)槟切┠P蜎]法相互學(xué)習(xí)。比如有的模型學(xué)到了worse的pattern,它得到的label就會misleading。

          所以!

          我們可以循環(huán)地進(jìn)行上面三步,逐步擴(kuò)大soft label的范圍,這樣下面新訓(xùn)的模型就能學(xué)到之前模型的知識!

          模型效果

          經(jīng)過一系列操作,最終可以看到,PET在少樣本的情況下完勝精調(diào):

          我???

          不知道大家怎么想,其實(shí)我看完之后是有些懵的。

          弱弱地說一句,我覺得上面的實(shí)驗(yàn)比較不太fair?

          首先,是PET在訓(xùn)練時(shí)加上了MLM損失,在無監(jiān)督語料上增量預(yù)訓(xùn)練,而我們都知道這本身就是可以提升效果的。其次,如果用精調(diào)的范式重復(fù)一系列上述操作,效果說不定也可以提上去。

          除了單純的效果比較,如果放到落地應(yīng)用上來講,算上那么多模型訓(xùn)練和調(diào)參的時(shí)間,我可能已經(jīng)手工標(biāo)了幾千條數(shù)據(jù)了。。。

          不過Anyway,大佬們都說好,身邊幾個(gè)同學(xué)也都說好。

          可能是還沒看到精彩的部分,我再接著讀下面幾篇吧。

          參考資料

          [1]

          How Can We Know What Language Models Know?: https://aclanthology.org/2020.tacl-1.28.pdf



          大家好我是rumor
          一個(gè)熱愛技術(shù),有一點(diǎn)點(diǎn)幽默的妹子
          歡迎關(guān)注我
          帶你學(xué)習(xí)帶你肝
          一起在人工智能時(shí)代旋轉(zhuǎn)跳躍眨巴眼


          「走在前沿不掉隊(duì)」

          瀏覽 73
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  真人操色俺来也 | 久热中文字幕无码视频 | 牛牛综合网 | 非洲婬乱a一级毛片多女 | 三级av二区 |