精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NLP中Prompt的產生和興起

深度學習自然語言處理 ? 來源:RUC AI Box ? 作者:閔映乾 ? 2021-09-12 14:52 ? 次閱讀

導讀:本文目標是對近期火爆異常的Prompt相關研究作一些追溯和展望,內容主要參考論文《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》,并摻雜了筆者的一些個人見解,歡迎大家積極討論~所用圖片均來自該論文。

論文的arxiv鏈接如下:

https://arxiv.org/abs/2107.13586

本文的內容框架如下:

一、Prompt的產生和興起

二、什么是Prompt

三、Prompt的設計方法

四、Prompt的挑戰和展望

一、Prompt的產生和興起

近幾年來,有關預訓練語言模型(PLM)的研究比比皆是,自然語言處理(NLP)也借著這股春風獲得了長足發展。尤其是在2017-2019年間,研究者們的重心逐漸從傳統task-specific的有監督模式轉移到預訓練上。基于預訓練語言模型的研究思路通常是“pre-train, fine-tune”,即將PLM應用到下游任務上,在預訓練階段和微調階段根據下游任務設計訓練對象并對PLM本體進行調整。

隨著PLM體量的不斷增大,對其進行fine-tune的硬件要求、數據需求和實際代價也在不斷上漲。除此之外,豐富多樣的下游任務也使得預訓練和微調階段的設計變得繁瑣復雜,因此研究者們希望探索出更小巧輕量、更普適高效的方法,Prompt就是一個沿著此方向的嘗試。

融入了Prompt的新模式大致可以歸納成”pre-train, prompt, and predict“,在該模式中,下游任務被重新調整成類似預訓練任務的形式。例如,通常的預訓練任務有Masked Language Model, 在文本情感分類任務中,對于 “I love this movie.” 這句輸入,可以在后面加上prompt “The movie is ___” 這樣的形式,然后讓PLM用表示情感的答案填空如 “great”、“fantastic” 等等,最后再將該答案轉化成情感分類的標簽,這樣以來,通過選取合適的prompt,我們可以控制模型預測輸出,從而一個完全無監督訓練的PLM可以被用來解決各種各樣的下游任務。

因此,合適的prompt對于模型的效果至關重要。大量研究表明,prompt的微小差別,可能會造成效果的巨大差異。研究者們就如何設計prompt做出了各種各樣的努力——自然語言背景知識的融合、自動生成prompt的搜索、不再拘泥于語言形式的prompt探索等等,筆者將會在第三節進行進一步討論。

二、什么是Prompt

Prompt剛剛出現的時候,還沒有被叫做Prompt,是研究者們為了下游任務設計出來的一種輸入形式或模板,它能夠幫助PLM“回憶”起自己在預訓練時“學習”到的東西,因此后來慢慢地被叫做Prompt了。

對于輸入的文本,有函數,將轉化成prompt的形式,即:

該函數通常會進行兩步操作:

使用一個模板,模板通常為一段自然語言,并且包含有兩個空位置:用于填輸入的位置和用于生成答案文本的位置。

把輸入填到的位置。

還用前文提到的例子。在文本情感分類的任務中,假設輸入是

“ I love this movie.”

使用的模板是

“ [X] Overall, it was a [Z] movie.”

那么得到的就應該是 “I love this movie. Overall it was a [Z] movie.”

在實際的研究中,prompts應該有空位置來填充答案,這個位置一般在句中或者句末。如果在句中,一般稱這種prompt為cloze prompt;如果在句末,一般稱這種prompt為prefix prompt。和的位置以及數量都可能對結果造成影響,因此可以根據需要靈活調整。

另外,上面的例子中prompts都是有意義的自然語言,但實際上其形式并不一定要拘泥于自然語言?,F有相關研究使用虛擬單詞甚至直接使用向量作為prompt,筆者將會在第三節講到。

下一步會進行答案搜索,顧名思義就是LM尋找填在處可以使得分數最高的文本 。最后是答案映射。有時LM填充的文本并非任務需要的最終形式,因此要將此文本映射到最終的輸出。例如,在文本情感分類任務中,“excellent”, “great”, “wonderful” 等詞都對應一個種類 “++”,這時需要將詞語映射到標簽再輸出。

三、Prompt的設計

Prompt大致可以從下面三個角度進行設計:

Prompt的形狀

手工設計模板

自動學習模板

Prompt的形狀

Prompt的形狀主要指的是和的位置和數量。上文提到過cloze prompt和prefix prompt的區別,在實際應用過程中選擇哪一種主要取決于任務的形式和模型的類別。cloze prompts和Masked Language Model的訓練方式非常類似,因此對于使用MLM的任務來說cloze prompts更加合適;對于生成任務來說,或者使用自回歸LM解決的任務,prefix prompts就會更加合適;Full text reconstruction models較為通用,因此兩種prompt均適用。另外,對于文本對的分類,prompt模板通常要給輸入預留兩個空,和。

手工設計模板

Prompt最開始就是從手工設計模板開始的。手工設計一般基于人類的自然語言知識,力求得到語義流暢且高效的模板。例如,Petroni等人在著名的LAMA數據集中為知識探針任務手工設計了cloze templates;Brown等人為問答、翻譯和探針等任務設計了prefix templates。手工設計模板的好處是較為直觀,但缺點是需要很多實驗、經驗以及語言專業知識,代價較大。

自動學習模板

為了解決手工設計模板的缺點,許多研究開始探究如何自動學習到合適的模板。自動學習的模板又可以分為離散(Discrete Prompts)和連續(Continuous Prompts)兩大類。離散的主要包括 Prompt Mining, Prompt Paraphrasing, Gradient-based Search, Prompt Generation 和 Prompt Scoring;連續的則主要包括Prefix Tuning, Tuning Initialized with Discrete Prompts 和 Hard-Soft Prompt Hybrid Tuning。

離散Prompts

自動生成離散Prompts指的是自動生成由自然語言的詞組成的Prompt,因此其搜索空間是離散的。目前大致可以分成下面幾個方法:

Prompt Mining. 該方法需要一個大的文本庫支持,例如Wikipedia。給定輸入和輸出,要找到和之間的中間詞或者依賴路徑,然后選取出現頻繁的中間詞或依賴路徑作為模板,即“[X] middle words [Z]”。

Prompt Paraphrasing. Paraphrasing-based方法是基于釋義的,主要采用現有的種子prompts(例如手動構造),并將其轉述成一組其他候選prompts,然后選擇一個在目標任務上達到最好效果的。一般的做法有:將提示符翻譯成另一種語言,然后再翻譯回來;使用同義或近義短語來替換等。

Gradient-based Search. 梯度下降搜索的方法是在單詞候選集里選擇詞并組合成prompt,利用梯度下降的方式不斷嘗試組合,從而達到讓PLM生成需要的詞的目的。

Prompt Generation. 既然Prompt也是一段文本,那是否可以用文本生成的方式來生成Prompt呢?該類方法就是將標準的自然語言生成的模型用于生成prompts了。例如,Gao等人將T5引入了模板搜索的過程,讓T5生成模板詞;Ben-David 等人提出了一種域自適應算法,訓練T5為每個輸入生成一種唯一的域相關特征,然后把輸入和特征連接起來組成模板再用到下游任務中。

Prompt Scoring. Davison等人在研究知識圖譜補全任務的時候為三元組輸入(頭實體,關系,尾實體)設計了一種模板。首先人工制造一組模板候選,然后把相應的[X]和[Z]都填上成為prompts,并使用一個雙向LM給這些prompts打分,最后選取其中的高分prompt。

連續Prompts

既然構造Prompt的初衷是能夠找到一個合適的方法,讓PLM更“聽話”地得出我們想要的結果,那就不必把prompt的形式拘泥于人類可以理解的自然語言了,只要機器可以理解就好了。因此,還有一些方法探索連續型prompts——直接作用到模型的embedding空間。連續型prompts去掉了兩個約束條件:

模板中詞語的embedding可以是整個自然語言的embedding,不再只是有限的一些embedding。

模板的參數不再直接取PLM的參數,而是有自己獨立的參數,可以通過下游任務的訓練數據進行調整。

目前的連續prompts方法大致可以分為下面幾種:

Prefix Tuning. Prefix Tuning最開始由Li等人提出,是一種在輸入前添加一串連續的向量的方法,該方法保持PLM的參數不動,僅訓練合適的前綴(prefix)。它的形式化定義是,在給定一個可訓練的前綴矩陣和一個固定的參數化為的PLM的對數似然目標上進行優化。

613a0a50-125f-11ec-8fb8-12bb97331649.png

其中

6146ae54-125f-11ec-8fb8-12bb97331649.png

指的是所有神經網絡層在第i個時間步的連接。如果對應的時間步在前綴中,則它可以直接從前綴矩陣中復制過來;否則需要使用PLM進行計算。

類似地,Lester等人在輸入序列前面加上特殊的token來組成一個模板,然后直接調整這些token的embedding。 和上面的Prefix Tuning的方法相比,他們的方法相對來說參數較少,因為沒有在每一層網絡中引入額外的參數。

Tuing Initialized with Discrete Prompts. 這類方法中連續prompts是用已有的prompts初始化的,已有的prompts可以是手工設計的,也可以是之前搜索發現的離散prompts。Zhong 等人先用一個離散prompt搜索方法定義了一個模板,然后基于該模板初始化虛擬的token,最后微調這些token的embedding以提高準確率。

Hard-Soft Prompt Hybrid Tuning. 這類方法可以說是手工設計和自動學習的結合,它通常不單純使用可學習的prompt模板,而是在手工設計的模板中插入一些可學習的embedding。Liu等人提出了“P-Tuning”方法,通過在input embedding中插入可訓練的變量來學習連續的prompts。并且,該方法使用BiLSTM的輸出來表示prompt embeddings,以便讓prompt tokens之間有一定的交互。P-tuning還引入了任務相關的anchor tokens(例如關系提取中的“capital”)來進一步提高效果,這些anchor tokens不參與后續的調優。Han等人提出了Prompt Tunning with Rules(PTR)方法,使用手工指定的子模板按照邏輯規則組裝成完整的模板。為了增強生成的模板的表示能力,該方法還插入了幾個虛擬token,這些虛擬token的embeddings可以和PLM的參數一起被調整,PTR的模板token既有實際token也有虛擬token 。實驗結果證明了該方法在關系分類任務中的有效性。四、Prompt的挑戰與展望

盡管Prompt相關研究搞得如火如荼,但目前仍存在許多問題,值得研究者們去探索。

Prompt的設計問題。目前使用Prompt的工作大多集中育分類任務和生成任務,其它任務則較少,因為如何有效地將預訓練任務和prompt聯系起來還是一個值得探討的問題。另外,模板和答案的聯系也函待解決。模型的表現同時依賴于使用的模板和答案的轉化,如何同時搜索或者學習出兩者聯合的最好效果仍然很具挑戰性。

Prompt的理論分析和可解釋性。盡管Prompt方法在很多情況下都取得了成功,但是目前prompt-based learning的理論分析和保證還很少,使得人們很難了解Prompt為什么能達到好的效果,又為什么在自然語言中意義相近的Prompt有時效果卻相差很大。

Prompt在PLM debias方面的應用。由于PLM在預訓練過程中見過了大量的人類世界的自然語言,所以很自然地受到了影響。拿一個簡單的例子來說,可能不太恰當,比如說訓練語料中有很多的“The capital of China is ”Beijing.“,導致模型認為下次看到”capital“ 的時候都會預測出”Beijing“,而不是著重看到底是哪個國家的首都。在應用的過程中,Prompt還暴露了PLM學習到的很多其它bias,比如種族歧視、恐怖主義、性別對立等等。已有相關研究關注是否可以利用Prompt來對這些bias進行修正,但還處在比較初級的階段,這也會是一個值得研究的方向。

五、引用

[1] Liu P, Yuan W, Fu J, et al. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing[J]。 arXiv preprint arXiv:2107.13586, 2021.

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4762

    瀏覽量

    100541
  • nlp
    nlp
    +關注

    關注

    1

    文章

    487

    瀏覽量

    22012

原文標題:NLP新寵——淺談Prompt的前世今生

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AI對話魔法 Prompt Engineering 探索指南

    作者:京東物流 李雪婷 一、什么是 Prompt Engineering? 想象一下,你在和一個智能助手聊天,你需要說出非常清晰和具體的要求,才能得到你想要的答案。Prompt
    的頭像 發表于 11-07 10:11 ?697次閱讀
    AI對話魔法 <b class='flag-5'>Prompt</b> Engineering 探索指南

    霍爾效應磁場怎么產生

    在霍爾效應,磁場的產生是外部提供的,而不是由霍爾效應本身產生的。具體來說,磁場通常由外部電源提供的勵磁電流產生。 磁場產生的方式 在霍爾效
    的頭像 發表于 10-15 09:46 ?515次閱讀

    nlp邏輯層次模型的特點

    層次是NLP邏輯層次模型的最底層,主要關注單個詞匯的意義和用法。在這個層次上,模型需要識別和理解詞匯的基本屬性,如詞性、詞義、詞形變化等。詞匯層次的特點包括: a. 詞性標注:識別文本每個詞匯的詞性,如名詞、動詞、形容詞等。
    的頭像 發表于 07-09 10:39 ?326次閱讀

    nlp神經語言和NLP自然語言的區別和聯系

    神經語言(Neuro-Linguistic Programming,NLP) 神經語言是一種心理學方法,它研究人類思維、語言和行為之間的關系。NLP的核心理念是,我們可以通過改變我們的思維方式和語言
    的頭像 發表于 07-09 10:35 ?709次閱讀

    nlp自然語言處理框架有哪些

    自然語言處理(Natural Language Processing,簡稱NLP)是計算機科學和人工智能領域的一個重要分支,它致力于使計算機能夠理解和處理人類語言。隨著技術的發展,NLP領域出現了
    的頭像 發表于 07-09 10:28 ?499次閱讀

    nlp自然語言處理的主要任務及技術方法

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學領域的一個分支,它研究如何讓計算機能夠理解、生成和處理人類語言。NLP技術在許多領域都有廣泛
    的頭像 發表于 07-09 10:26 ?870次閱讀

    nlp自然語言處理模型怎么做

    的進展。本文將詳細介紹NLP模型的構建過程,包括數據預處理、模型選擇、訓練與優化等方面。 數據預處理 數據預處理是NLP模型構建的第一步,其目的是將原始文本數據轉換為模型能夠處理的格式。數據預處理主要包括以下幾個步驟: 1.1 文本清洗 文本清洗是去除文本
    的頭像 發表于 07-05 09:59 ?535次閱讀

    nlp自然語言處理的應用有哪些

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領域的一個分支,它致力于使計算機能夠理解和生成自然語言。隨著技術的發展,NLP已經在許多領域得到了廣泛
    的頭像 發表于 07-05 09:55 ?2456次閱讀

    NLP技術在機器人中的應用

    在人工智能的廣闊領域中,自然語言處理(NLP)技術作為連接人類語言與機器智能的橋梁,正逐漸滲透到我們日常生活的方方面面,其中機器人技術便是一個尤為突出的應用領域。NLP技術不僅賦予了機器人理解
    的頭像 發表于 07-04 16:04 ?422次閱讀

    NLP技術在人工智能領域的重要性

    在自然語言處理(Natural Language Processing, NLP)與人工智能(Artificial Intelligence, AI)的交織發展,NLP技術作為連接人類語言與機器
    的頭像 發表于 07-04 16:03 ?427次閱讀

    NLP模型RNN與CNN的選擇

    NLP的應用場景、工作原理、優缺點,以及在選擇時應考慮的關鍵因素,以期為讀者提供一個全面而深入的理解。
    的頭像 發表于 07-03 15:59 ?430次閱讀

    什么是自然語言處理 (NLP)

    自然語言處理(Natural Language Processing, NLP)是人工智能領域中的一個重要分支,它專注于構建能夠理解和生成人類語言的計算機系統。NLP的目標是使計算機能夠像人類一樣
    的頭像 發表于 07-02 18:16 ?1050次閱讀

    負電壓是什么?它在電路是怎么產生的?負電壓產生的意義

    負電壓是什么?它在電路是怎么產生的?負電壓產生的意義? 負電壓是指電路電位低于參考點(通常是地點)的電壓值。在電子學和電路設計,負電壓
    的頭像 發表于 03-27 15:33 ?6915次閱讀

    如何從訓練集中生成候選prompt 三種生成候選prompt的方式

    這個“gradient”怎么得到的了呢,這是個啥玩意,怎么還有梯度?注意,注意。人家是帶引號的!比喻成梯度。這玩意有什么用呢。 文章指出給定一批error samples(當前prompt無法
    的頭像 發表于 01-12 11:29 ?916次閱讀
    如何從訓練集中生成候選<b class='flag-5'>prompt</b> 三種生成候選<b class='flag-5'>prompt</b>的方式

    NLP領域的語言偏置問題分析

    摘要進行全面的統計分析,發現不同語言背景的作者在寫作的詞匯、形態、句法和連貫性方面有明顯的差異,這表明NLP領域存在語言偏置的可能性。因此,我們提出了一系列建議,以幫助學術期刊和會議的出版社改進他們對論文作者的指南和資源,以增強學術研究的包容性和公平性。
    的頭像 發表于 01-03 11:00 ?416次閱讀
    <b class='flag-5'>NLP</b>領域的語言偏置問題分析