日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从4篇最新论文详解NLP新范式——Continuous Prompt

發(fā)布時間:2024/10/8 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从4篇最新论文详解NLP新范式——Continuous Prompt 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?PaperWeekly 原創(chuàng) ·?作者?|?張一帆

學(xué)校?|?中科院自動化所博士生

研究方向?|?計算機視覺

近幾年,NLP 技術(shù)發(fā)展迅猛,特別是 BERT 的出現(xiàn),開啟了 NLP 領(lǐng)域新一輪的發(fā)展。從 BERT 開始,對預(yù)訓(xùn)練模型進行 finetune 已經(jīng)成為了整個領(lǐng)域的常規(guī)范式。但是從 GPT-3 開始,一種新的范式開始引起大家的關(guān)注并越來越流行:prompting。

首先我們根據(jù)綜述文章 Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing [1] 對 prompt 的來源和大致思想做個介紹。

NLP 中的四種范式。

全監(jiān)督學(xué)習(xí),即僅在目標(biāo)任務(wù)的輸入輸出樣本數(shù)據(jù)集上訓(xùn)練特定任務(wù)模型,長期以來在許多機器學(xué)習(xí)任務(wù)中發(fā)揮著核心作用,同樣的,全監(jiān)督學(xué)習(xí)在 NLP 領(lǐng)域也非常重要。但是全監(jiān)督的數(shù)據(jù)集對于學(xué)習(xí)高質(zhì)量的模型來說是不充足的,早期的 NLP 模型嚴(yán)重依賴特征工程。隨著用于 NLP 任務(wù)的神經(jīng)網(wǎng)絡(luò)出現(xiàn),使得特征學(xué)習(xí)與模型訓(xùn)練相結(jié)合,研究者將研究重點轉(zhuǎn)向了架構(gòu)工程,即通過設(shè)計一個網(wǎng)絡(luò)架構(gòu)能夠?qū)W習(xí)數(shù)據(jù)特征。

從 2017-2019 年開始,NLP 模型發(fā)生了翻天覆地的變化,這種全監(jiān)督范式發(fā)揮的作用越來越小。具體而言,研究重點開始轉(zhuǎn)向預(yù)訓(xùn)練、微調(diào)范式。在這一范式下,一個具有固定架構(gòu)的模型通過預(yù)訓(xùn)練作為語言模型(LM),用來預(yù)測觀測到的文本數(shù)據(jù)的概率。由于訓(xùn)練 LM 所需的原始文本數(shù)據(jù)需要足夠豐富,因此,這些 LM 都是在比較大的數(shù)據(jù)集上訓(xùn)練完成。

之后,通過引入額外的參數(shù),并使用特定任務(wù)的目標(biāo)函數(shù)對模型進行微調(diào),將預(yù)訓(xùn)練 LM 適應(yīng)于不同的下游任務(wù)。在這種范式下,研究重點轉(zhuǎn)向了目標(biāo)工程,設(shè)計在預(yù)訓(xùn)練和微調(diào)階段使用的訓(xùn)練目標(biāo)(損失函數(shù))。

當(dāng)前我們正處于第二次巨變中,「預(yù)訓(xùn)練、微調(diào)」過程被稱為「預(yù)訓(xùn)練、prompt 和預(yù)測」的過程所取代。在這種范式中,不是通過目標(biāo)工程使預(yù)訓(xùn)練的語言模型(LM)適應(yīng)下游任務(wù),而是重新形式化(Reformulate)下游任務(wù),使其看起來更像是在文本 prompt 的幫助下在原始 LM 訓(xùn)練期間解決的任務(wù)。

通過這種方式,選擇適當(dāng)?shù)?prompt,該方法可以操縱模型的行為,以便預(yù)訓(xùn)練的 LM 本身可以用于預(yù)測所需的輸出,有時甚至無需任何額外的特定任務(wù)訓(xùn)練。這種方法的優(yōu)點是給定一組合適的 prompt,以完全無監(jiān)督的方式訓(xùn)練的單個 LM 就能夠用于解決大量任務(wù)。然而該方法也存在一個問題——這種方法引入了 prompt 挖掘工程的必要性,即需要找出最合適的 prompt 來讓 LM 解決面臨的任務(wù)。

目前的 Prompt Engineering 主要分為三種方法:Discrete Prompt,Continuous Prompt 以及 Hybrid Prompt。本文挑選了最新四篇 Continuous Prompt 相關(guān)的文章加以解讀。

  • WARP: Word-level Adversarial ReProgramming

  • Prefix-Tuning: Optimizing Continuous Prompts for Generation

  • The Power of Scale for Parameter-Efficient Prompt Tuning

  • Multimodal Few-Shot Learning with Frozen Language Models

  • 第一篇文章首次提出了 continuous prompt 的方法(從 adversarial programming 中得到的 insight),本文的輸入需要可學(xué)習(xí)的 embedding,輸出需要任務(wù)特定的輸出層,也可以看作可學(xué)習(xí)的 prompt,第二篇文章中使用類似于 continuous prompt 類似的 prefix 加到 transformer 的每一層。

    這個過程能否進一步簡化呢?第三篇文章給出了答案,第三篇文章只對輸入添加額外的 個可學(xué)習(xí)的 prompt,并得到了超越前人的結(jié)果。第四篇文章屬于一篇應(yīng)用,將 continuous prompt 成功的應(yīng)用在了多模態(tài)領(lǐng)域。

    WARP

    論文標(biāo)題:

    WARP: Word-level Adversarial ReProgramming

    收錄會議:

    ACL 2021

    論文鏈接:

    https://arxiv.org/abs/2101.00121

    代碼鏈接:

    https://github.com/YerevaNN/warp

    本文最大的貢獻在于,不同于 Discrete Prompt 需要手工尋找或者學(xué)習(xí)離散的 token 作為 prompt,本文直接優(yōu)化 embedding 作為 prompt,這給了我們的模型更多的自由度,并最終在下游任務(wù)中有更好的表現(xiàn)

    文章的思路很簡單,我們需要優(yōu)化的參數(shù)就是兩組 embedding , 代表 prompt, 是對每一類的分類參數(shù),有點類似于全連接層這種感覺。

    如上圖所示,具體來說,我們把 prompt tokens 插入到輸入序列中,再經(jīng)過 encoder 和一個 MLM head,然后通過 ,那么我們分類的概率可以通過如下公式計算:

    公式中的 是插入了 prompt 的序列, 是所有類別, 是預(yù)訓(xùn)練語言模型的的輸出。

    訓(xùn)練過程也很簡單,就是在下游任務(wù)的數(shù)據(jù)集中通過梯度優(yōu)化尋找使得 cross-entropy loss 最小的參數(shù)。

    Experiments

    實驗過程中所有的 prompt tokens 都被初始化為 [MASK] 的 embedding。

    在最常用的 benchmark GLUE上,WARP 取得了非常不錯的效果,并且參數(shù)量少了好多個數(shù)量級。下表中的 # 表示訓(xùn)練的參數(shù)量。

    再看一下 ablation, 即模型有 個 prompt 在里面, 表示使用最佳的 MNLI 參數(shù)初始化的 WARP 模型,可以看到當(dāng)我們減少可訓(xùn)練 prompt 參數(shù)的數(shù)量時,性能下降,但模型仍然有效。

    在 few-shot learning 的 setting 下,使用 SuperGLUE benchmark,WARP 超過了 PET 和 GPT-3

    在可解釋性方面,作者通過尋找距離 embedding 最近的 token 來進行離散化,我們摘取兩個任務(wù)對應(yīng)的 prompt 來看一看,可以看到基本上沒有啥真實的語義信息。相比之下 就比較好解釋了,對 MNLI 的“contradiction”類的 embedding 接近于 token “unless”。SST-2 任務(wù)中“negative”和“positive”類的 embedding 分別接近于“defective”和“important”。

    Prefix-Tuning

    論文標(biāo)題:

    Prefix-Tuning: Optimizing Continuous Prompts for Generation

    論文鏈接:

    https://arxiv.org/abs/2101.00190

    代碼鏈接:

    https://github.com/XiangLi1999/PrefixTuning

    將 prompt 用于 NLG 任務(wù)上,比如對一個數(shù)據(jù)表生成描述的任務(wù)上,任務(wù)的輸入是一個數(shù)據(jù)表(比如 【名稱:星巴克|類型:咖啡店】),輸出是一段描述(星巴克出售咖啡)。

    Prefix-Tuning 在該任務(wù)的輸入前加上一個任務(wù)特定的連續(xù)序列(prefix),即下圖下方紅色的部分。與 prompt 相比,這里不再是真實的 token,而是連續(xù)序列。和 finetune 相比,finetune 優(yōu)化的是整體的參數(shù),而這里只對每個任務(wù)優(yōu)化對應(yīng)的 prefix。

    Problem Statement考慮一個條件生成任務(wù),其中輸入是一個 context,輸出是一個標(biāo)記序列。我們關(guān)注兩個任務(wù),如下圖右側(cè)所示:在 table-to-text 中, 對應(yīng)于線性化的數(shù)據(jù)表, 是文本描述;在 summarization 中, 是一篇文章, 是一個簡短的總結(jié)。

    我們的預(yù)訓(xùn)練生成模型記作 ,如下圖頂部所示記 是 的 concatenation, 是輸入 的序列號。記 第 個 step 的激活值, 是所有時間點上所有層的激活值, 是 層 transformer 在 step 時的激活值。一個自回歸的語言模型的激活值按照如下方式進行生成:

    最后一層 被用來計算 next token 的概率 。


    接下來進入 prefix 的方法介紹,首先 highlevel 的說一下 intuition,然后仔細說說方法。

    Intuition本文的 intuition 在于:相信有一個合適的上下文可以在不改變參數(shù)的情況下引導(dǎo) LM。例如,如果我們想讓 LM 生成一個單詞(例如,Obama),我們可以將其常見的搭配作為上下文(例如,Barack)的前綴,LM 將為所需的單詞分配更高的概率。這是對于一個單詞的引導(dǎo),那么是否存在一個 context 可以引導(dǎo)整個句子的生成呢?這是本文要回答的關(guān)鍵問題。

    Method本文對 LM 每一層的輸入添加一個 prefix ,或者對 source,target 端添加不同的 prefix ,這里使用 表示 prefix 的索引, 表示 prefix 的長度。prefix-tuning 初始化一個前綴矩陣 ,如果索引值屬于 prefix 的 ids,那就從 prefix 矩陣中拿出該 id 對應(yīng)的 embedding,如果不是,那么 就是上一步計算出來的 embedding。值得注意的是,即使是第二種情況, 也是和 相關(guān)的,因為在其左側(cè)的文本里依然存在 prefix。

    確定了隱變量,其實模型的訓(xùn)練方式就和之前的工作一樣了,只不過這里只更新 prefix 的參數(shù)。但是實際實現(xiàn)的時候發(fā)現(xiàn)直接更新 的參數(shù)非常的不穩(wěn)定,因此本文采取了一種方式重參數(shù)化的方式 ,將一個較小的矩陣 參數(shù)化到 。

    Experiments:簡單看看實驗結(jié)果,對于 table-to-text 生成的實驗,使用如下三個數(shù)據(jù)集,Prefix-tuning 以較少的參數(shù)量得到了大多數(shù) metric 上較好的性能。

    值得注意的是,數(shù)據(jù)量少的時候,在初始化方面 prefix-tunning 有獨到的 trick,隨機初始化的性能往往不是很好,將 prefix 初始化為一些真實 word 對應(yīng)的激活值會比較有效。特別是將 prefix 用一些任務(wù)相關(guān)的詞的激活值進行初始化,效果最好。

    Prompt Tuning

    論文標(biāo)題:

    The Power of Scale for Parameter-Efficient Prompt Tuning

    收錄會議:

    EMNLP 2021

    論文鏈接:

    https://arxiv.org/abs/2104.08691

    本文有一個非常有意思的地方,如下圖所示。prompt-tuning 作為 prompt-design 和 model tuning 之間一個折中的方法,隨著模型大小的增大,一度趕上了 model tuning 的性能。使用很少的參數(shù)做 tuning 性能大大超出手工設(shè)計的? prompt。

    回憶一下,第一篇文章中輸入需要可學(xué)習(xí)的 embedding,輸出需要任務(wù)特定的輸出層,第二篇文章中 prefix 加到 transformer 的每一層,這個過程能否進一步簡化呢?本文給出了答案,本文只對輸入添加額外的 個可學(xué)習(xí)的 token。除此之外,本文還提出了 prompt ensembling 的方法,即為一個 task 學(xué)習(xí)多個 prompt。

    同樣的,本文 follow 預(yù)訓(xùn)練模型 text-to-text 的方法,將 中的 定義為可以表示某一類標(biāo)簽的 token 序列, 是輸入的一系列 token,加上 prompt 和它的參數(shù),任務(wù)又可以寫為 。模型訓(xùn)練的時候就是最大化 的概率,但是只有 可以被更新。

    Design Decisions. 三種方法進行 prompt 初始化:(i) 隨機,效果一般不好。(ii) 在詞表中找?guī)讉€,讓 prompt 的參數(shù)接近真實 embedding。(iii) 根據(jù) task 來決定,比如情感分析,我們可以將 prompt 初始化為“negative, positive, happy”等。

    這里比較有意思的實驗是關(guān)于 zero-shot learning 的,本文有個觀點:因為我們限制了模型參數(shù)不被調(diào)整,prompt-tuning 阻止模型對數(shù)據(jù)集進行過擬合,畢竟幾個 prompt 并不是 over-parameterized 的,所以 prompt-tuning 也許對domain shift 更加魯棒。

    文章在一個 source domain 上訓(xùn)練出 prompt,然后將他直接用于 target 數(shù)據(jù)集進行 evaluation。結(jié)果如下所示,prompt-tuning 顯示出了比 model fine-tuneing 更魯棒的結(jié)果。

    Frozen

    論文標(biāo)題:

    Multimodal Few-Shot Learning with Frozen Language Models

    論文鏈接:

    https://arxiv.org/abs/2106.13884

    prefix 或 prompt 已在文本領(lǐng)域“勢不可擋”,那能不能將其應(yīng)用到多模態(tài)領(lǐng)域呢?

    本文提出一種叫做“Frozen”的模型結(jié)構(gòu),它的主要思想是:利用圖像編碼器把圖像作為一種動態(tài)的 prefix,與文本一起送入 LM 中,從而更好地獲得 LM 中的先驗知識,此外,為了將 LM 中的知識遷移到多模態(tài)領(lǐng)域,在訓(xùn)練時選擇凍結(jié) LM 的參數(shù),僅優(yōu)化圖像編碼器有關(guān)參數(shù),模型結(jié)構(gòu)如下圖所示:

    主要包括兩個部分:

  • 預(yù)訓(xùn)練自回歸語言模型:使用了 7billion 參數(shù) transformer 模型,在公開數(shù)據(jù)集 C4 上進行訓(xùn)練。

  • 視覺編碼器:以 NF-ResNet-50 為 backbone,目標(biāo)是將輸入的原生圖像轉(zhuǎn)化為連續(xù)的序列,以便與文本一起送入語言模型中。

  • 視覺前綴的構(gòu)造方式:將視覺編碼器的輸出映射為 的矩陣, 為嵌入維度, 可以看作 token 的個數(shù),經(jīng)過測試, 時效果最佳。

    訓(xùn)練過程稍微有點特殊,訓(xùn)練時統(tǒng)一使用 Conceptual Captions 作為訓(xùn)練集,Conceptual Captions 的輸入是一張圖片,輸出是關(guān)于此圖片的描述,所以在訓(xùn)練時語言模型是在做生成任務(wù)。訓(xùn)練時還固定了 LM 的所有參數(shù),僅優(yōu)化視覺編碼器的參數(shù)。這是因為 few-shot 場景下數(shù)據(jù)較少,若不固定 LM 的話,反而會破壞 LM 原有的信息,甚至使模型產(chǎn)生災(zāi)難性遺忘。

    訓(xùn)練時的輸入是形如(image, text)的一堆 pair,但是 few-shot 場景下可能會輸入多個(image, text)pair,所以在位置編碼上使用了相對位置編碼,從而保證 image 相對于 text 是在其前面的。

    總的來說 本文將文本中的 Prefix 應(yīng)用到了圖片、文本多模態(tài)領(lǐng)域,將圖片作為 prefix,與文本一起送入語言模型中,利用 Image Caption 數(shù)據(jù)集訓(xùn)練了一個生成式語言模型。在 VQA、OKVQA、miniImageNet 等多個數(shù)據(jù)集驗證了遷移學(xué)習(xí)的效果,在 few-shot 場景下驗證了 prefix 對模型的提升。

    通過將圖片作為prefix,從而將文本中的靜態(tài) prefix 轉(zhuǎn)化為動態(tài) prefix,能更好的適應(yīng)不同的任務(wù)。但是,由于 Visiual Encoder 和文本的處理比較簡單,模型效果離 SOTA 有一定的距離。

    Conclusion

    總的來說,discrete prompt 和 continuous prompt 各有優(yōu)劣,discrete 學(xué)到的 prompt 自然帶有解釋性,但是離散的 token 本身就比較難優(yōu)化,目前的方法也是近似的挑選而已。continuous prompt 最近的結(jié)果表現(xiàn)得更好,不需要考慮映射回離散的詞空間,有更大的自由度。這部分也能和 CV,多模態(tài)更緊密地結(jié)合。

    參考文獻

    [1] https://arxiv.org/abs/2107.13586

    更多閱讀

    #投 稿?通 道#

    ?讓你的文字被更多人看到?

    如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。

    總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?

    PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點剖析科研心得競賽經(jīng)驗講解等。我們的目的只有一個,讓知識真正流動起來。

    ?????稿件基本要求:

    ? 文章確系個人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標(biāo)注?

    ? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題

    ? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競爭力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算

    ?????投稿通道:

    ? 投稿郵箱:hr@paperweekly.site?

    ? 來稿請備注即時聯(lián)系方式(微信),以便我們在稿件選用的第一時間聯(lián)系作者

    ? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿

    △長按添加PaperWeekly小編

    ????

    現(xiàn)在,在「知乎」也能找到我們了

    進入知乎首頁搜索「PaperWeekly」

    點擊「關(guān)注」訂閱我們的專欄吧

    ·

    總結(jié)

    以上是生活随笔為你收集整理的从4篇最新论文详解NLP新范式——Continuous Prompt的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。