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

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

3天內(nèi)不再提示

Prompt Tuning相比于Fine Tuning在哪些場景下表現(xiàn)更好?

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 2023-02-02 14:36 ? 次閱讀

近年來 NLP 學術(shù)領(lǐng)域發(fā)展真是突飛猛進,剛火完對比學習(contrastive learning),又有更火的提示學習 prompt learning。眾所周知,數(shù)據(jù)標注數(shù)據(jù)很大程度上決定了AI算法上限,并且成本非常高,無論是對比學習還是提示學習都著重解決少樣本學習而提出,甚至在沒有標注數(shù)據(jù)的情況下,也能讓模型表現(xiàn)比較好的效果。本文主要介紹 prompt learning 思想和目前常用的方法。

目錄

一. NLP的訓練范式有哪些
二. 為什么需要提示學習
三. 提示學習是什么
四. 常見的提示學習方法
五. 總結(jié)

一. NLP的訓練范式有哪些

目前學術(shù)界一般將NLP任務的發(fā)展分為四個階段即NLP四范式:

  1. 第一范式:基于「傳統(tǒng)機器學習模型」的范式,如 tf-idf 特征+樸素貝葉斯等機器算法;
  2. 第二范式:基于深度學習模型」的范式,如 word2vec 特征 + LSTM 等深度學習算法,相比于第一范式,模型準確有所提高,特征工程的工作也有所減少;
  3. 第三范式:基于「預訓練模型 + finetuning」的范式,如 BERT + finetuning 的NLP任務,相比于第二范式,模型準確度顯著提高,但是模型也隨之變得更大,但小數(shù)據(jù)集就可訓練出好模型;
  4. 第四范式:基于「預訓練模型 + Prompt + 預測」的范式,如 BERT + Prompt 的范式相比于第三范式,模型訓練所需的訓練數(shù)據(jù)顯著減少。

e705184c-a2c2-11ed-bfe3-dac502259ad0.jpg

在整個NLP領(lǐng)域,你會發(fā)現(xiàn)整個發(fā)展是朝著精度更高、少監(jiān)督,甚至無監(jiān)督的方向發(fā)展的,而 Prompt Learning 是目前學術(shù)界向這個方向進軍最新也是最火的研究成果。

二. 為什么需要提示學習為什么呢?

要提出一個好的方式那必然是用來「解決另一種方式存在的缺陷或不足」,那我們就先從它的上一個范式來說起,就是預訓練模型 PLM + finetuning范式 常用的是 BERT+ finetuning:

e7198016-a2c2-11ed-bfe3-dac502259ad0.jpg

這種范式是想要預訓練模型更好的應用在下游任務,需要利用下游數(shù)據(jù)對模型參數(shù)微調(diào);首先,模型在「預訓練的時候,采用的訓練形式:自回歸、自編碼,這與下游任務形式存在極大的 gap」,不能完全發(fā)揮預訓練模型本身的能力

必然導致:較多的數(shù)據(jù)來適應新的任務形式——>少樣本學習能力差、容易過擬合

e732a352-a2c2-11ed-bfe3-dac502259ad0.jpg

上下游任務形式存在gap

其次,現(xiàn)在的預訓練模型參數(shù)量越來越大,為了一個特定的任務去 finetuning 一個模型,然后部署于線上業(yè)務,也會造成部署資源的極大浪費。

e7443374-a2c2-11ed-bfe3-dac502259ad0.jpg

模型專用性特定任務微調(diào)導致部署成本過高

三. 提示學習是什么

首先我們應該有的「共識」是:預訓練模型中存在大量知識;預訓練模型本身具有少樣本學習能力。

GPT-3 提出的 In-Context Learning,也有效證明了在 Zero-shot、Few-shot場景下,模型不需要任何參數(shù),就能達到不錯的效果,特別是近期很火的GPT3.5系列中的 ChatGPT。

e754a286-a2c2-11ed-bfe3-dac502259ad0.jpg

Prompt Learning 的本質(zhì)

將所有下游任務統(tǒng)一成預訓練任務;「以特定的模板,將下游任務的數(shù)據(jù)轉(zhuǎn)成自然語言形式」,充分挖掘預訓練模型本身的能力。

本質(zhì)上就是設(shè)計一個比較契合上游預訓練任務的模板,通過模板的設(shè)計就是「挖掘出上游預訓練模型的潛力」,讓上游的預訓練模型在盡量不需要標注數(shù)據(jù)的情況下比較好的完成下游的任務,關(guān)鍵包括3個步驟:

  1. 設(shè)計預訓練語言模型的任務
  2. 設(shè)計輸入模板樣式(Prompt Engineering)
  3. 設(shè)計label 樣式 及模型的輸出映射到label 的方式(Answer Engineering)

Prompt Learning 的形式

以電影評論情感分類任務為例,模型需根據(jù)輸入句子做二分類:

原始輸入:特效非??犰牛液芟矚g。

Prompt 輸入:「提示模板1」: 特效非??犰?,我很喜歡。這是一部[MASK]電影 ;「提示模板2」: 特效非??犰?,我很喜歡。這部電影很[MASK]

提示模板的作用就在于:將訓練數(shù)據(jù)轉(zhuǎn)成自然語言的形式,并在合適的位置 MASK,以激發(fā)預訓練模型的能力。

e764d458-a2c2-11ed-bfe3-dac502259ad0.jpg

提示學習模板框架

類別映射/Verbalizer:選擇合適的預測詞,并將這些詞對應到不同的類別。

e77591b2-a2c2-11ed-bfe3-dac502259ad0.jpg

類別映射

通過構(gòu)建提示學習樣本,只需要少量數(shù)據(jù)的 Prompt Tuning,就可以實現(xiàn)很好的效果,具有較強的零樣本/少樣本學習能力。

四. 常見的提示學習方法

1. 硬模板方法

1.1 硬模板-PET(Pattern Exploiting Training)

PET 是一種較為經(jīng)典的提示學習方法,和之前的舉例一樣,將問題建模成一個完形填空問題,然后優(yōu)化最終的輸出詞。雖然 PET 也是在「優(yōu)化整個模型的參數(shù)」,但是相比于傳統(tǒng)的 Finetuning 方法,對「數(shù)據(jù)量需求更少」。

建模方式:

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

e789aeea-a2c2-11ed-bfe3-dac502259ad0.jpg

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

e79785a6-a2c2-11ed-bfe3-dac502259ad0.jpg

作者在訓練時又加上了「MLM loss」,進行聯(lián)合訓練。

e7b9353e-a2c2-11ed-bfe3-dac502259ad0.jpg

具體的做法:

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

1.2 硬模板- LM-BFF

LM-BFF 是陳天琦團隊的工作,在 Prompt Tuning 基礎(chǔ)上,提出了Prompt Tuning with demonstration & Auto Prompt Generation。

e7d2ddb8-a2c2-11ed-bfe3-dac502259ad0.jpg

e7e7758e-a2c2-11ed-bfe3-dac502259ad0.jpg

「硬模板方法的缺陷」

硬模板產(chǎn)生依賴兩種方式:根據(jù)經(jīng)驗的人工設(shè)計 & 自動化搜索。但是,人工設(shè)計的不一定比自動搜索的好,自動搜索的可讀性和可解釋性也不強。

e7fd91a2-a2c2-11ed-bfe3-dac502259ad0.jpg

上圖實驗結(jié)果可以看出硬模板 對于prompt,改變prompt中的單個單詞 會給實驗結(jié)果帶來巨大的差異, 所以也為后續(xù)優(yōu)化提供了方向,如索性直接放棄硬模板,去優(yōu)化 prompt token embedding。

2. 軟模板方法

2.1 軟模板- P tuning

不再設(shè)計/搜索硬模板,而是在輸入端直接插入若干可被優(yōu)化的 Pseudo Prompt Tokens,「自動化地尋找連續(xù)空間」中的知識模板:

  1. 不依賴人工設(shè)計
  2. 要優(yōu)化的參數(shù)極少,避免了過擬合(也可全量微調(diào),退化成傳統(tǒng) finetuning)

e8185f14-a2c2-11ed-bfe3-dac502259ad0.jpg

傳統(tǒng)離散prompt 直接將模板 T 的每個 token 映射為對應的embedding,而 P-Tuning 將模板 T 中的Pi(Pseudo Prompt)映射為一個「可訓練的參數(shù) hi」 。

「優(yōu)化關(guān)鍵點」在于,自然語言的hard prompt,替換為可訓練的soft prompt;使用雙向LSTM 對模板 T 中的 pseudo token 序列進行表征;引入少量自然語言提示的錨字符(Anchor)提升效率,如上圖的“capital” ,可見 p-tuning是hard+soft的形式,并不是完全的soft形式。

具體的做法:

  1. 初始化一個模板:The capital of [X] is [mask]
  2. 替換輸入:[X] 處替換為輸入 “Britian”,即預測 Britain 的首都
  3. 挑選模板中的一個或多個 token 作為 soft prompt
  4. 將所有 soft prompt 送入 LSTM,獲得每個 soft prompt 的「隱狀態(tài)向量 h」
  5. 將初始模板送入 BERT 的 Embedding Layer,「所有 soft prompt 的 token embedding用 h 代替」,然后預測mask。

核心結(jié)論:基于全量數(shù)據(jù),大模型:僅微調(diào) prompt 相關(guān)的參數(shù),媲美 fine-tuning 的表現(xiàn)。

代碼:https://github.com/THUDM/

2.2 軟模板- Prefix tuning

P-tuning 更新 prompt token embedding 的方法,能夠優(yōu)化的參數(shù)較少。Prefix tuning 希望能夠優(yōu)化更多的參數(shù),提升效果,但是又不帶來過大的負擔。雖然prefix tuning是在生成任務上被提出來的,但是它對soft prompt后續(xù)發(fā)展有著啟發(fā)性的影響。

e8272a58-a2c2-11ed-bfe3-dac502259ad0.jpg

優(yōu)化每一層的 Prompt token embedding,而不僅僅是輸入層

由上圖可見,模型上在每層 transformer 之前加入 prefix。特點是 prefix 不是真實的 token,而是「連續(xù)向量」(soft prompt),Prefix-tuning 訓練期間凍結(jié) transformer 的參數(shù),只更新 Prefix 的參數(shù)。

只需要存儲大型 transformer 的一個副本和學習到的特定于任務的前綴即可,為每個附加任務產(chǎn)生非常小的開銷。

e8419230-a2c2-11ed-bfe3-dac502259ad0.jpg

自回歸模型

以圖上自回歸模型為例的做法:

  1. 輸入表示為 Z = [ prefix ; x ; y ]
  2. Prefix-tuning 初始化一個訓練的 矩陣 P,用于存儲 prefix parameters
  3. 前綴部分 token,參數(shù)選擇設(shè)計的訓練矩陣,而其他部分的token,參數(shù)則固定 且為預訓練語言模型的參數(shù)

核心結(jié)論:Prefix-tuning 在生成任務上,全量數(shù)據(jù)、大模型:僅微調(diào) prompt 相關(guān)的參數(shù),媲美 fine-tuning 的表現(xiàn)。

代碼:https://github.com/XiangLi1999/PrefixTuning

2.3 軟模板- Soft Prompt Tuning

Soft Prompt Tuning 系統(tǒng)后驗證了軟模板方法的有效性,并提出:固定基礎(chǔ)模型,有效利用任務特定的 Soft Prompt Token,可以大幅減少資源占用,達到大模型的通用性。

對 Prefix-tuning 的簡化,固定預訓練模型,只對下游任務的輸入「添加額外的 k個可學習的 token」。這種方式在大規(guī)模預訓練模型的前提下,能夠媲美傳統(tǒng)的 fine-tuning 表現(xiàn)。

e858220c-a2c2-11ed-bfe3-dac502259ad0.jpg

代碼:https://github.com/kipgparker/soft-prompt-tuning

五. 總結(jié)

「Prompt Learning 的組成部分」

  1. 提示模板:根據(jù)使用預訓練模型,構(gòu)建 完形填空 or 基于前綴生成 兩種類型的模板
  2. 類別映射/Verbalizer:根據(jù)經(jīng)驗選擇合適的類別映射詞、3. 預訓練語言模型

「典型的 Prompt Learning 方法總結(jié)」

  1. 硬模板方法:人工設(shè)計/自動構(gòu)建基于離散 token 的模板
    1)PET 2)LM-BFF
  2. 軟模板方法:不再追求模板的直觀可解釋性,而是直接優(yōu)化 Prompt Token Embedding,是向量/可學習的參數(shù)
    1)P-tuning 2)Prefix Tuning

后續(xù)會在分類、信息抽取任務中嘗試 Prompt Learning,持續(xù)更新中...


	
		

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3244

    瀏覽量

    48848
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5503

    瀏覽量

    121176
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    488

    瀏覽量

    22038

原文標題:Prompt Tuning 相比于 Fine Tuning 在哪些場景下表現(xiàn)更好?

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

收藏 人收藏

    評論

    相關(guān)推薦

    使用PPC3軟件,進入Tuning and Audio Processing模塊后,喇叭就不發(fā)聲了怎么解決?

    我在使用PPC3軟件,進入Tuning and Audio Processing模塊后,喇叭就不發(fā)聲了,這個問題怎么解決? 同樣的硬件配置,在別人可以正常使用PPC3軟件的電腦上用起來沒有問題,我
    發(fā)表于 10-12 07:58

    使用DCC tuning tool 調(diào)試gamma,不可以通過曲線拉伸,請問這是什么原因?

    本帖最后由 一只耳朵怪 2018-5-31 15:56 編輯 TI好,我正在嘗試著使用DCCtuning tool 調(diào)試gamma,但是發(fā)現(xiàn)一個比較疑惑的問題,不知道是不是版本號引起的,我
    發(fā)表于 05-31 08:25

    請問導致image tuning tools打開raw文件出錯是什么原因?如何解決?

    本帖最后由 一只耳朵怪 2018-6-22 11:38 編輯 我更改dvsdk 4.02里面的dmai和encode,改成single-shot resize,然后從encode
    發(fā)表于 06-22 03:18

    請問DM36x Image Tuning Tool這個軟件哪里可以下載?

    Dear Ti:我需要使用DM36x Image Tuning Tool ,這個軟件在哪里可以下載到呢?如何使用啊,有沒有相關(guān)的使用文檔?我的開發(fā)包環(huán)境是:dvsdk_dm365-evm_4_02_00_06謝謝!
    發(fā)表于 02-18 13:54

    Altium差分信號length tuning中的gap,amplitude increase gap increase該怎么設(shè)置?

    我想問一下差分信號length tuning中,gap,amplitude increasegap increase如何設(shè)置,和差分線的width和gap是什么關(guān)系
    發(fā)表于 09-06 05:35

    晶振溫度特性-音叉Tuning Fork

    本帖最后由 Jackie12 2020-7-13 15:35 編輯 Tuning fork音叉晶振,也叫圓柱晶振,是石英晶體諧振器產(chǎn)品中出現(xiàn)最早,應用最廣的系列之一,最常見的頻率
    發(fā)表于 07-13 15:33

    DM365ImageTuningTooll里面的NF2 Tuning Tool模塊調(diào)試圖像濾波怎么減少拖影?

    Hi TI現(xiàn)在嘗試使用 DM365ImageTuningTooll里面的NF2 Tuning Tool模塊調(diào)試圖像濾波的問題。我是這樣的,使能了tnf濾波,程序調(diào)用默認的濾波參數(shù),達不到理想的效果
    發(fā)表于 08-14 08:28

    請問采用開關(guān)電容進行tuning,精度上可行嗎?

    小弟最近要設(shè)計一塊濾波器電路,采用的是Gm_C結(jié)構(gòu),是第一次接觸這類電路。那么問題來了我采用開關(guān)電容進行tuning,精度上可行嗎?還有最近看論文,很多人的設(shè)計步驟是這樣的,先用filter
    發(fā)表于 06-24 07:49

    Antenna Tuning Approach Aids C

    and emerging technologies for efficient antenna tuning in wireless handset devices.
    發(fā)表于 02-25 23:36 ?24次下載

    Tuning the MAX2009/MAX2010 RF

    Tuning the MAX2009/MAX2010 RF Predistorters for Optimal Performance Abstract: Linear
    發(fā)表于 10-03 08:01 ?1336次閱讀
    <b class='flag-5'>Tuning</b> the MAX2009/MAX2010 RF

    電子管的Tuning Indicator——調(diào)諧指示管

    電子管的Tuning Indicator——調(diào)諧指示管 精密的測量儀器和高級的通信機所采用的指示器都是采用動圈電表,但是動圈電表的價格一直比較昂貴。為了在廣泛應用的收音機
    發(fā)表于 11-10 10:35 ?2968次閱讀

    Hand-Tuning Loops and Control Code on the TMS320C6000

    Hand-Tuning Loops and Control Code on the TMS320C6000
    發(fā)表于 08-08 18:27 ?15次下載

    Prompt范式你們了解多少

    Prompt-tuning-The Power of Scale for Parameter-Efficient Prompt Tuning 自動化Prompt
    的頭像 發(fā)表于 09-10 10:22 ?2754次閱讀
    <b class='flag-5'>Prompt</b>范式你們了解多少

    基于預訓練視覺-語言模型的跨模態(tài)Prompt-Tuning

    論文:CPT:Colorful Prompt Tuning for Pre-Training Vision-Language Models 狀態(tài):Work in Progress 單位:清華大學
    的頭像 發(fā)表于 10-09 15:10 ?3240次閱讀
    基于預訓練視覺-語言模型的跨模態(tài)<b class='flag-5'>Prompt-Tuning</b>

    新版Audio tuning音頻工具使用指引

    1.MT6739,MT6750,MT6755,MT6763,MT6765 平臺都需要使用新版的音頻調(diào)試工具才可以調(diào)試音頻。 2.手機的軟件版本需要是工程版本的。 3.手機開機后,插上 USB,然后打開 Audio tuning tool,點擊連接。
    發(fā)表于 07-22 16:56 ?0次下載