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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

?PaperWeekly 原創 ·?作者?|?張一帆

學校?|?中科院自動化所博士生

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

近幾年,NLP 技術發展迅猛,特別是 BERT 的出現,開啟了 NLP 領域新一輪的發展。從 BERT 開始,對預訓練模型進行 finetune 已經成為了整個領域的常規范式。但是從 GPT-3 開始,一種新的范式開始引起大家的關注并越來越流行:prompting。

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

NLP 中的四種范式。

全監督學習,即僅在目標任務的輸入輸出樣本數據集上訓練特定任務模型,長期以來在許多機器學習任務中發揮著核心作用,同樣的,全監督學習在 NLP 領域也非常重要。但是全監督的數據集對于學習高質量的模型來說是不充足的,早期的 NLP 模型嚴重依賴特征工程。隨著用于 NLP 任務的神經網絡出現,使得特征學習與模型訓練相結合,研究者將研究重點轉向了架構工程,即通過設計一個網絡架構能夠學習數據特征。

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

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

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

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

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

  • 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),本文的輸入需要可學習的 embedding,輸出需要任務特定的輸出層,也可以看作可學習的 prompt,第二篇文章中使用類似于 continuous prompt 類似的 prefix 加到 transformer 的每一層。

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

    WARP

    論文標題:

    WARP: Word-level Adversarial ReProgramming

    收錄會議:

    ACL 2021

    論文鏈接:

    https://arxiv.org/abs/2101.00121

    代碼鏈接:

    https://github.com/YerevaNN/warp

    本文最大的貢獻在于,不同于 Discrete Prompt 需要手工尋找或者學習離散的 token 作為 prompt,本文直接優化 embedding 作為 prompt,這給了我們的模型更多的自由度,并最終在下游任務中有更好的表現。

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

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

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

    訓練過程也很簡單,就是在下游任務的數據集中通過梯度優化尋找使得 cross-entropy loss 最小的參數。

    Experiments

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

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

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

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

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

    Prefix-Tuning

    論文標題:

    Prefix-Tuning: Optimizing Continuous Prompts for Generation

    論文鏈接:

    https://arxiv.org/abs/2101.00190

    代碼鏈接:

    https://github.com/XiangLi1999/PrefixTuning

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

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

    Problem Statement考慮一個條件生成任務,其中輸入是一個 context,輸出是一個標記序列。我們關注兩個任務,如下圖右側所示:在 table-to-text 中, 對應于線性化的數據表, 是文本描述;在 summarization 中, 是一篇文章, 是一個簡短的總結。

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

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


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

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

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

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

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

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

    Prompt Tuning

    論文標題:

    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 的性能。使用很少的參數做 tuning 性能大大超出手工設計的? prompt。

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

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

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

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

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

    Frozen

    論文標題:

    Multimodal Few-Shot Learning with Frozen Language Models

    論文鏈接:

    https://arxiv.org/abs/2106.13884

    prefix 或 prompt 已在文本領域“勢不可擋”,那能不能將其應用到多模態領域呢?

    本文提出一種叫做“Frozen”的模型結構,它的主要思想是:利用圖像編碼器把圖像作為一種動態的 prefix,與文本一起送入 LM 中,從而更好地獲得 LM 中的先驗知識,此外,為了將 LM 中的知識遷移到多模態領域,在訓練時選擇凍結 LM 的參數,僅優化圖像編碼器有關參數,模型結構如下圖所示:

    主要包括兩個部分:

  • 預訓練自回歸語言模型:使用了 7billion 參數 transformer 模型,在公開數據集 C4 上進行訓練。

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

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

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

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

    總的來說 本文將文本中的 Prefix 應用到了圖片、文本多模態領域,將圖片作為 prefix,與文本一起送入語言模型中,利用 Image Caption 數據集訓練了一個生成式語言模型。在 VQA、OKVQA、miniImageNet 等多個數據集驗證了遷移學習的效果,在 few-shot 場景下驗證了 prefix 對模型的提升。

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

    Conclusion

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

    參考文獻

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

    更多閱讀

    #投 稿?通 道#

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

    如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

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

    PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析科研心得競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。

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

    ? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?

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

    ? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算

    ?????投稿通道:

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

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

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

    △長按添加PaperWeekly小編

    ????

    現在,在「知乎」也能找到我們了

    進入知乎首頁搜索「PaperWeekly」

    點擊「關注」訂閱我們的專欄吧

    ·

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。